packages feed

amazonka-lexv2-models (empty) → 2.0

raw patch · 418 files changed

+51586/−0 lines, 418 filesdep +amazonka-coredep +amazonka-lexv2-modelsdep +amazonka-test

Dependencies added: amazonka-core, amazonka-lexv2-models, amazonka-test, base, bytestring, case-insensitive, tasty, tasty-hunit, text, time, unordered-containers

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,44 @@+# Amazon Lex Model Building V2 SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2020-08-07@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-lexv2-models)+and the [AWS API Reference](https://aws.amazon.com/documentation/).++The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),+which provides mechanisms for specifying AuthN/AuthZ information, sending requests,+and receiving responses.++Lenses are used for constructing and manipulating types,+due to the depth of nesting of AWS types and transparency regarding+de/serialisation into more palatable Haskell values.+The provided lenses should be compatible with any of the major lens libraries+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).++See [Amazonka.LexV2Models](http://hackage.haskell.org/package/amazonka-lexv2-models/docs/Amazonka-LexV2Models.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-lexv2-models` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).++Parts of the code are derived from AWS service descriptions, licensed under Apache 2.0.+Source files subject to this contain an additional licensing clause in their header.
+ amazonka-lexv2-models.cabal view
@@ -0,0 +1,347 @@+cabal-version:      2.2+name:               amazonka-lexv2-models+version:            2.0+synopsis:           Amazon Lex Model Building V2 SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep++description:+  Derived from API version @2020-08-07@ of the AWS service descriptions, licensed under Apache 2.0.+  .+  The types from this library are intended to be used with <http://hackage.haskell.org/package/amazonka amazonka>,+  which provides mechanisms for specifying AuthN/AuthZ information, sending requests, and receiving responses.+  .+  It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.+  .+  Generated lenses can be found in "Amazonka.LexV2Models.Lens" and are+  suitable for use with a lens package such as <http://hackage.haskell.org/package/lens lens> or <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+  .+  See "Amazonka.LexV2Models" and the <https://aws.amazon.com/documentation/ AWS documentation> to get started.++source-repository head+  type:     git+  location: git://github.com/brendanhay/amazonka.git+  subdir:   amazonka-lexv2-models++library+  default-language: Haskell2010+  hs-source-dirs:   src gen+  ghc-options:+    -Wall -fwarn-incomplete-uni-patterns+    -fwarn-incomplete-record-updates -funbox-strict-fields++  exposed-modules:+    Amazonka.LexV2Models+    Amazonka.LexV2Models.BatchCreateCustomVocabularyItem+    Amazonka.LexV2Models.BatchDeleteCustomVocabularyItem+    Amazonka.LexV2Models.BatchUpdateCustomVocabularyItem+    Amazonka.LexV2Models.BuildBotLocale+    Amazonka.LexV2Models.CreateBot+    Amazonka.LexV2Models.CreateBotAlias+    Amazonka.LexV2Models.CreateBotLocale+    Amazonka.LexV2Models.CreateBotVersion+    Amazonka.LexV2Models.CreateExport+    Amazonka.LexV2Models.CreateIntent+    Amazonka.LexV2Models.CreateResourcePolicy+    Amazonka.LexV2Models.CreateResourcePolicyStatement+    Amazonka.LexV2Models.CreateSlot+    Amazonka.LexV2Models.CreateSlotType+    Amazonka.LexV2Models.CreateUploadUrl+    Amazonka.LexV2Models.DeleteBot+    Amazonka.LexV2Models.DeleteBotAlias+    Amazonka.LexV2Models.DeleteBotLocale+    Amazonka.LexV2Models.DeleteBotVersion+    Amazonka.LexV2Models.DeleteCustomVocabulary+    Amazonka.LexV2Models.DeleteExport+    Amazonka.LexV2Models.DeleteImport+    Amazonka.LexV2Models.DeleteIntent+    Amazonka.LexV2Models.DeleteResourcePolicy+    Amazonka.LexV2Models.DeleteResourcePolicyStatement+    Amazonka.LexV2Models.DeleteSlot+    Amazonka.LexV2Models.DeleteSlotType+    Amazonka.LexV2Models.DeleteUtterances+    Amazonka.LexV2Models.DescribeBot+    Amazonka.LexV2Models.DescribeBotAlias+    Amazonka.LexV2Models.DescribeBotLocale+    Amazonka.LexV2Models.DescribeBotRecommendation+    Amazonka.LexV2Models.DescribeBotVersion+    Amazonka.LexV2Models.DescribeCustomVocabularyMetadata+    Amazonka.LexV2Models.DescribeExport+    Amazonka.LexV2Models.DescribeImport+    Amazonka.LexV2Models.DescribeIntent+    Amazonka.LexV2Models.DescribeResourcePolicy+    Amazonka.LexV2Models.DescribeSlot+    Amazonka.LexV2Models.DescribeSlotType+    Amazonka.LexV2Models.Lens+    Amazonka.LexV2Models.ListAggregatedUtterances+    Amazonka.LexV2Models.ListBotAliases+    Amazonka.LexV2Models.ListBotLocales+    Amazonka.LexV2Models.ListBotRecommendations+    Amazonka.LexV2Models.ListBots+    Amazonka.LexV2Models.ListBotVersions+    Amazonka.LexV2Models.ListBuiltInIntents+    Amazonka.LexV2Models.ListBuiltInSlotTypes+    Amazonka.LexV2Models.ListCustomVocabularyItems+    Amazonka.LexV2Models.ListExports+    Amazonka.LexV2Models.ListImports+    Amazonka.LexV2Models.ListIntents+    Amazonka.LexV2Models.ListRecommendedIntents+    Amazonka.LexV2Models.ListSlots+    Amazonka.LexV2Models.ListSlotTypes+    Amazonka.LexV2Models.ListTagsForResource+    Amazonka.LexV2Models.SearchAssociatedTranscripts+    Amazonka.LexV2Models.StartBotRecommendation+    Amazonka.LexV2Models.StartImport+    Amazonka.LexV2Models.StopBotRecommendation+    Amazonka.LexV2Models.TagResource+    Amazonka.LexV2Models.Types+    Amazonka.LexV2Models.Types.AdvancedRecognitionSetting+    Amazonka.LexV2Models.Types.AggregatedUtterancesFilter+    Amazonka.LexV2Models.Types.AggregatedUtterancesFilterName+    Amazonka.LexV2Models.Types.AggregatedUtterancesFilterOperator+    Amazonka.LexV2Models.Types.AggregatedUtterancesSortAttribute+    Amazonka.LexV2Models.Types.AggregatedUtterancesSortBy+    Amazonka.LexV2Models.Types.AggregatedUtterancesSummary+    Amazonka.LexV2Models.Types.AllowedInputTypes+    Amazonka.LexV2Models.Types.AssociatedTranscript+    Amazonka.LexV2Models.Types.AssociatedTranscriptFilter+    Amazonka.LexV2Models.Types.AssociatedTranscriptFilterName+    Amazonka.LexV2Models.Types.AudioAndDTMFInputSpecification+    Amazonka.LexV2Models.Types.AudioLogDestination+    Amazonka.LexV2Models.Types.AudioLogSetting+    Amazonka.LexV2Models.Types.AudioRecognitionStrategy+    Amazonka.LexV2Models.Types.AudioSpecification+    Amazonka.LexV2Models.Types.BotAliasHistoryEvent+    Amazonka.LexV2Models.Types.BotAliasLocaleSettings+    Amazonka.LexV2Models.Types.BotAliasStatus+    Amazonka.LexV2Models.Types.BotAliasSummary+    Amazonka.LexV2Models.Types.BotExportSpecification+    Amazonka.LexV2Models.Types.BotFilter+    Amazonka.LexV2Models.Types.BotFilterName+    Amazonka.LexV2Models.Types.BotFilterOperator+    Amazonka.LexV2Models.Types.BotImportSpecification+    Amazonka.LexV2Models.Types.BotLocaleExportSpecification+    Amazonka.LexV2Models.Types.BotLocaleFilter+    Amazonka.LexV2Models.Types.BotLocaleFilterName+    Amazonka.LexV2Models.Types.BotLocaleFilterOperator+    Amazonka.LexV2Models.Types.BotLocaleHistoryEvent+    Amazonka.LexV2Models.Types.BotLocaleImportSpecification+    Amazonka.LexV2Models.Types.BotLocaleSortAttribute+    Amazonka.LexV2Models.Types.BotLocaleSortBy+    Amazonka.LexV2Models.Types.BotLocaleStatus+    Amazonka.LexV2Models.Types.BotLocaleSummary+    Amazonka.LexV2Models.Types.BotRecommendationResults+    Amazonka.LexV2Models.Types.BotRecommendationResultStatistics+    Amazonka.LexV2Models.Types.BotRecommendationStatus+    Amazonka.LexV2Models.Types.BotRecommendationSummary+    Amazonka.LexV2Models.Types.BotSortAttribute+    Amazonka.LexV2Models.Types.BotSortBy+    Amazonka.LexV2Models.Types.BotStatus+    Amazonka.LexV2Models.Types.BotSummary+    Amazonka.LexV2Models.Types.BotVersionLocaleDetails+    Amazonka.LexV2Models.Types.BotVersionSortAttribute+    Amazonka.LexV2Models.Types.BotVersionSortBy+    Amazonka.LexV2Models.Types.BotVersionSummary+    Amazonka.LexV2Models.Types.BuiltInIntentSortAttribute+    Amazonka.LexV2Models.Types.BuiltInIntentSortBy+    Amazonka.LexV2Models.Types.BuiltInIntentSummary+    Amazonka.LexV2Models.Types.BuiltInSlotTypeSortAttribute+    Amazonka.LexV2Models.Types.BuiltInSlotTypeSortBy+    Amazonka.LexV2Models.Types.BuiltInSlotTypeSummary+    Amazonka.LexV2Models.Types.Button+    Amazonka.LexV2Models.Types.CloudWatchLogGroupLogDestination+    Amazonka.LexV2Models.Types.CodeHookSpecification+    Amazonka.LexV2Models.Types.CompositeSlotTypeSetting+    Amazonka.LexV2Models.Types.Condition+    Amazonka.LexV2Models.Types.ConditionalBranch+    Amazonka.LexV2Models.Types.ConditionalSpecification+    Amazonka.LexV2Models.Types.ConversationLogSettings+    Amazonka.LexV2Models.Types.CustomPayload+    Amazonka.LexV2Models.Types.CustomVocabularyEntryId+    Amazonka.LexV2Models.Types.CustomVocabularyExportSpecification+    Amazonka.LexV2Models.Types.CustomVocabularyImportSpecification+    Amazonka.LexV2Models.Types.CustomVocabularyItem+    Amazonka.LexV2Models.Types.CustomVocabularyStatus+    Amazonka.LexV2Models.Types.DataPrivacy+    Amazonka.LexV2Models.Types.DateRangeFilter+    Amazonka.LexV2Models.Types.DefaultConditionalBranch+    Amazonka.LexV2Models.Types.DialogAction+    Amazonka.LexV2Models.Types.DialogActionType+    Amazonka.LexV2Models.Types.DialogCodeHookInvocationSetting+    Amazonka.LexV2Models.Types.DialogCodeHookSettings+    Amazonka.LexV2Models.Types.DialogState+    Amazonka.LexV2Models.Types.DTMFSpecification+    Amazonka.LexV2Models.Types.Effect+    Amazonka.LexV2Models.Types.ElicitationCodeHookInvocationSetting+    Amazonka.LexV2Models.Types.EncryptionSetting+    Amazonka.LexV2Models.Types.ErrorCode+    Amazonka.LexV2Models.Types.ExportFilter+    Amazonka.LexV2Models.Types.ExportFilterName+    Amazonka.LexV2Models.Types.ExportFilterOperator+    Amazonka.LexV2Models.Types.ExportResourceSpecification+    Amazonka.LexV2Models.Types.ExportSortAttribute+    Amazonka.LexV2Models.Types.ExportSortBy+    Amazonka.LexV2Models.Types.ExportStatus+    Amazonka.LexV2Models.Types.ExportSummary+    Amazonka.LexV2Models.Types.ExternalSourceSetting+    Amazonka.LexV2Models.Types.FailedCustomVocabularyItem+    Amazonka.LexV2Models.Types.FulfillmentCodeHookSettings+    Amazonka.LexV2Models.Types.FulfillmentStartResponseSpecification+    Amazonka.LexV2Models.Types.FulfillmentUpdateResponseSpecification+    Amazonka.LexV2Models.Types.FulfillmentUpdatesSpecification+    Amazonka.LexV2Models.Types.GrammarSlotTypeSetting+    Amazonka.LexV2Models.Types.GrammarSlotTypeSource+    Amazonka.LexV2Models.Types.ImageResponseCard+    Amazonka.LexV2Models.Types.ImportExportFileFormat+    Amazonka.LexV2Models.Types.ImportFilter+    Amazonka.LexV2Models.Types.ImportFilterName+    Amazonka.LexV2Models.Types.ImportFilterOperator+    Amazonka.LexV2Models.Types.ImportResourceSpecification+    Amazonka.LexV2Models.Types.ImportResourceType+    Amazonka.LexV2Models.Types.ImportSortAttribute+    Amazonka.LexV2Models.Types.ImportSortBy+    Amazonka.LexV2Models.Types.ImportStatus+    Amazonka.LexV2Models.Types.ImportSummary+    Amazonka.LexV2Models.Types.InitialResponseSetting+    Amazonka.LexV2Models.Types.InputContext+    Amazonka.LexV2Models.Types.IntentClosingSetting+    Amazonka.LexV2Models.Types.IntentConfirmationSetting+    Amazonka.LexV2Models.Types.IntentFilter+    Amazonka.LexV2Models.Types.IntentFilterName+    Amazonka.LexV2Models.Types.IntentFilterOperator+    Amazonka.LexV2Models.Types.IntentOverride+    Amazonka.LexV2Models.Types.IntentSortAttribute+    Amazonka.LexV2Models.Types.IntentSortBy+    Amazonka.LexV2Models.Types.IntentStatistics+    Amazonka.LexV2Models.Types.IntentSummary+    Amazonka.LexV2Models.Types.KendraConfiguration+    Amazonka.LexV2Models.Types.LambdaCodeHook+    Amazonka.LexV2Models.Types.LexTranscriptFilter+    Amazonka.LexV2Models.Types.MergeStrategy+    Amazonka.LexV2Models.Types.Message+    Amazonka.LexV2Models.Types.MessageGroup+    Amazonka.LexV2Models.Types.MessageSelectionStrategy+    Amazonka.LexV2Models.Types.MultipleValuesSetting+    Amazonka.LexV2Models.Types.NewCustomVocabularyItem+    Amazonka.LexV2Models.Types.ObfuscationSetting+    Amazonka.LexV2Models.Types.ObfuscationSettingType+    Amazonka.LexV2Models.Types.OutputContext+    Amazonka.LexV2Models.Types.PathFormat+    Amazonka.LexV2Models.Types.PlainTextMessage+    Amazonka.LexV2Models.Types.PostDialogCodeHookInvocationSpecification+    Amazonka.LexV2Models.Types.PostFulfillmentStatusSpecification+    Amazonka.LexV2Models.Types.Principal+    Amazonka.LexV2Models.Types.PromptAttempt+    Amazonka.LexV2Models.Types.PromptAttemptSpecification+    Amazonka.LexV2Models.Types.PromptSpecification+    Amazonka.LexV2Models.Types.RecommendedIntentSummary+    Amazonka.LexV2Models.Types.RelativeAggregationDuration+    Amazonka.LexV2Models.Types.ResponseSpecification+    Amazonka.LexV2Models.Types.S3BucketLogDestination+    Amazonka.LexV2Models.Types.S3BucketTranscriptSource+    Amazonka.LexV2Models.Types.SampleUtterance+    Amazonka.LexV2Models.Types.SampleValue+    Amazonka.LexV2Models.Types.SearchOrder+    Amazonka.LexV2Models.Types.SentimentAnalysisSettings+    Amazonka.LexV2Models.Types.SlotCaptureSetting+    Amazonka.LexV2Models.Types.SlotConstraint+    Amazonka.LexV2Models.Types.SlotDefaultValue+    Amazonka.LexV2Models.Types.SlotDefaultValueSpecification+    Amazonka.LexV2Models.Types.SlotFilter+    Amazonka.LexV2Models.Types.SlotFilterName+    Amazonka.LexV2Models.Types.SlotFilterOperator+    Amazonka.LexV2Models.Types.SlotPriority+    Amazonka.LexV2Models.Types.SlotShape+    Amazonka.LexV2Models.Types.SlotSortAttribute+    Amazonka.LexV2Models.Types.SlotSortBy+    Amazonka.LexV2Models.Types.SlotSummary+    Amazonka.LexV2Models.Types.SlotTypeCategory+    Amazonka.LexV2Models.Types.SlotTypeFilter+    Amazonka.LexV2Models.Types.SlotTypeFilterName+    Amazonka.LexV2Models.Types.SlotTypeFilterOperator+    Amazonka.LexV2Models.Types.SlotTypeSortAttribute+    Amazonka.LexV2Models.Types.SlotTypeSortBy+    Amazonka.LexV2Models.Types.SlotTypeStatistics+    Amazonka.LexV2Models.Types.SlotTypeSummary+    Amazonka.LexV2Models.Types.SlotTypeValue+    Amazonka.LexV2Models.Types.SlotValue+    Amazonka.LexV2Models.Types.SlotValueElicitationSetting+    Amazonka.LexV2Models.Types.SlotValueOverride+    Amazonka.LexV2Models.Types.SlotValueRegexFilter+    Amazonka.LexV2Models.Types.SlotValueResolutionStrategy+    Amazonka.LexV2Models.Types.SlotValueSelectionSetting+    Amazonka.LexV2Models.Types.SortOrder+    Amazonka.LexV2Models.Types.Specifications+    Amazonka.LexV2Models.Types.SSMLMessage+    Amazonka.LexV2Models.Types.StillWaitingResponseSpecification+    Amazonka.LexV2Models.Types.SubSlotSetting+    Amazonka.LexV2Models.Types.SubSlotTypeComposition+    Amazonka.LexV2Models.Types.SubSlotValueElicitationSetting+    Amazonka.LexV2Models.Types.TextInputSpecification+    Amazonka.LexV2Models.Types.TextLogDestination+    Amazonka.LexV2Models.Types.TextLogSetting+    Amazonka.LexV2Models.Types.TimeDimension+    Amazonka.LexV2Models.Types.TranscriptFilter+    Amazonka.LexV2Models.Types.TranscriptFormat+    Amazonka.LexV2Models.Types.TranscriptSourceSetting+    Amazonka.LexV2Models.Types.UtteranceAggregationDuration+    Amazonka.LexV2Models.Types.VoiceEngine+    Amazonka.LexV2Models.Types.VoiceSettings+    Amazonka.LexV2Models.Types.WaitAndContinueSpecification+    Amazonka.LexV2Models.UntagResource+    Amazonka.LexV2Models.UpdateBot+    Amazonka.LexV2Models.UpdateBotAlias+    Amazonka.LexV2Models.UpdateBotLocale+    Amazonka.LexV2Models.UpdateBotRecommendation+    Amazonka.LexV2Models.UpdateExport+    Amazonka.LexV2Models.UpdateIntent+    Amazonka.LexV2Models.UpdateResourcePolicy+    Amazonka.LexV2Models.UpdateSlot+    Amazonka.LexV2Models.UpdateSlotType+    Amazonka.LexV2Models.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-lexv2-models-test+  type:             exitcode-stdio-1.0+  default-language: Haskell2010+  hs-source-dirs:   test+  main-is:          Main.hs+  ghc-options:      -Wall -threaded++  -- This section is encoded by the template and any modules added by+  -- hand outside these namespaces will not correctly be added to the+  -- distribution package.+  other-modules:+    Test.Amazonka.Gen.LexV2Models+    Test.Amazonka.LexV2Models+    Test.Amazonka.LexV2Models.Internal++  build-depends:+    , amazonka-core          >=2.0 && <2.1+    , amazonka-lexv2-models+    , amazonka-test          >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/BatchCreateCustomVocabularyItem.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/BatchCreateCustomVocabularyItemResponse.proto view
+ fixture/BatchDeleteCustomVocabularyItem.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/BatchDeleteCustomVocabularyItemResponse.proto view
+ fixture/BatchUpdateCustomVocabularyItem.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/BatchUpdateCustomVocabularyItemResponse.proto view
+ fixture/BuildBotLocale.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/BuildBotLocaleResponse.proto view
+ fixture/CreateBot.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateBotAlias.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateBotAliasResponse.proto view
+ fixture/CreateBotLocale.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateBotLocaleResponse.proto view
+ fixture/CreateBotResponse.proto view
+ fixture/CreateBotVersion.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateBotVersionResponse.proto view
+ fixture/CreateExport.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateExportResponse.proto view
+ fixture/CreateIntent.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateIntentResponse.proto view
+ fixture/CreateResourcePolicy.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateResourcePolicyResponse.proto view
+ fixture/CreateResourcePolicyStatement.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateResourcePolicyStatementResponse.proto view
+ fixture/CreateSlot.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateSlotResponse.proto view
+ fixture/CreateSlotType.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateSlotTypeResponse.proto view
+ fixture/CreateUploadUrl.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateUploadUrlResponse.proto view
+ fixture/DeleteBot.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteBotAlias.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteBotAliasResponse.proto view
+ fixture/DeleteBotLocale.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteBotLocaleResponse.proto view
+ fixture/DeleteBotResponse.proto view
+ fixture/DeleteBotVersion.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteBotVersionResponse.proto view
+ fixture/DeleteCustomVocabulary.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteCustomVocabularyResponse.proto view
+ fixture/DeleteExport.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteExportResponse.proto view
+ fixture/DeleteImport.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteImportResponse.proto view
+ fixture/DeleteIntent.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteIntentResponse.proto view
+ fixture/DeleteResourcePolicy.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteResourcePolicyResponse.proto view
+ fixture/DeleteResourcePolicyStatement.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteResourcePolicyStatementResponse.proto view
+ fixture/DeleteSlot.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteSlotResponse.proto view
+ fixture/DeleteSlotType.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteSlotTypeResponse.proto view
+ fixture/DeleteUtterances.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteUtterancesResponse.proto view
+ fixture/DescribeBot.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeBotAlias.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeBotAliasResponse.proto view
+ fixture/DescribeBotLocale.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeBotLocaleResponse.proto view
+ fixture/DescribeBotRecommendation.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeBotRecommendationResponse.proto view
+ fixture/DescribeBotResponse.proto view
+ fixture/DescribeBotVersion.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeBotVersionResponse.proto view
+ fixture/DescribeCustomVocabularyMetadata.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeCustomVocabularyMetadataResponse.proto view
+ fixture/DescribeExport.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeExportResponse.proto view
+ fixture/DescribeImport.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeImportResponse.proto view
+ fixture/DescribeIntent.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeIntentResponse.proto view
+ fixture/DescribeResourcePolicy.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeResourcePolicyResponse.proto view
+ fixture/DescribeSlot.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeSlotResponse.proto view
+ fixture/DescribeSlotType.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeSlotTypeResponse.proto view
+ fixture/ListAggregatedUtterances.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListAggregatedUtterancesResponse.proto view
+ fixture/ListBotAliases.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListBotAliasesResponse.proto view
+ fixture/ListBotLocales.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListBotLocalesResponse.proto view
+ fixture/ListBotRecommendations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListBotRecommendationsResponse.proto view
+ fixture/ListBotVersions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListBotVersionsResponse.proto view
+ fixture/ListBots.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListBotsResponse.proto view
+ fixture/ListBuiltInIntents.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListBuiltInIntentsResponse.proto view
+ fixture/ListBuiltInSlotTypes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListBuiltInSlotTypesResponse.proto view
+ fixture/ListCustomVocabularyItems.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListCustomVocabularyItemsResponse.proto view
+ fixture/ListExports.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListExportsResponse.proto view
+ fixture/ListImports.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListImportsResponse.proto view
+ fixture/ListIntents.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListIntentsResponse.proto view
+ fixture/ListRecommendedIntents.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListRecommendedIntentsResponse.proto view
+ fixture/ListSlotTypes.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListSlotTypesResponse.proto view
+ fixture/ListSlots.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListSlotsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: GET+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListTagsForResourceResponse.proto view
+ fixture/SearchAssociatedTranscripts.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/SearchAssociatedTranscriptsResponse.proto view
+ fixture/StartBotRecommendation.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/StartBotRecommendationResponse.proto view
+ fixture/StartImport.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/StartImportResponse.proto view
+ fixture/StopBotRecommendation.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/StopBotRecommendationResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: DELETE+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UntagResourceResponse.proto view
+ fixture/UpdateBot.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateBotAlias.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateBotAliasResponse.proto view
+ fixture/UpdateBotLocale.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateBotLocaleResponse.proto view
+ fixture/UpdateBotRecommendation.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateBotRecommendationResponse.proto view
+ fixture/UpdateBotResponse.proto view
+ fixture/UpdateExport.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateExportResponse.proto view
+ fixture/UpdateIntent.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateIntentResponse.proto view
+ fixture/UpdateResourcePolicy.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateResourcePolicyResponse.proto view
+ fixture/UpdateSlot.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateSlotResponse.proto view
+ fixture/UpdateSlotType.yaml view
@@ -0,0 +1,10 @@+---+method: PUT+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/models-v2-lex/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  models-v2-lex.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateSlotTypeResponse.proto view
+ gen/Amazonka/LexV2Models.hs view
@@ -0,0 +1,1319 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.LexV2Models+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2020-08-07@ of the AWS service descriptions, licensed under Apache 2.0.+module Amazonka.LexV2Models+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** PreconditionFailedException+    _PreconditionFailedException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- ** BotAliasAvailable+    newBotAliasAvailable,++    -- ** BotAvailable+    newBotAvailable,++    -- ** BotExportCompleted+    newBotExportCompleted,++    -- ** BotImportCompleted+    newBotImportCompleted,++    -- ** BotLocaleBuilt+    newBotLocaleBuilt,++    -- ** BotLocaleCreated+    newBotLocaleCreated,++    -- ** BotLocaleExpressTestingAvailable+    newBotLocaleExpressTestingAvailable,++    -- ** BotVersionAvailable+    newBotVersionAvailable,++    -- * Operations+    -- $operations++    -- ** BatchCreateCustomVocabularyItem+    BatchCreateCustomVocabularyItem (BatchCreateCustomVocabularyItem'),+    newBatchCreateCustomVocabularyItem,+    BatchCreateCustomVocabularyItemResponse (BatchCreateCustomVocabularyItemResponse'),+    newBatchCreateCustomVocabularyItemResponse,++    -- ** BatchDeleteCustomVocabularyItem+    BatchDeleteCustomVocabularyItem (BatchDeleteCustomVocabularyItem'),+    newBatchDeleteCustomVocabularyItem,+    BatchDeleteCustomVocabularyItemResponse (BatchDeleteCustomVocabularyItemResponse'),+    newBatchDeleteCustomVocabularyItemResponse,++    -- ** BatchUpdateCustomVocabularyItem+    BatchUpdateCustomVocabularyItem (BatchUpdateCustomVocabularyItem'),+    newBatchUpdateCustomVocabularyItem,+    BatchUpdateCustomVocabularyItemResponse (BatchUpdateCustomVocabularyItemResponse'),+    newBatchUpdateCustomVocabularyItemResponse,++    -- ** BuildBotLocale+    BuildBotLocale (BuildBotLocale'),+    newBuildBotLocale,+    BuildBotLocaleResponse (BuildBotLocaleResponse'),+    newBuildBotLocaleResponse,++    -- ** CreateBot+    CreateBot (CreateBot'),+    newCreateBot,+    CreateBotResponse (CreateBotResponse'),+    newCreateBotResponse,++    -- ** CreateBotAlias+    CreateBotAlias (CreateBotAlias'),+    newCreateBotAlias,+    CreateBotAliasResponse (CreateBotAliasResponse'),+    newCreateBotAliasResponse,++    -- ** CreateBotLocale+    CreateBotLocale (CreateBotLocale'),+    newCreateBotLocale,+    CreateBotLocaleResponse (CreateBotLocaleResponse'),+    newCreateBotLocaleResponse,++    -- ** CreateBotVersion+    CreateBotVersion (CreateBotVersion'),+    newCreateBotVersion,+    CreateBotVersionResponse (CreateBotVersionResponse'),+    newCreateBotVersionResponse,++    -- ** CreateExport+    CreateExport (CreateExport'),+    newCreateExport,+    CreateExportResponse (CreateExportResponse'),+    newCreateExportResponse,++    -- ** CreateIntent+    CreateIntent (CreateIntent'),+    newCreateIntent,+    CreateIntentResponse (CreateIntentResponse'),+    newCreateIntentResponse,++    -- ** CreateResourcePolicy+    CreateResourcePolicy (CreateResourcePolicy'),+    newCreateResourcePolicy,+    CreateResourcePolicyResponse (CreateResourcePolicyResponse'),+    newCreateResourcePolicyResponse,++    -- ** CreateResourcePolicyStatement+    CreateResourcePolicyStatement (CreateResourcePolicyStatement'),+    newCreateResourcePolicyStatement,+    CreateResourcePolicyStatementResponse (CreateResourcePolicyStatementResponse'),+    newCreateResourcePolicyStatementResponse,++    -- ** CreateSlot+    CreateSlot (CreateSlot'),+    newCreateSlot,+    CreateSlotResponse (CreateSlotResponse'),+    newCreateSlotResponse,++    -- ** CreateSlotType+    CreateSlotType (CreateSlotType'),+    newCreateSlotType,+    CreateSlotTypeResponse (CreateSlotTypeResponse'),+    newCreateSlotTypeResponse,++    -- ** CreateUploadUrl+    CreateUploadUrl (CreateUploadUrl'),+    newCreateUploadUrl,+    CreateUploadUrlResponse (CreateUploadUrlResponse'),+    newCreateUploadUrlResponse,++    -- ** DeleteBot+    DeleteBot (DeleteBot'),+    newDeleteBot,+    DeleteBotResponse (DeleteBotResponse'),+    newDeleteBotResponse,++    -- ** DeleteBotAlias+    DeleteBotAlias (DeleteBotAlias'),+    newDeleteBotAlias,+    DeleteBotAliasResponse (DeleteBotAliasResponse'),+    newDeleteBotAliasResponse,++    -- ** DeleteBotLocale+    DeleteBotLocale (DeleteBotLocale'),+    newDeleteBotLocale,+    DeleteBotLocaleResponse (DeleteBotLocaleResponse'),+    newDeleteBotLocaleResponse,++    -- ** DeleteBotVersion+    DeleteBotVersion (DeleteBotVersion'),+    newDeleteBotVersion,+    DeleteBotVersionResponse (DeleteBotVersionResponse'),+    newDeleteBotVersionResponse,++    -- ** DeleteCustomVocabulary+    DeleteCustomVocabulary (DeleteCustomVocabulary'),+    newDeleteCustomVocabulary,+    DeleteCustomVocabularyResponse (DeleteCustomVocabularyResponse'),+    newDeleteCustomVocabularyResponse,++    -- ** DeleteExport+    DeleteExport (DeleteExport'),+    newDeleteExport,+    DeleteExportResponse (DeleteExportResponse'),+    newDeleteExportResponse,++    -- ** DeleteImport+    DeleteImport (DeleteImport'),+    newDeleteImport,+    DeleteImportResponse (DeleteImportResponse'),+    newDeleteImportResponse,++    -- ** DeleteIntent+    DeleteIntent (DeleteIntent'),+    newDeleteIntent,+    DeleteIntentResponse (DeleteIntentResponse'),+    newDeleteIntentResponse,++    -- ** DeleteResourcePolicy+    DeleteResourcePolicy (DeleteResourcePolicy'),+    newDeleteResourcePolicy,+    DeleteResourcePolicyResponse (DeleteResourcePolicyResponse'),+    newDeleteResourcePolicyResponse,++    -- ** DeleteResourcePolicyStatement+    DeleteResourcePolicyStatement (DeleteResourcePolicyStatement'),+    newDeleteResourcePolicyStatement,+    DeleteResourcePolicyStatementResponse (DeleteResourcePolicyStatementResponse'),+    newDeleteResourcePolicyStatementResponse,++    -- ** DeleteSlot+    DeleteSlot (DeleteSlot'),+    newDeleteSlot,+    DeleteSlotResponse (DeleteSlotResponse'),+    newDeleteSlotResponse,++    -- ** DeleteSlotType+    DeleteSlotType (DeleteSlotType'),+    newDeleteSlotType,+    DeleteSlotTypeResponse (DeleteSlotTypeResponse'),+    newDeleteSlotTypeResponse,++    -- ** DeleteUtterances+    DeleteUtterances (DeleteUtterances'),+    newDeleteUtterances,+    DeleteUtterancesResponse (DeleteUtterancesResponse'),+    newDeleteUtterancesResponse,++    -- ** DescribeBot+    DescribeBot (DescribeBot'),+    newDescribeBot,+    DescribeBotResponse (DescribeBotResponse'),+    newDescribeBotResponse,++    -- ** DescribeBotAlias+    DescribeBotAlias (DescribeBotAlias'),+    newDescribeBotAlias,+    DescribeBotAliasResponse (DescribeBotAliasResponse'),+    newDescribeBotAliasResponse,++    -- ** DescribeBotLocale+    DescribeBotLocale (DescribeBotLocale'),+    newDescribeBotLocale,+    DescribeBotLocaleResponse (DescribeBotLocaleResponse'),+    newDescribeBotLocaleResponse,++    -- ** DescribeBotRecommendation+    DescribeBotRecommendation (DescribeBotRecommendation'),+    newDescribeBotRecommendation,+    DescribeBotRecommendationResponse (DescribeBotRecommendationResponse'),+    newDescribeBotRecommendationResponse,++    -- ** DescribeBotVersion+    DescribeBotVersion (DescribeBotVersion'),+    newDescribeBotVersion,+    DescribeBotVersionResponse (DescribeBotVersionResponse'),+    newDescribeBotVersionResponse,++    -- ** DescribeCustomVocabularyMetadata+    DescribeCustomVocabularyMetadata (DescribeCustomVocabularyMetadata'),+    newDescribeCustomVocabularyMetadata,+    DescribeCustomVocabularyMetadataResponse (DescribeCustomVocabularyMetadataResponse'),+    newDescribeCustomVocabularyMetadataResponse,++    -- ** DescribeExport+    DescribeExport (DescribeExport'),+    newDescribeExport,+    DescribeExportResponse (DescribeExportResponse'),+    newDescribeExportResponse,++    -- ** DescribeImport+    DescribeImport (DescribeImport'),+    newDescribeImport,+    DescribeImportResponse (DescribeImportResponse'),+    newDescribeImportResponse,++    -- ** DescribeIntent+    DescribeIntent (DescribeIntent'),+    newDescribeIntent,+    DescribeIntentResponse (DescribeIntentResponse'),+    newDescribeIntentResponse,++    -- ** DescribeResourcePolicy+    DescribeResourcePolicy (DescribeResourcePolicy'),+    newDescribeResourcePolicy,+    DescribeResourcePolicyResponse (DescribeResourcePolicyResponse'),+    newDescribeResourcePolicyResponse,++    -- ** DescribeSlot+    DescribeSlot (DescribeSlot'),+    newDescribeSlot,+    DescribeSlotResponse (DescribeSlotResponse'),+    newDescribeSlotResponse,++    -- ** DescribeSlotType+    DescribeSlotType (DescribeSlotType'),+    newDescribeSlotType,+    DescribeSlotTypeResponse (DescribeSlotTypeResponse'),+    newDescribeSlotTypeResponse,++    -- ** ListAggregatedUtterances+    ListAggregatedUtterances (ListAggregatedUtterances'),+    newListAggregatedUtterances,+    ListAggregatedUtterancesResponse (ListAggregatedUtterancesResponse'),+    newListAggregatedUtterancesResponse,++    -- ** ListBotAliases+    ListBotAliases (ListBotAliases'),+    newListBotAliases,+    ListBotAliasesResponse (ListBotAliasesResponse'),+    newListBotAliasesResponse,++    -- ** ListBotLocales+    ListBotLocales (ListBotLocales'),+    newListBotLocales,+    ListBotLocalesResponse (ListBotLocalesResponse'),+    newListBotLocalesResponse,++    -- ** ListBotRecommendations+    ListBotRecommendations (ListBotRecommendations'),+    newListBotRecommendations,+    ListBotRecommendationsResponse (ListBotRecommendationsResponse'),+    newListBotRecommendationsResponse,++    -- ** ListBotVersions+    ListBotVersions (ListBotVersions'),+    newListBotVersions,+    ListBotVersionsResponse (ListBotVersionsResponse'),+    newListBotVersionsResponse,++    -- ** ListBots+    ListBots (ListBots'),+    newListBots,+    ListBotsResponse (ListBotsResponse'),+    newListBotsResponse,++    -- ** ListBuiltInIntents+    ListBuiltInIntents (ListBuiltInIntents'),+    newListBuiltInIntents,+    ListBuiltInIntentsResponse (ListBuiltInIntentsResponse'),+    newListBuiltInIntentsResponse,++    -- ** ListBuiltInSlotTypes+    ListBuiltInSlotTypes (ListBuiltInSlotTypes'),+    newListBuiltInSlotTypes,+    ListBuiltInSlotTypesResponse (ListBuiltInSlotTypesResponse'),+    newListBuiltInSlotTypesResponse,++    -- ** ListCustomVocabularyItems+    ListCustomVocabularyItems (ListCustomVocabularyItems'),+    newListCustomVocabularyItems,+    ListCustomVocabularyItemsResponse (ListCustomVocabularyItemsResponse'),+    newListCustomVocabularyItemsResponse,++    -- ** ListExports+    ListExports (ListExports'),+    newListExports,+    ListExportsResponse (ListExportsResponse'),+    newListExportsResponse,++    -- ** ListImports+    ListImports (ListImports'),+    newListImports,+    ListImportsResponse (ListImportsResponse'),+    newListImportsResponse,++    -- ** ListIntents+    ListIntents (ListIntents'),+    newListIntents,+    ListIntentsResponse (ListIntentsResponse'),+    newListIntentsResponse,++    -- ** ListRecommendedIntents+    ListRecommendedIntents (ListRecommendedIntents'),+    newListRecommendedIntents,+    ListRecommendedIntentsResponse (ListRecommendedIntentsResponse'),+    newListRecommendedIntentsResponse,++    -- ** ListSlotTypes+    ListSlotTypes (ListSlotTypes'),+    newListSlotTypes,+    ListSlotTypesResponse (ListSlotTypesResponse'),+    newListSlotTypesResponse,++    -- ** ListSlots+    ListSlots (ListSlots'),+    newListSlots,+    ListSlotsResponse (ListSlotsResponse'),+    newListSlotsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** SearchAssociatedTranscripts+    SearchAssociatedTranscripts (SearchAssociatedTranscripts'),+    newSearchAssociatedTranscripts,+    SearchAssociatedTranscriptsResponse (SearchAssociatedTranscriptsResponse'),+    newSearchAssociatedTranscriptsResponse,++    -- ** StartBotRecommendation+    StartBotRecommendation (StartBotRecommendation'),+    newStartBotRecommendation,+    StartBotRecommendationResponse (StartBotRecommendationResponse'),+    newStartBotRecommendationResponse,++    -- ** StartImport+    StartImport (StartImport'),+    newStartImport,+    StartImportResponse (StartImportResponse'),+    newStartImportResponse,++    -- ** StopBotRecommendation+    StopBotRecommendation (StopBotRecommendation'),+    newStopBotRecommendation,+    StopBotRecommendationResponse (StopBotRecommendationResponse'),+    newStopBotRecommendationResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateBot+    UpdateBot (UpdateBot'),+    newUpdateBot,+    UpdateBotResponse (UpdateBotResponse'),+    newUpdateBotResponse,++    -- ** UpdateBotAlias+    UpdateBotAlias (UpdateBotAlias'),+    newUpdateBotAlias,+    UpdateBotAliasResponse (UpdateBotAliasResponse'),+    newUpdateBotAliasResponse,++    -- ** UpdateBotLocale+    UpdateBotLocale (UpdateBotLocale'),+    newUpdateBotLocale,+    UpdateBotLocaleResponse (UpdateBotLocaleResponse'),+    newUpdateBotLocaleResponse,++    -- ** UpdateBotRecommendation+    UpdateBotRecommendation (UpdateBotRecommendation'),+    newUpdateBotRecommendation,+    UpdateBotRecommendationResponse (UpdateBotRecommendationResponse'),+    newUpdateBotRecommendationResponse,++    -- ** UpdateExport+    UpdateExport (UpdateExport'),+    newUpdateExport,+    UpdateExportResponse (UpdateExportResponse'),+    newUpdateExportResponse,++    -- ** UpdateIntent+    UpdateIntent (UpdateIntent'),+    newUpdateIntent,+    UpdateIntentResponse (UpdateIntentResponse'),+    newUpdateIntentResponse,++    -- ** UpdateResourcePolicy+    UpdateResourcePolicy (UpdateResourcePolicy'),+    newUpdateResourcePolicy,+    UpdateResourcePolicyResponse (UpdateResourcePolicyResponse'),+    newUpdateResourcePolicyResponse,++    -- ** UpdateSlot+    UpdateSlot (UpdateSlot'),+    newUpdateSlot,+    UpdateSlotResponse (UpdateSlotResponse'),+    newUpdateSlotResponse,++    -- ** UpdateSlotType+    UpdateSlotType (UpdateSlotType'),+    newUpdateSlotType,+    UpdateSlotTypeResponse (UpdateSlotTypeResponse'),+    newUpdateSlotTypeResponse,++    -- * Types++    -- ** AggregatedUtterancesFilterName+    AggregatedUtterancesFilterName (..),++    -- ** AggregatedUtterancesFilterOperator+    AggregatedUtterancesFilterOperator (..),++    -- ** AggregatedUtterancesSortAttribute+    AggregatedUtterancesSortAttribute (..),++    -- ** AssociatedTranscriptFilterName+    AssociatedTranscriptFilterName (..),++    -- ** AudioRecognitionStrategy+    AudioRecognitionStrategy (..),++    -- ** BotAliasStatus+    BotAliasStatus (..),++    -- ** BotFilterName+    BotFilterName (..),++    -- ** BotFilterOperator+    BotFilterOperator (..),++    -- ** BotLocaleFilterName+    BotLocaleFilterName (..),++    -- ** BotLocaleFilterOperator+    BotLocaleFilterOperator (..),++    -- ** BotLocaleSortAttribute+    BotLocaleSortAttribute (..),++    -- ** BotLocaleStatus+    BotLocaleStatus (..),++    -- ** BotRecommendationStatus+    BotRecommendationStatus (..),++    -- ** BotSortAttribute+    BotSortAttribute (..),++    -- ** BotStatus+    BotStatus (..),++    -- ** BotVersionSortAttribute+    BotVersionSortAttribute (..),++    -- ** BuiltInIntentSortAttribute+    BuiltInIntentSortAttribute (..),++    -- ** BuiltInSlotTypeSortAttribute+    BuiltInSlotTypeSortAttribute (..),++    -- ** CustomVocabularyStatus+    CustomVocabularyStatus (..),++    -- ** DialogActionType+    DialogActionType (..),++    -- ** Effect+    Effect (..),++    -- ** ErrorCode+    ErrorCode (..),++    -- ** ExportFilterName+    ExportFilterName (..),++    -- ** ExportFilterOperator+    ExportFilterOperator (..),++    -- ** ExportSortAttribute+    ExportSortAttribute (..),++    -- ** ExportStatus+    ExportStatus (..),++    -- ** ImportExportFileFormat+    ImportExportFileFormat (..),++    -- ** ImportFilterName+    ImportFilterName (..),++    -- ** ImportFilterOperator+    ImportFilterOperator (..),++    -- ** ImportResourceType+    ImportResourceType (..),++    -- ** ImportSortAttribute+    ImportSortAttribute (..),++    -- ** ImportStatus+    ImportStatus (..),++    -- ** IntentFilterName+    IntentFilterName (..),++    -- ** IntentFilterOperator+    IntentFilterOperator (..),++    -- ** IntentSortAttribute+    IntentSortAttribute (..),++    -- ** MergeStrategy+    MergeStrategy (..),++    -- ** MessageSelectionStrategy+    MessageSelectionStrategy (..),++    -- ** ObfuscationSettingType+    ObfuscationSettingType (..),++    -- ** PromptAttempt+    PromptAttempt (..),++    -- ** SearchOrder+    SearchOrder (..),++    -- ** SlotConstraint+    SlotConstraint (..),++    -- ** SlotFilterName+    SlotFilterName (..),++    -- ** SlotFilterOperator+    SlotFilterOperator (..),++    -- ** SlotShape+    SlotShape (..),++    -- ** SlotSortAttribute+    SlotSortAttribute (..),++    -- ** SlotTypeCategory+    SlotTypeCategory (..),++    -- ** SlotTypeFilterName+    SlotTypeFilterName (..),++    -- ** SlotTypeFilterOperator+    SlotTypeFilterOperator (..),++    -- ** SlotTypeSortAttribute+    SlotTypeSortAttribute (..),++    -- ** SlotValueResolutionStrategy+    SlotValueResolutionStrategy (..),++    -- ** SortOrder+    SortOrder (..),++    -- ** TimeDimension+    TimeDimension (..),++    -- ** TranscriptFormat+    TranscriptFormat (..),++    -- ** VoiceEngine+    VoiceEngine (..),++    -- ** AdvancedRecognitionSetting+    AdvancedRecognitionSetting (AdvancedRecognitionSetting'),+    newAdvancedRecognitionSetting,++    -- ** AggregatedUtterancesFilter+    AggregatedUtterancesFilter (AggregatedUtterancesFilter'),+    newAggregatedUtterancesFilter,++    -- ** AggregatedUtterancesSortBy+    AggregatedUtterancesSortBy (AggregatedUtterancesSortBy'),+    newAggregatedUtterancesSortBy,++    -- ** AggregatedUtterancesSummary+    AggregatedUtterancesSummary (AggregatedUtterancesSummary'),+    newAggregatedUtterancesSummary,++    -- ** AllowedInputTypes+    AllowedInputTypes (AllowedInputTypes'),+    newAllowedInputTypes,++    -- ** AssociatedTranscript+    AssociatedTranscript (AssociatedTranscript'),+    newAssociatedTranscript,++    -- ** AssociatedTranscriptFilter+    AssociatedTranscriptFilter (AssociatedTranscriptFilter'),+    newAssociatedTranscriptFilter,++    -- ** AudioAndDTMFInputSpecification+    AudioAndDTMFInputSpecification (AudioAndDTMFInputSpecification'),+    newAudioAndDTMFInputSpecification,++    -- ** AudioLogDestination+    AudioLogDestination (AudioLogDestination'),+    newAudioLogDestination,++    -- ** AudioLogSetting+    AudioLogSetting (AudioLogSetting'),+    newAudioLogSetting,++    -- ** AudioSpecification+    AudioSpecification (AudioSpecification'),+    newAudioSpecification,++    -- ** BotAliasHistoryEvent+    BotAliasHistoryEvent (BotAliasHistoryEvent'),+    newBotAliasHistoryEvent,++    -- ** BotAliasLocaleSettings+    BotAliasLocaleSettings (BotAliasLocaleSettings'),+    newBotAliasLocaleSettings,++    -- ** BotAliasSummary+    BotAliasSummary (BotAliasSummary'),+    newBotAliasSummary,++    -- ** BotExportSpecification+    BotExportSpecification (BotExportSpecification'),+    newBotExportSpecification,++    -- ** BotFilter+    BotFilter (BotFilter'),+    newBotFilter,++    -- ** BotImportSpecification+    BotImportSpecification (BotImportSpecification'),+    newBotImportSpecification,++    -- ** BotLocaleExportSpecification+    BotLocaleExportSpecification (BotLocaleExportSpecification'),+    newBotLocaleExportSpecification,++    -- ** BotLocaleFilter+    BotLocaleFilter (BotLocaleFilter'),+    newBotLocaleFilter,++    -- ** BotLocaleHistoryEvent+    BotLocaleHistoryEvent (BotLocaleHistoryEvent'),+    newBotLocaleHistoryEvent,++    -- ** BotLocaleImportSpecification+    BotLocaleImportSpecification (BotLocaleImportSpecification'),+    newBotLocaleImportSpecification,++    -- ** BotLocaleSortBy+    BotLocaleSortBy (BotLocaleSortBy'),+    newBotLocaleSortBy,++    -- ** BotLocaleSummary+    BotLocaleSummary (BotLocaleSummary'),+    newBotLocaleSummary,++    -- ** BotRecommendationResultStatistics+    BotRecommendationResultStatistics (BotRecommendationResultStatistics'),+    newBotRecommendationResultStatistics,++    -- ** BotRecommendationResults+    BotRecommendationResults (BotRecommendationResults'),+    newBotRecommendationResults,++    -- ** BotRecommendationSummary+    BotRecommendationSummary (BotRecommendationSummary'),+    newBotRecommendationSummary,++    -- ** BotSortBy+    BotSortBy (BotSortBy'),+    newBotSortBy,++    -- ** BotSummary+    BotSummary (BotSummary'),+    newBotSummary,++    -- ** BotVersionLocaleDetails+    BotVersionLocaleDetails (BotVersionLocaleDetails'),+    newBotVersionLocaleDetails,++    -- ** BotVersionSortBy+    BotVersionSortBy (BotVersionSortBy'),+    newBotVersionSortBy,++    -- ** BotVersionSummary+    BotVersionSummary (BotVersionSummary'),+    newBotVersionSummary,++    -- ** BuiltInIntentSortBy+    BuiltInIntentSortBy (BuiltInIntentSortBy'),+    newBuiltInIntentSortBy,++    -- ** BuiltInIntentSummary+    BuiltInIntentSummary (BuiltInIntentSummary'),+    newBuiltInIntentSummary,++    -- ** BuiltInSlotTypeSortBy+    BuiltInSlotTypeSortBy (BuiltInSlotTypeSortBy'),+    newBuiltInSlotTypeSortBy,++    -- ** BuiltInSlotTypeSummary+    BuiltInSlotTypeSummary (BuiltInSlotTypeSummary'),+    newBuiltInSlotTypeSummary,++    -- ** Button+    Button (Button'),+    newButton,++    -- ** CloudWatchLogGroupLogDestination+    CloudWatchLogGroupLogDestination (CloudWatchLogGroupLogDestination'),+    newCloudWatchLogGroupLogDestination,++    -- ** CodeHookSpecification+    CodeHookSpecification (CodeHookSpecification'),+    newCodeHookSpecification,++    -- ** CompositeSlotTypeSetting+    CompositeSlotTypeSetting (CompositeSlotTypeSetting'),+    newCompositeSlotTypeSetting,++    -- ** Condition+    Condition (Condition'),+    newCondition,++    -- ** ConditionalBranch+    ConditionalBranch (ConditionalBranch'),+    newConditionalBranch,++    -- ** ConditionalSpecification+    ConditionalSpecification (ConditionalSpecification'),+    newConditionalSpecification,++    -- ** ConversationLogSettings+    ConversationLogSettings (ConversationLogSettings'),+    newConversationLogSettings,++    -- ** CustomPayload+    CustomPayload (CustomPayload'),+    newCustomPayload,++    -- ** CustomVocabularyEntryId+    CustomVocabularyEntryId (CustomVocabularyEntryId'),+    newCustomVocabularyEntryId,++    -- ** CustomVocabularyExportSpecification+    CustomVocabularyExportSpecification (CustomVocabularyExportSpecification'),+    newCustomVocabularyExportSpecification,++    -- ** CustomVocabularyImportSpecification+    CustomVocabularyImportSpecification (CustomVocabularyImportSpecification'),+    newCustomVocabularyImportSpecification,++    -- ** CustomVocabularyItem+    CustomVocabularyItem (CustomVocabularyItem'),+    newCustomVocabularyItem,++    -- ** DTMFSpecification+    DTMFSpecification (DTMFSpecification'),+    newDTMFSpecification,++    -- ** DataPrivacy+    DataPrivacy (DataPrivacy'),+    newDataPrivacy,++    -- ** DateRangeFilter+    DateRangeFilter (DateRangeFilter'),+    newDateRangeFilter,++    -- ** DefaultConditionalBranch+    DefaultConditionalBranch (DefaultConditionalBranch'),+    newDefaultConditionalBranch,++    -- ** DialogAction+    DialogAction (DialogAction'),+    newDialogAction,++    -- ** DialogCodeHookInvocationSetting+    DialogCodeHookInvocationSetting (DialogCodeHookInvocationSetting'),+    newDialogCodeHookInvocationSetting,++    -- ** DialogCodeHookSettings+    DialogCodeHookSettings (DialogCodeHookSettings'),+    newDialogCodeHookSettings,++    -- ** DialogState+    DialogState (DialogState'),+    newDialogState,++    -- ** ElicitationCodeHookInvocationSetting+    ElicitationCodeHookInvocationSetting (ElicitationCodeHookInvocationSetting'),+    newElicitationCodeHookInvocationSetting,++    -- ** EncryptionSetting+    EncryptionSetting (EncryptionSetting'),+    newEncryptionSetting,++    -- ** ExportFilter+    ExportFilter (ExportFilter'),+    newExportFilter,++    -- ** ExportResourceSpecification+    ExportResourceSpecification (ExportResourceSpecification'),+    newExportResourceSpecification,++    -- ** ExportSortBy+    ExportSortBy (ExportSortBy'),+    newExportSortBy,++    -- ** ExportSummary+    ExportSummary (ExportSummary'),+    newExportSummary,++    -- ** ExternalSourceSetting+    ExternalSourceSetting (ExternalSourceSetting'),+    newExternalSourceSetting,++    -- ** FailedCustomVocabularyItem+    FailedCustomVocabularyItem (FailedCustomVocabularyItem'),+    newFailedCustomVocabularyItem,++    -- ** FulfillmentCodeHookSettings+    FulfillmentCodeHookSettings (FulfillmentCodeHookSettings'),+    newFulfillmentCodeHookSettings,++    -- ** FulfillmentStartResponseSpecification+    FulfillmentStartResponseSpecification (FulfillmentStartResponseSpecification'),+    newFulfillmentStartResponseSpecification,++    -- ** FulfillmentUpdateResponseSpecification+    FulfillmentUpdateResponseSpecification (FulfillmentUpdateResponseSpecification'),+    newFulfillmentUpdateResponseSpecification,++    -- ** FulfillmentUpdatesSpecification+    FulfillmentUpdatesSpecification (FulfillmentUpdatesSpecification'),+    newFulfillmentUpdatesSpecification,++    -- ** GrammarSlotTypeSetting+    GrammarSlotTypeSetting (GrammarSlotTypeSetting'),+    newGrammarSlotTypeSetting,++    -- ** GrammarSlotTypeSource+    GrammarSlotTypeSource (GrammarSlotTypeSource'),+    newGrammarSlotTypeSource,++    -- ** ImageResponseCard+    ImageResponseCard (ImageResponseCard'),+    newImageResponseCard,++    -- ** ImportFilter+    ImportFilter (ImportFilter'),+    newImportFilter,++    -- ** ImportResourceSpecification+    ImportResourceSpecification (ImportResourceSpecification'),+    newImportResourceSpecification,++    -- ** ImportSortBy+    ImportSortBy (ImportSortBy'),+    newImportSortBy,++    -- ** ImportSummary+    ImportSummary (ImportSummary'),+    newImportSummary,++    -- ** InitialResponseSetting+    InitialResponseSetting (InitialResponseSetting'),+    newInitialResponseSetting,++    -- ** InputContext+    InputContext (InputContext'),+    newInputContext,++    -- ** IntentClosingSetting+    IntentClosingSetting (IntentClosingSetting'),+    newIntentClosingSetting,++    -- ** IntentConfirmationSetting+    IntentConfirmationSetting (IntentConfirmationSetting'),+    newIntentConfirmationSetting,++    -- ** IntentFilter+    IntentFilter (IntentFilter'),+    newIntentFilter,++    -- ** IntentOverride+    IntentOverride (IntentOverride'),+    newIntentOverride,++    -- ** IntentSortBy+    IntentSortBy (IntentSortBy'),+    newIntentSortBy,++    -- ** IntentStatistics+    IntentStatistics (IntentStatistics'),+    newIntentStatistics,++    -- ** IntentSummary+    IntentSummary (IntentSummary'),+    newIntentSummary,++    -- ** KendraConfiguration+    KendraConfiguration (KendraConfiguration'),+    newKendraConfiguration,++    -- ** LambdaCodeHook+    LambdaCodeHook (LambdaCodeHook'),+    newLambdaCodeHook,++    -- ** LexTranscriptFilter+    LexTranscriptFilter (LexTranscriptFilter'),+    newLexTranscriptFilter,++    -- ** Message+    Message (Message'),+    newMessage,++    -- ** MessageGroup+    MessageGroup (MessageGroup'),+    newMessageGroup,++    -- ** MultipleValuesSetting+    MultipleValuesSetting (MultipleValuesSetting'),+    newMultipleValuesSetting,++    -- ** NewCustomVocabularyItem+    NewCustomVocabularyItem (NewCustomVocabularyItem'),+    newNewCustomVocabularyItem,++    -- ** ObfuscationSetting+    ObfuscationSetting (ObfuscationSetting'),+    newObfuscationSetting,++    -- ** OutputContext+    OutputContext (OutputContext'),+    newOutputContext,++    -- ** PathFormat+    PathFormat (PathFormat'),+    newPathFormat,++    -- ** PlainTextMessage+    PlainTextMessage (PlainTextMessage'),+    newPlainTextMessage,++    -- ** PostDialogCodeHookInvocationSpecification+    PostDialogCodeHookInvocationSpecification (PostDialogCodeHookInvocationSpecification'),+    newPostDialogCodeHookInvocationSpecification,++    -- ** PostFulfillmentStatusSpecification+    PostFulfillmentStatusSpecification (PostFulfillmentStatusSpecification'),+    newPostFulfillmentStatusSpecification,++    -- ** Principal+    Principal (Principal'),+    newPrincipal,++    -- ** PromptAttemptSpecification+    PromptAttemptSpecification (PromptAttemptSpecification'),+    newPromptAttemptSpecification,++    -- ** PromptSpecification+    PromptSpecification (PromptSpecification'),+    newPromptSpecification,++    -- ** RecommendedIntentSummary+    RecommendedIntentSummary (RecommendedIntentSummary'),+    newRecommendedIntentSummary,++    -- ** RelativeAggregationDuration+    RelativeAggregationDuration (RelativeAggregationDuration'),+    newRelativeAggregationDuration,++    -- ** ResponseSpecification+    ResponseSpecification (ResponseSpecification'),+    newResponseSpecification,++    -- ** S3BucketLogDestination+    S3BucketLogDestination (S3BucketLogDestination'),+    newS3BucketLogDestination,++    -- ** S3BucketTranscriptSource+    S3BucketTranscriptSource (S3BucketTranscriptSource'),+    newS3BucketTranscriptSource,++    -- ** SSMLMessage+    SSMLMessage (SSMLMessage'),+    newSSMLMessage,++    -- ** SampleUtterance+    SampleUtterance (SampleUtterance'),+    newSampleUtterance,++    -- ** SampleValue+    SampleValue (SampleValue'),+    newSampleValue,++    -- ** SentimentAnalysisSettings+    SentimentAnalysisSettings (SentimentAnalysisSettings'),+    newSentimentAnalysisSettings,++    -- ** SlotCaptureSetting+    SlotCaptureSetting (SlotCaptureSetting'),+    newSlotCaptureSetting,++    -- ** SlotDefaultValue+    SlotDefaultValue (SlotDefaultValue'),+    newSlotDefaultValue,++    -- ** SlotDefaultValueSpecification+    SlotDefaultValueSpecification (SlotDefaultValueSpecification'),+    newSlotDefaultValueSpecification,++    -- ** SlotFilter+    SlotFilter (SlotFilter'),+    newSlotFilter,++    -- ** SlotPriority+    SlotPriority (SlotPriority'),+    newSlotPriority,++    -- ** SlotSortBy+    SlotSortBy (SlotSortBy'),+    newSlotSortBy,++    -- ** SlotSummary+    SlotSummary (SlotSummary'),+    newSlotSummary,++    -- ** SlotTypeFilter+    SlotTypeFilter (SlotTypeFilter'),+    newSlotTypeFilter,++    -- ** SlotTypeSortBy+    SlotTypeSortBy (SlotTypeSortBy'),+    newSlotTypeSortBy,++    -- ** SlotTypeStatistics+    SlotTypeStatistics (SlotTypeStatistics'),+    newSlotTypeStatistics,++    -- ** SlotTypeSummary+    SlotTypeSummary (SlotTypeSummary'),+    newSlotTypeSummary,++    -- ** SlotTypeValue+    SlotTypeValue (SlotTypeValue'),+    newSlotTypeValue,++    -- ** SlotValue+    SlotValue (SlotValue'),+    newSlotValue,++    -- ** SlotValueElicitationSetting+    SlotValueElicitationSetting (SlotValueElicitationSetting'),+    newSlotValueElicitationSetting,++    -- ** SlotValueOverride+    SlotValueOverride (SlotValueOverride'),+    newSlotValueOverride,++    -- ** SlotValueRegexFilter+    SlotValueRegexFilter (SlotValueRegexFilter'),+    newSlotValueRegexFilter,++    -- ** SlotValueSelectionSetting+    SlotValueSelectionSetting (SlotValueSelectionSetting'),+    newSlotValueSelectionSetting,++    -- ** Specifications+    Specifications (Specifications'),+    newSpecifications,++    -- ** StillWaitingResponseSpecification+    StillWaitingResponseSpecification (StillWaitingResponseSpecification'),+    newStillWaitingResponseSpecification,++    -- ** SubSlotSetting+    SubSlotSetting (SubSlotSetting'),+    newSubSlotSetting,++    -- ** SubSlotTypeComposition+    SubSlotTypeComposition (SubSlotTypeComposition'),+    newSubSlotTypeComposition,++    -- ** SubSlotValueElicitationSetting+    SubSlotValueElicitationSetting (SubSlotValueElicitationSetting'),+    newSubSlotValueElicitationSetting,++    -- ** TextInputSpecification+    TextInputSpecification (TextInputSpecification'),+    newTextInputSpecification,++    -- ** TextLogDestination+    TextLogDestination (TextLogDestination'),+    newTextLogDestination,++    -- ** TextLogSetting+    TextLogSetting (TextLogSetting'),+    newTextLogSetting,++    -- ** TranscriptFilter+    TranscriptFilter (TranscriptFilter'),+    newTranscriptFilter,++    -- ** TranscriptSourceSetting+    TranscriptSourceSetting (TranscriptSourceSetting'),+    newTranscriptSourceSetting,++    -- ** UtteranceAggregationDuration+    UtteranceAggregationDuration (UtteranceAggregationDuration'),+    newUtteranceAggregationDuration,++    -- ** VoiceSettings+    VoiceSettings (VoiceSettings'),+    newVoiceSettings,++    -- ** WaitAndContinueSpecification+    WaitAndContinueSpecification (WaitAndContinueSpecification'),+    newWaitAndContinueSpecification,+  )+where++import Amazonka.LexV2Models.BatchCreateCustomVocabularyItem+import Amazonka.LexV2Models.BatchDeleteCustomVocabularyItem+import Amazonka.LexV2Models.BatchUpdateCustomVocabularyItem+import Amazonka.LexV2Models.BuildBotLocale+import Amazonka.LexV2Models.CreateBot+import Amazonka.LexV2Models.CreateBotAlias+import Amazonka.LexV2Models.CreateBotLocale+import Amazonka.LexV2Models.CreateBotVersion+import Amazonka.LexV2Models.CreateExport+import Amazonka.LexV2Models.CreateIntent+import Amazonka.LexV2Models.CreateResourcePolicy+import Amazonka.LexV2Models.CreateResourcePolicyStatement+import Amazonka.LexV2Models.CreateSlot+import Amazonka.LexV2Models.CreateSlotType+import Amazonka.LexV2Models.CreateUploadUrl+import Amazonka.LexV2Models.DeleteBot+import Amazonka.LexV2Models.DeleteBotAlias+import Amazonka.LexV2Models.DeleteBotLocale+import Amazonka.LexV2Models.DeleteBotVersion+import Amazonka.LexV2Models.DeleteCustomVocabulary+import Amazonka.LexV2Models.DeleteExport+import Amazonka.LexV2Models.DeleteImport+import Amazonka.LexV2Models.DeleteIntent+import Amazonka.LexV2Models.DeleteResourcePolicy+import Amazonka.LexV2Models.DeleteResourcePolicyStatement+import Amazonka.LexV2Models.DeleteSlot+import Amazonka.LexV2Models.DeleteSlotType+import Amazonka.LexV2Models.DeleteUtterances+import Amazonka.LexV2Models.DescribeBot+import Amazonka.LexV2Models.DescribeBotAlias+import Amazonka.LexV2Models.DescribeBotLocale+import Amazonka.LexV2Models.DescribeBotRecommendation+import Amazonka.LexV2Models.DescribeBotVersion+import Amazonka.LexV2Models.DescribeCustomVocabularyMetadata+import Amazonka.LexV2Models.DescribeExport+import Amazonka.LexV2Models.DescribeImport+import Amazonka.LexV2Models.DescribeIntent+import Amazonka.LexV2Models.DescribeResourcePolicy+import Amazonka.LexV2Models.DescribeSlot+import Amazonka.LexV2Models.DescribeSlotType+import Amazonka.LexV2Models.Lens+import Amazonka.LexV2Models.ListAggregatedUtterances+import Amazonka.LexV2Models.ListBotAliases+import Amazonka.LexV2Models.ListBotLocales+import Amazonka.LexV2Models.ListBotRecommendations+import Amazonka.LexV2Models.ListBotVersions+import Amazonka.LexV2Models.ListBots+import Amazonka.LexV2Models.ListBuiltInIntents+import Amazonka.LexV2Models.ListBuiltInSlotTypes+import Amazonka.LexV2Models.ListCustomVocabularyItems+import Amazonka.LexV2Models.ListExports+import Amazonka.LexV2Models.ListImports+import Amazonka.LexV2Models.ListIntents+import Amazonka.LexV2Models.ListRecommendedIntents+import Amazonka.LexV2Models.ListSlotTypes+import Amazonka.LexV2Models.ListSlots+import Amazonka.LexV2Models.ListTagsForResource+import Amazonka.LexV2Models.SearchAssociatedTranscripts+import Amazonka.LexV2Models.StartBotRecommendation+import Amazonka.LexV2Models.StartImport+import Amazonka.LexV2Models.StopBotRecommendation+import Amazonka.LexV2Models.TagResource+import Amazonka.LexV2Models.Types+import Amazonka.LexV2Models.UntagResource+import Amazonka.LexV2Models.UpdateBot+import Amazonka.LexV2Models.UpdateBotAlias+import Amazonka.LexV2Models.UpdateBotLocale+import Amazonka.LexV2Models.UpdateBotRecommendation+import Amazonka.LexV2Models.UpdateExport+import Amazonka.LexV2Models.UpdateIntent+import Amazonka.LexV2Models.UpdateResourcePolicy+import Amazonka.LexV2Models.UpdateSlot+import Amazonka.LexV2Models.UpdateSlotType+import Amazonka.LexV2Models.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 'LexV2Models'.++-- $operations+-- Some AWS operations return results that are incomplete and require subsequent+-- requests in order to obtain the entire result set. The process of sending+-- subsequent requests to continue where a previous request left off is called+-- pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to+-- 1000 objects at a time, and you must send subsequent requests with the+-- appropriate Marker in order to retrieve the next page of results.+--+-- Operations that have an 'AWSPager' instance can transparently perform subsequent+-- requests, correctly setting Markers and other request facets to iterate through+-- the entire result set of a truncated API operation. Operations which support+-- this have an additional note in the documentation.+--+-- Many operations have the ability to filter results on the server side. See the+-- individual operation parameters for details.++-- $waiters+-- Waiters poll by repeatedly sending a request until some remote success condition+-- configured by the 'Wait' specification is fulfilled. The 'Wait' specification+-- determines how many attempts should be made, in addition to delay and retry strategies.
+ gen/Amazonka/LexV2Models/BatchCreateCustomVocabularyItem.hs view
@@ -0,0 +1,323 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.BatchCreateCustomVocabularyItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Batch create custom vocabulary item for the specified locale in the+-- specified bot.+module Amazonka.LexV2Models.BatchCreateCustomVocabularyItem+  ( -- * Creating a Request+    BatchCreateCustomVocabularyItem (..),+    newBatchCreateCustomVocabularyItem,++    -- * Request Lenses+    batchCreateCustomVocabularyItem_botId,+    batchCreateCustomVocabularyItem_botVersion,+    batchCreateCustomVocabularyItem_localeId,+    batchCreateCustomVocabularyItem_customVocabularyItemList,++    -- * Destructuring the Response+    BatchCreateCustomVocabularyItemResponse (..),+    newBatchCreateCustomVocabularyItemResponse,++    -- * Response Lenses+    batchCreateCustomVocabularyItemResponse_botId,+    batchCreateCustomVocabularyItemResponse_botVersion,+    batchCreateCustomVocabularyItemResponse_errors,+    batchCreateCustomVocabularyItemResponse_localeId,+    batchCreateCustomVocabularyItemResponse_resources,+    batchCreateCustomVocabularyItemResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchCreateCustomVocabularyItem' smart constructor.+data BatchCreateCustomVocabularyItem = BatchCreateCustomVocabularyItem'+  { -- | The unique identifier of the bot to batch create the custom vocabulary+    -- item for.+    botId :: Prelude.Text,+    -- | The bot version of the bot to batch create the custom vocabulary item+    -- for.+    botVersion :: Prelude.Text,+    -- | The unique locale identifier of the bot to batch create the custom+    -- vocabulary item for.+    localeId :: Prelude.Text,+    -- | The custom vocabulary item list of the bot to batch create the custom+    -- vocabulary item for.+    customVocabularyItemList :: Prelude.NonEmpty NewCustomVocabularyItem+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchCreateCustomVocabularyItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'batchCreateCustomVocabularyItem_botId' - The unique identifier of the bot to batch create the custom vocabulary+-- item for.+--+-- 'botVersion', 'batchCreateCustomVocabularyItem_botVersion' - The bot version of the bot to batch create the custom vocabulary item+-- for.+--+-- 'localeId', 'batchCreateCustomVocabularyItem_localeId' - The unique locale identifier of the bot to batch create the custom+-- vocabulary item for.+--+-- 'customVocabularyItemList', 'batchCreateCustomVocabularyItem_customVocabularyItemList' - The custom vocabulary item list of the bot to batch create the custom+-- vocabulary item for.+newBatchCreateCustomVocabularyItem ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  -- | 'customVocabularyItemList'+  Prelude.NonEmpty NewCustomVocabularyItem ->+  BatchCreateCustomVocabularyItem+newBatchCreateCustomVocabularyItem+  pBotId_+  pBotVersion_+  pLocaleId_+  pCustomVocabularyItemList_ =+    BatchCreateCustomVocabularyItem'+      { botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_,+        customVocabularyItemList =+          Lens.coerced+            Lens.# pCustomVocabularyItemList_+      }++-- | The unique identifier of the bot to batch create the custom vocabulary+-- item for.+batchCreateCustomVocabularyItem_botId :: Lens.Lens' BatchCreateCustomVocabularyItem Prelude.Text+batchCreateCustomVocabularyItem_botId = Lens.lens (\BatchCreateCustomVocabularyItem' {botId} -> botId) (\s@BatchCreateCustomVocabularyItem' {} a -> s {botId = a} :: BatchCreateCustomVocabularyItem)++-- | The bot version of the bot to batch create the custom vocabulary item+-- for.+batchCreateCustomVocabularyItem_botVersion :: Lens.Lens' BatchCreateCustomVocabularyItem Prelude.Text+batchCreateCustomVocabularyItem_botVersion = Lens.lens (\BatchCreateCustomVocabularyItem' {botVersion} -> botVersion) (\s@BatchCreateCustomVocabularyItem' {} a -> s {botVersion = a} :: BatchCreateCustomVocabularyItem)++-- | The unique locale identifier of the bot to batch create the custom+-- vocabulary item for.+batchCreateCustomVocabularyItem_localeId :: Lens.Lens' BatchCreateCustomVocabularyItem Prelude.Text+batchCreateCustomVocabularyItem_localeId = Lens.lens (\BatchCreateCustomVocabularyItem' {localeId} -> localeId) (\s@BatchCreateCustomVocabularyItem' {} a -> s {localeId = a} :: BatchCreateCustomVocabularyItem)++-- | The custom vocabulary item list of the bot to batch create the custom+-- vocabulary item for.+batchCreateCustomVocabularyItem_customVocabularyItemList :: Lens.Lens' BatchCreateCustomVocabularyItem (Prelude.NonEmpty NewCustomVocabularyItem)+batchCreateCustomVocabularyItem_customVocabularyItemList = Lens.lens (\BatchCreateCustomVocabularyItem' {customVocabularyItemList} -> customVocabularyItemList) (\s@BatchCreateCustomVocabularyItem' {} a -> s {customVocabularyItemList = a} :: BatchCreateCustomVocabularyItem) Prelude.. Lens.coerced++instance+  Core.AWSRequest+    BatchCreateCustomVocabularyItem+  where+  type+    AWSResponse BatchCreateCustomVocabularyItem =+      BatchCreateCustomVocabularyItemResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchCreateCustomVocabularyItemResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "errors" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "resources" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    BatchCreateCustomVocabularyItem+  where+  hashWithSalt+    _salt+    BatchCreateCustomVocabularyItem' {..} =+      _salt+        `Prelude.hashWithSalt` botId+        `Prelude.hashWithSalt` botVersion+        `Prelude.hashWithSalt` localeId+        `Prelude.hashWithSalt` customVocabularyItemList++instance+  Prelude.NFData+    BatchCreateCustomVocabularyItem+  where+  rnf BatchCreateCustomVocabularyItem' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf customVocabularyItemList++instance+  Data.ToHeaders+    BatchCreateCustomVocabularyItem+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchCreateCustomVocabularyItem where+  toJSON BatchCreateCustomVocabularyItem' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "customVocabularyItemList"+                  Data..= customVocabularyItemList+              )+          ]+      )++instance Data.ToPath BatchCreateCustomVocabularyItem where+  toPath BatchCreateCustomVocabularyItem' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/customvocabulary/DEFAULT/batchcreate"+      ]++instance Data.ToQuery BatchCreateCustomVocabularyItem where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchCreateCustomVocabularyItemResponse' smart constructor.+data BatchCreateCustomVocabularyItemResponse = BatchCreateCustomVocabularyItemResponse'+  { -- | The unique identifier of the bot to batch create response for the custom+    -- vocabulary item.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The bot version of the bot to batch create the custom vocabulary item+    -- response for.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The errors of the action to batch create the custom vocabulary item+    -- response for a bot.+    errors :: Prelude.Maybe [FailedCustomVocabularyItem],+    -- | The unique locale identifier of the bot to batch create the custom+    -- vocabulary item response for.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The resources of the action to batch create the custom vocabulary item+    -- response for a bot.+    resources :: Prelude.Maybe [CustomVocabularyItem],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchCreateCustomVocabularyItemResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'batchCreateCustomVocabularyItemResponse_botId' - The unique identifier of the bot to batch create response for the custom+-- vocabulary item.+--+-- 'botVersion', 'batchCreateCustomVocabularyItemResponse_botVersion' - The bot version of the bot to batch create the custom vocabulary item+-- response for.+--+-- 'errors', 'batchCreateCustomVocabularyItemResponse_errors' - The errors of the action to batch create the custom vocabulary item+-- response for a bot.+--+-- 'localeId', 'batchCreateCustomVocabularyItemResponse_localeId' - The unique locale identifier of the bot to batch create the custom+-- vocabulary item response for.+--+-- 'resources', 'batchCreateCustomVocabularyItemResponse_resources' - The resources of the action to batch create the custom vocabulary item+-- response for a bot.+--+-- 'httpStatus', 'batchCreateCustomVocabularyItemResponse_httpStatus' - The response's http status code.+newBatchCreateCustomVocabularyItemResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchCreateCustomVocabularyItemResponse+newBatchCreateCustomVocabularyItemResponse+  pHttpStatus_ =+    BatchCreateCustomVocabularyItemResponse'+      { botId =+          Prelude.Nothing,+        botVersion = Prelude.Nothing,+        errors = Prelude.Nothing,+        localeId = Prelude.Nothing,+        resources = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The unique identifier of the bot to batch create response for the custom+-- vocabulary item.+batchCreateCustomVocabularyItemResponse_botId :: Lens.Lens' BatchCreateCustomVocabularyItemResponse (Prelude.Maybe Prelude.Text)+batchCreateCustomVocabularyItemResponse_botId = Lens.lens (\BatchCreateCustomVocabularyItemResponse' {botId} -> botId) (\s@BatchCreateCustomVocabularyItemResponse' {} a -> s {botId = a} :: BatchCreateCustomVocabularyItemResponse)++-- | The bot version of the bot to batch create the custom vocabulary item+-- response for.+batchCreateCustomVocabularyItemResponse_botVersion :: Lens.Lens' BatchCreateCustomVocabularyItemResponse (Prelude.Maybe Prelude.Text)+batchCreateCustomVocabularyItemResponse_botVersion = Lens.lens (\BatchCreateCustomVocabularyItemResponse' {botVersion} -> botVersion) (\s@BatchCreateCustomVocabularyItemResponse' {} a -> s {botVersion = a} :: BatchCreateCustomVocabularyItemResponse)++-- | The errors of the action to batch create the custom vocabulary item+-- response for a bot.+batchCreateCustomVocabularyItemResponse_errors :: Lens.Lens' BatchCreateCustomVocabularyItemResponse (Prelude.Maybe [FailedCustomVocabularyItem])+batchCreateCustomVocabularyItemResponse_errors = Lens.lens (\BatchCreateCustomVocabularyItemResponse' {errors} -> errors) (\s@BatchCreateCustomVocabularyItemResponse' {} a -> s {errors = a} :: BatchCreateCustomVocabularyItemResponse) Prelude.. Lens.mapping Lens.coerced++-- | The unique locale identifier of the bot to batch create the custom+-- vocabulary item response for.+batchCreateCustomVocabularyItemResponse_localeId :: Lens.Lens' BatchCreateCustomVocabularyItemResponse (Prelude.Maybe Prelude.Text)+batchCreateCustomVocabularyItemResponse_localeId = Lens.lens (\BatchCreateCustomVocabularyItemResponse' {localeId} -> localeId) (\s@BatchCreateCustomVocabularyItemResponse' {} a -> s {localeId = a} :: BatchCreateCustomVocabularyItemResponse)++-- | The resources of the action to batch create the custom vocabulary item+-- response for a bot.+batchCreateCustomVocabularyItemResponse_resources :: Lens.Lens' BatchCreateCustomVocabularyItemResponse (Prelude.Maybe [CustomVocabularyItem])+batchCreateCustomVocabularyItemResponse_resources = Lens.lens (\BatchCreateCustomVocabularyItemResponse' {resources} -> resources) (\s@BatchCreateCustomVocabularyItemResponse' {} a -> s {resources = a} :: BatchCreateCustomVocabularyItemResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchCreateCustomVocabularyItemResponse_httpStatus :: Lens.Lens' BatchCreateCustomVocabularyItemResponse Prelude.Int+batchCreateCustomVocabularyItemResponse_httpStatus = Lens.lens (\BatchCreateCustomVocabularyItemResponse' {httpStatus} -> httpStatus) (\s@BatchCreateCustomVocabularyItemResponse' {} a -> s {httpStatus = a} :: BatchCreateCustomVocabularyItemResponse)++instance+  Prelude.NFData+    BatchCreateCustomVocabularyItemResponse+  where+  rnf BatchCreateCustomVocabularyItemResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf errors+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf resources+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/BatchDeleteCustomVocabularyItem.hs view
@@ -0,0 +1,323 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.BatchDeleteCustomVocabularyItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Batch delete custom vocabulary item for the specified locale in the+-- specified bot.+module Amazonka.LexV2Models.BatchDeleteCustomVocabularyItem+  ( -- * Creating a Request+    BatchDeleteCustomVocabularyItem (..),+    newBatchDeleteCustomVocabularyItem,++    -- * Request Lenses+    batchDeleteCustomVocabularyItem_botId,+    batchDeleteCustomVocabularyItem_botVersion,+    batchDeleteCustomVocabularyItem_localeId,+    batchDeleteCustomVocabularyItem_customVocabularyItemList,++    -- * Destructuring the Response+    BatchDeleteCustomVocabularyItemResponse (..),+    newBatchDeleteCustomVocabularyItemResponse,++    -- * Response Lenses+    batchDeleteCustomVocabularyItemResponse_botId,+    batchDeleteCustomVocabularyItemResponse_botVersion,+    batchDeleteCustomVocabularyItemResponse_errors,+    batchDeleteCustomVocabularyItemResponse_localeId,+    batchDeleteCustomVocabularyItemResponse_resources,+    batchDeleteCustomVocabularyItemResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchDeleteCustomVocabularyItem' smart constructor.+data BatchDeleteCustomVocabularyItem = BatchDeleteCustomVocabularyItem'+  { -- | The unique identifier of the bot to batch delete request for the custom+    -- vocabulary item.+    botId :: Prelude.Text,+    -- | The version of the bot to batch delete request for the custom vocabulary+    -- item.+    botVersion :: Prelude.Text,+    -- | The locale identifier of the bot to batch delete request for the custom+    -- vocabulary item.+    localeId :: Prelude.Text,+    -- | The custom vocabulary list to batch delete request for the custom+    -- vocabulary item.+    customVocabularyItemList :: Prelude.NonEmpty CustomVocabularyEntryId+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchDeleteCustomVocabularyItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'batchDeleteCustomVocabularyItem_botId' - The unique identifier of the bot to batch delete request for the custom+-- vocabulary item.+--+-- 'botVersion', 'batchDeleteCustomVocabularyItem_botVersion' - The version of the bot to batch delete request for the custom vocabulary+-- item.+--+-- 'localeId', 'batchDeleteCustomVocabularyItem_localeId' - The locale identifier of the bot to batch delete request for the custom+-- vocabulary item.+--+-- 'customVocabularyItemList', 'batchDeleteCustomVocabularyItem_customVocabularyItemList' - The custom vocabulary list to batch delete request for the custom+-- vocabulary item.+newBatchDeleteCustomVocabularyItem ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  -- | 'customVocabularyItemList'+  Prelude.NonEmpty CustomVocabularyEntryId ->+  BatchDeleteCustomVocabularyItem+newBatchDeleteCustomVocabularyItem+  pBotId_+  pBotVersion_+  pLocaleId_+  pCustomVocabularyItemList_ =+    BatchDeleteCustomVocabularyItem'+      { botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_,+        customVocabularyItemList =+          Lens.coerced+            Lens.# pCustomVocabularyItemList_+      }++-- | The unique identifier of the bot to batch delete request for the custom+-- vocabulary item.+batchDeleteCustomVocabularyItem_botId :: Lens.Lens' BatchDeleteCustomVocabularyItem Prelude.Text+batchDeleteCustomVocabularyItem_botId = Lens.lens (\BatchDeleteCustomVocabularyItem' {botId} -> botId) (\s@BatchDeleteCustomVocabularyItem' {} a -> s {botId = a} :: BatchDeleteCustomVocabularyItem)++-- | The version of the bot to batch delete request for the custom vocabulary+-- item.+batchDeleteCustomVocabularyItem_botVersion :: Lens.Lens' BatchDeleteCustomVocabularyItem Prelude.Text+batchDeleteCustomVocabularyItem_botVersion = Lens.lens (\BatchDeleteCustomVocabularyItem' {botVersion} -> botVersion) (\s@BatchDeleteCustomVocabularyItem' {} a -> s {botVersion = a} :: BatchDeleteCustomVocabularyItem)++-- | The locale identifier of the bot to batch delete request for the custom+-- vocabulary item.+batchDeleteCustomVocabularyItem_localeId :: Lens.Lens' BatchDeleteCustomVocabularyItem Prelude.Text+batchDeleteCustomVocabularyItem_localeId = Lens.lens (\BatchDeleteCustomVocabularyItem' {localeId} -> localeId) (\s@BatchDeleteCustomVocabularyItem' {} a -> s {localeId = a} :: BatchDeleteCustomVocabularyItem)++-- | The custom vocabulary list to batch delete request for the custom+-- vocabulary item.+batchDeleteCustomVocabularyItem_customVocabularyItemList :: Lens.Lens' BatchDeleteCustomVocabularyItem (Prelude.NonEmpty CustomVocabularyEntryId)+batchDeleteCustomVocabularyItem_customVocabularyItemList = Lens.lens (\BatchDeleteCustomVocabularyItem' {customVocabularyItemList} -> customVocabularyItemList) (\s@BatchDeleteCustomVocabularyItem' {} a -> s {customVocabularyItemList = a} :: BatchDeleteCustomVocabularyItem) Prelude.. Lens.coerced++instance+  Core.AWSRequest+    BatchDeleteCustomVocabularyItem+  where+  type+    AWSResponse BatchDeleteCustomVocabularyItem =+      BatchDeleteCustomVocabularyItemResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchDeleteCustomVocabularyItemResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "errors" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "resources" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    BatchDeleteCustomVocabularyItem+  where+  hashWithSalt+    _salt+    BatchDeleteCustomVocabularyItem' {..} =+      _salt+        `Prelude.hashWithSalt` botId+        `Prelude.hashWithSalt` botVersion+        `Prelude.hashWithSalt` localeId+        `Prelude.hashWithSalt` customVocabularyItemList++instance+  Prelude.NFData+    BatchDeleteCustomVocabularyItem+  where+  rnf BatchDeleteCustomVocabularyItem' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf customVocabularyItemList++instance+  Data.ToHeaders+    BatchDeleteCustomVocabularyItem+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchDeleteCustomVocabularyItem where+  toJSON BatchDeleteCustomVocabularyItem' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "customVocabularyItemList"+                  Data..= customVocabularyItemList+              )+          ]+      )++instance Data.ToPath BatchDeleteCustomVocabularyItem where+  toPath BatchDeleteCustomVocabularyItem' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/customvocabulary/DEFAULT/batchdelete"+      ]++instance Data.ToQuery BatchDeleteCustomVocabularyItem where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchDeleteCustomVocabularyItemResponse' smart constructor.+data BatchDeleteCustomVocabularyItemResponse = BatchDeleteCustomVocabularyItemResponse'+  { -- | The unique identifier of the bot to batch delete response for the custom+    -- vocabulary item.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot to batch delete response for the custom+    -- vocabulary item.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The errors of the action to batch delete response for the custom+    -- vocabulary item.+    errors :: Prelude.Maybe [FailedCustomVocabularyItem],+    -- | The locale identifier of the bot to batch delete response for the custom+    -- vocabulary item.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The resources of the action to batch delete response for the custom+    -- vocabulary item.+    resources :: Prelude.Maybe [CustomVocabularyItem],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchDeleteCustomVocabularyItemResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'batchDeleteCustomVocabularyItemResponse_botId' - The unique identifier of the bot to batch delete response for the custom+-- vocabulary item.+--+-- 'botVersion', 'batchDeleteCustomVocabularyItemResponse_botVersion' - The version of the bot to batch delete response for the custom+-- vocabulary item.+--+-- 'errors', 'batchDeleteCustomVocabularyItemResponse_errors' - The errors of the action to batch delete response for the custom+-- vocabulary item.+--+-- 'localeId', 'batchDeleteCustomVocabularyItemResponse_localeId' - The locale identifier of the bot to batch delete response for the custom+-- vocabulary item.+--+-- 'resources', 'batchDeleteCustomVocabularyItemResponse_resources' - The resources of the action to batch delete response for the custom+-- vocabulary item.+--+-- 'httpStatus', 'batchDeleteCustomVocabularyItemResponse_httpStatus' - The response's http status code.+newBatchDeleteCustomVocabularyItemResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchDeleteCustomVocabularyItemResponse+newBatchDeleteCustomVocabularyItemResponse+  pHttpStatus_ =+    BatchDeleteCustomVocabularyItemResponse'+      { botId =+          Prelude.Nothing,+        botVersion = Prelude.Nothing,+        errors = Prelude.Nothing,+        localeId = Prelude.Nothing,+        resources = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The unique identifier of the bot to batch delete response for the custom+-- vocabulary item.+batchDeleteCustomVocabularyItemResponse_botId :: Lens.Lens' BatchDeleteCustomVocabularyItemResponse (Prelude.Maybe Prelude.Text)+batchDeleteCustomVocabularyItemResponse_botId = Lens.lens (\BatchDeleteCustomVocabularyItemResponse' {botId} -> botId) (\s@BatchDeleteCustomVocabularyItemResponse' {} a -> s {botId = a} :: BatchDeleteCustomVocabularyItemResponse)++-- | The version of the bot to batch delete response for the custom+-- vocabulary item.+batchDeleteCustomVocabularyItemResponse_botVersion :: Lens.Lens' BatchDeleteCustomVocabularyItemResponse (Prelude.Maybe Prelude.Text)+batchDeleteCustomVocabularyItemResponse_botVersion = Lens.lens (\BatchDeleteCustomVocabularyItemResponse' {botVersion} -> botVersion) (\s@BatchDeleteCustomVocabularyItemResponse' {} a -> s {botVersion = a} :: BatchDeleteCustomVocabularyItemResponse)++-- | The errors of the action to batch delete response for the custom+-- vocabulary item.+batchDeleteCustomVocabularyItemResponse_errors :: Lens.Lens' BatchDeleteCustomVocabularyItemResponse (Prelude.Maybe [FailedCustomVocabularyItem])+batchDeleteCustomVocabularyItemResponse_errors = Lens.lens (\BatchDeleteCustomVocabularyItemResponse' {errors} -> errors) (\s@BatchDeleteCustomVocabularyItemResponse' {} a -> s {errors = a} :: BatchDeleteCustomVocabularyItemResponse) Prelude.. Lens.mapping Lens.coerced++-- | The locale identifier of the bot to batch delete response for the custom+-- vocabulary item.+batchDeleteCustomVocabularyItemResponse_localeId :: Lens.Lens' BatchDeleteCustomVocabularyItemResponse (Prelude.Maybe Prelude.Text)+batchDeleteCustomVocabularyItemResponse_localeId = Lens.lens (\BatchDeleteCustomVocabularyItemResponse' {localeId} -> localeId) (\s@BatchDeleteCustomVocabularyItemResponse' {} a -> s {localeId = a} :: BatchDeleteCustomVocabularyItemResponse)++-- | The resources of the action to batch delete response for the custom+-- vocabulary item.+batchDeleteCustomVocabularyItemResponse_resources :: Lens.Lens' BatchDeleteCustomVocabularyItemResponse (Prelude.Maybe [CustomVocabularyItem])+batchDeleteCustomVocabularyItemResponse_resources = Lens.lens (\BatchDeleteCustomVocabularyItemResponse' {resources} -> resources) (\s@BatchDeleteCustomVocabularyItemResponse' {} a -> s {resources = a} :: BatchDeleteCustomVocabularyItemResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchDeleteCustomVocabularyItemResponse_httpStatus :: Lens.Lens' BatchDeleteCustomVocabularyItemResponse Prelude.Int+batchDeleteCustomVocabularyItemResponse_httpStatus = Lens.lens (\BatchDeleteCustomVocabularyItemResponse' {httpStatus} -> httpStatus) (\s@BatchDeleteCustomVocabularyItemResponse' {} a -> s {httpStatus = a} :: BatchDeleteCustomVocabularyItemResponse)++instance+  Prelude.NFData+    BatchDeleteCustomVocabularyItemResponse+  where+  rnf BatchDeleteCustomVocabularyItemResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf errors+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf resources+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/BatchUpdateCustomVocabularyItem.hs view
@@ -0,0 +1,323 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.BatchUpdateCustomVocabularyItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Batch update custom vocabulary item for the specified locale in the+-- specified bot.+module Amazonka.LexV2Models.BatchUpdateCustomVocabularyItem+  ( -- * Creating a Request+    BatchUpdateCustomVocabularyItem (..),+    newBatchUpdateCustomVocabularyItem,++    -- * Request Lenses+    batchUpdateCustomVocabularyItem_botId,+    batchUpdateCustomVocabularyItem_botVersion,+    batchUpdateCustomVocabularyItem_localeId,+    batchUpdateCustomVocabularyItem_customVocabularyItemList,++    -- * Destructuring the Response+    BatchUpdateCustomVocabularyItemResponse (..),+    newBatchUpdateCustomVocabularyItemResponse,++    -- * Response Lenses+    batchUpdateCustomVocabularyItemResponse_botId,+    batchUpdateCustomVocabularyItemResponse_botVersion,+    batchUpdateCustomVocabularyItemResponse_errors,+    batchUpdateCustomVocabularyItemResponse_localeId,+    batchUpdateCustomVocabularyItemResponse_resources,+    batchUpdateCustomVocabularyItemResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchUpdateCustomVocabularyItem' smart constructor.+data BatchUpdateCustomVocabularyItem = BatchUpdateCustomVocabularyItem'+  { -- | The unique identifier of the bot to the batch update request for the+    -- custom vocabulary item.+    botId :: Prelude.Text,+    -- | The bot version of the bot to the batch update request for the custom+    -- vocabulary item.+    botVersion :: Prelude.Text,+    -- | The locale identifier of the bot to the batch update request for the+    -- custom vocabulary item.+    localeId :: Prelude.Text,+    -- | The custom vocabulary item list of the bot to the batch update request+    -- for the custom vocabulary item.+    customVocabularyItemList :: Prelude.NonEmpty CustomVocabularyItem+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchUpdateCustomVocabularyItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'batchUpdateCustomVocabularyItem_botId' - The unique identifier of the bot to the batch update request for the+-- custom vocabulary item.+--+-- 'botVersion', 'batchUpdateCustomVocabularyItem_botVersion' - The bot version of the bot to the batch update request for the custom+-- vocabulary item.+--+-- 'localeId', 'batchUpdateCustomVocabularyItem_localeId' - The locale identifier of the bot to the batch update request for the+-- custom vocabulary item.+--+-- 'customVocabularyItemList', 'batchUpdateCustomVocabularyItem_customVocabularyItemList' - The custom vocabulary item list of the bot to the batch update request+-- for the custom vocabulary item.+newBatchUpdateCustomVocabularyItem ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  -- | 'customVocabularyItemList'+  Prelude.NonEmpty CustomVocabularyItem ->+  BatchUpdateCustomVocabularyItem+newBatchUpdateCustomVocabularyItem+  pBotId_+  pBotVersion_+  pLocaleId_+  pCustomVocabularyItemList_ =+    BatchUpdateCustomVocabularyItem'+      { botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_,+        customVocabularyItemList =+          Lens.coerced+            Lens.# pCustomVocabularyItemList_+      }++-- | The unique identifier of the bot to the batch update request for the+-- custom vocabulary item.+batchUpdateCustomVocabularyItem_botId :: Lens.Lens' BatchUpdateCustomVocabularyItem Prelude.Text+batchUpdateCustomVocabularyItem_botId = Lens.lens (\BatchUpdateCustomVocabularyItem' {botId} -> botId) (\s@BatchUpdateCustomVocabularyItem' {} a -> s {botId = a} :: BatchUpdateCustomVocabularyItem)++-- | The bot version of the bot to the batch update request for the custom+-- vocabulary item.+batchUpdateCustomVocabularyItem_botVersion :: Lens.Lens' BatchUpdateCustomVocabularyItem Prelude.Text+batchUpdateCustomVocabularyItem_botVersion = Lens.lens (\BatchUpdateCustomVocabularyItem' {botVersion} -> botVersion) (\s@BatchUpdateCustomVocabularyItem' {} a -> s {botVersion = a} :: BatchUpdateCustomVocabularyItem)++-- | The locale identifier of the bot to the batch update request for the+-- custom vocabulary item.+batchUpdateCustomVocabularyItem_localeId :: Lens.Lens' BatchUpdateCustomVocabularyItem Prelude.Text+batchUpdateCustomVocabularyItem_localeId = Lens.lens (\BatchUpdateCustomVocabularyItem' {localeId} -> localeId) (\s@BatchUpdateCustomVocabularyItem' {} a -> s {localeId = a} :: BatchUpdateCustomVocabularyItem)++-- | The custom vocabulary item list of the bot to the batch update request+-- for the custom vocabulary item.+batchUpdateCustomVocabularyItem_customVocabularyItemList :: Lens.Lens' BatchUpdateCustomVocabularyItem (Prelude.NonEmpty CustomVocabularyItem)+batchUpdateCustomVocabularyItem_customVocabularyItemList = Lens.lens (\BatchUpdateCustomVocabularyItem' {customVocabularyItemList} -> customVocabularyItemList) (\s@BatchUpdateCustomVocabularyItem' {} a -> s {customVocabularyItemList = a} :: BatchUpdateCustomVocabularyItem) Prelude.. Lens.coerced++instance+  Core.AWSRequest+    BatchUpdateCustomVocabularyItem+  where+  type+    AWSResponse BatchUpdateCustomVocabularyItem =+      BatchUpdateCustomVocabularyItemResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchUpdateCustomVocabularyItemResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "errors" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "resources" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    BatchUpdateCustomVocabularyItem+  where+  hashWithSalt+    _salt+    BatchUpdateCustomVocabularyItem' {..} =+      _salt+        `Prelude.hashWithSalt` botId+        `Prelude.hashWithSalt` botVersion+        `Prelude.hashWithSalt` localeId+        `Prelude.hashWithSalt` customVocabularyItemList++instance+  Prelude.NFData+    BatchUpdateCustomVocabularyItem+  where+  rnf BatchUpdateCustomVocabularyItem' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf customVocabularyItemList++instance+  Data.ToHeaders+    BatchUpdateCustomVocabularyItem+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchUpdateCustomVocabularyItem where+  toJSON BatchUpdateCustomVocabularyItem' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "customVocabularyItemList"+                  Data..= customVocabularyItemList+              )+          ]+      )++instance Data.ToPath BatchUpdateCustomVocabularyItem where+  toPath BatchUpdateCustomVocabularyItem' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/customvocabulary/DEFAULT/batchupdate"+      ]++instance Data.ToQuery BatchUpdateCustomVocabularyItem where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchUpdateCustomVocabularyItemResponse' smart constructor.+data BatchUpdateCustomVocabularyItemResponse = BatchUpdateCustomVocabularyItemResponse'+  { -- | The unique identifier of the bot to the batch update response for the+    -- custom vocabulary item.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The bot version of the bot to the batch update response for the custom+    -- vocabulary item.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The errors of the action to batch update response for the custom+    -- vocabulary item.+    errors :: Prelude.Maybe [FailedCustomVocabularyItem],+    -- | The locale identifier of the bot to the batch update response for the+    -- custom vocabulary item.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The resources of the action to batch update response for the custom+    -- vocabulary item.+    resources :: Prelude.Maybe [CustomVocabularyItem],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchUpdateCustomVocabularyItemResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'batchUpdateCustomVocabularyItemResponse_botId' - The unique identifier of the bot to the batch update response for the+-- custom vocabulary item.+--+-- 'botVersion', 'batchUpdateCustomVocabularyItemResponse_botVersion' - The bot version of the bot to the batch update response for the custom+-- vocabulary item.+--+-- 'errors', 'batchUpdateCustomVocabularyItemResponse_errors' - The errors of the action to batch update response for the custom+-- vocabulary item.+--+-- 'localeId', 'batchUpdateCustomVocabularyItemResponse_localeId' - The locale identifier of the bot to the batch update response for the+-- custom vocabulary item.+--+-- 'resources', 'batchUpdateCustomVocabularyItemResponse_resources' - The resources of the action to batch update response for the custom+-- vocabulary item.+--+-- 'httpStatus', 'batchUpdateCustomVocabularyItemResponse_httpStatus' - The response's http status code.+newBatchUpdateCustomVocabularyItemResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchUpdateCustomVocabularyItemResponse+newBatchUpdateCustomVocabularyItemResponse+  pHttpStatus_ =+    BatchUpdateCustomVocabularyItemResponse'+      { botId =+          Prelude.Nothing,+        botVersion = Prelude.Nothing,+        errors = Prelude.Nothing,+        localeId = Prelude.Nothing,+        resources = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The unique identifier of the bot to the batch update response for the+-- custom vocabulary item.+batchUpdateCustomVocabularyItemResponse_botId :: Lens.Lens' BatchUpdateCustomVocabularyItemResponse (Prelude.Maybe Prelude.Text)+batchUpdateCustomVocabularyItemResponse_botId = Lens.lens (\BatchUpdateCustomVocabularyItemResponse' {botId} -> botId) (\s@BatchUpdateCustomVocabularyItemResponse' {} a -> s {botId = a} :: BatchUpdateCustomVocabularyItemResponse)++-- | The bot version of the bot to the batch update response for the custom+-- vocabulary item.+batchUpdateCustomVocabularyItemResponse_botVersion :: Lens.Lens' BatchUpdateCustomVocabularyItemResponse (Prelude.Maybe Prelude.Text)+batchUpdateCustomVocabularyItemResponse_botVersion = Lens.lens (\BatchUpdateCustomVocabularyItemResponse' {botVersion} -> botVersion) (\s@BatchUpdateCustomVocabularyItemResponse' {} a -> s {botVersion = a} :: BatchUpdateCustomVocabularyItemResponse)++-- | The errors of the action to batch update response for the custom+-- vocabulary item.+batchUpdateCustomVocabularyItemResponse_errors :: Lens.Lens' BatchUpdateCustomVocabularyItemResponse (Prelude.Maybe [FailedCustomVocabularyItem])+batchUpdateCustomVocabularyItemResponse_errors = Lens.lens (\BatchUpdateCustomVocabularyItemResponse' {errors} -> errors) (\s@BatchUpdateCustomVocabularyItemResponse' {} a -> s {errors = a} :: BatchUpdateCustomVocabularyItemResponse) Prelude.. Lens.mapping Lens.coerced++-- | The locale identifier of the bot to the batch update response for the+-- custom vocabulary item.+batchUpdateCustomVocabularyItemResponse_localeId :: Lens.Lens' BatchUpdateCustomVocabularyItemResponse (Prelude.Maybe Prelude.Text)+batchUpdateCustomVocabularyItemResponse_localeId = Lens.lens (\BatchUpdateCustomVocabularyItemResponse' {localeId} -> localeId) (\s@BatchUpdateCustomVocabularyItemResponse' {} a -> s {localeId = a} :: BatchUpdateCustomVocabularyItemResponse)++-- | The resources of the action to batch update response for the custom+-- vocabulary item.+batchUpdateCustomVocabularyItemResponse_resources :: Lens.Lens' BatchUpdateCustomVocabularyItemResponse (Prelude.Maybe [CustomVocabularyItem])+batchUpdateCustomVocabularyItemResponse_resources = Lens.lens (\BatchUpdateCustomVocabularyItemResponse' {resources} -> resources) (\s@BatchUpdateCustomVocabularyItemResponse' {} a -> s {resources = a} :: BatchUpdateCustomVocabularyItemResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchUpdateCustomVocabularyItemResponse_httpStatus :: Lens.Lens' BatchUpdateCustomVocabularyItemResponse Prelude.Int+batchUpdateCustomVocabularyItemResponse_httpStatus = Lens.lens (\BatchUpdateCustomVocabularyItemResponse' {httpStatus} -> httpStatus) (\s@BatchUpdateCustomVocabularyItemResponse' {} a -> s {httpStatus = a} :: BatchUpdateCustomVocabularyItemResponse)++instance+  Prelude.NFData+    BatchUpdateCustomVocabularyItemResponse+  where+  rnf BatchUpdateCustomVocabularyItemResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf errors+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf resources+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/BuildBotLocale.hs view
@@ -0,0 +1,289 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.BuildBotLocale+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Builds a bot, its intents, and its slot types into a specific locale. A+-- bot can be built into multiple locales. At runtime the locale is used to+-- choose a specific build of the bot.+module Amazonka.LexV2Models.BuildBotLocale+  ( -- * Creating a Request+    BuildBotLocale (..),+    newBuildBotLocale,++    -- * Request Lenses+    buildBotLocale_botId,+    buildBotLocale_botVersion,+    buildBotLocale_localeId,++    -- * Destructuring the Response+    BuildBotLocaleResponse (..),+    newBuildBotLocaleResponse,++    -- * Response Lenses+    buildBotLocaleResponse_botId,+    buildBotLocaleResponse_botLocaleStatus,+    buildBotLocaleResponse_botVersion,+    buildBotLocaleResponse_lastBuildSubmittedDateTime,+    buildBotLocaleResponse_localeId,+    buildBotLocaleResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBuildBotLocale' smart constructor.+data BuildBotLocale = BuildBotLocale'+  { -- | The identifier of the bot to build. The identifier is returned in the+    -- response from the+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/API_CreateBot.html CreateBot>+    -- operation.+    botId :: Prelude.Text,+    -- | The version of the bot to build. This can only be the draft version of+    -- the bot.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale that the bot will be used in.+    -- The string must match one of the supported locales. All of the intents,+    -- slot types, and slots used in the bot must have the same locale. For+    -- more information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BuildBotLocale' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'buildBotLocale_botId' - The identifier of the bot to build. The identifier is returned in the+-- response from the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_CreateBot.html CreateBot>+-- operation.+--+-- 'botVersion', 'buildBotLocale_botVersion' - The version of the bot to build. This can only be the draft version of+-- the bot.+--+-- 'localeId', 'buildBotLocale_localeId' - The identifier of the language and locale that the bot will be used in.+-- The string must match one of the supported locales. All of the intents,+-- slot types, and slots used in the bot must have the same locale. For+-- more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+newBuildBotLocale ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  BuildBotLocale+newBuildBotLocale pBotId_ pBotVersion_ pLocaleId_ =+  BuildBotLocale'+    { botId = pBotId_,+      botVersion = pBotVersion_,+      localeId = pLocaleId_+    }++-- | The identifier of the bot to build. The identifier is returned in the+-- response from the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_CreateBot.html CreateBot>+-- operation.+buildBotLocale_botId :: Lens.Lens' BuildBotLocale Prelude.Text+buildBotLocale_botId = Lens.lens (\BuildBotLocale' {botId} -> botId) (\s@BuildBotLocale' {} a -> s {botId = a} :: BuildBotLocale)++-- | The version of the bot to build. This can only be the draft version of+-- the bot.+buildBotLocale_botVersion :: Lens.Lens' BuildBotLocale Prelude.Text+buildBotLocale_botVersion = Lens.lens (\BuildBotLocale' {botVersion} -> botVersion) (\s@BuildBotLocale' {} a -> s {botVersion = a} :: BuildBotLocale)++-- | The identifier of the language and locale that the bot will be used in.+-- The string must match one of the supported locales. All of the intents,+-- slot types, and slots used in the bot must have the same locale. For+-- more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+buildBotLocale_localeId :: Lens.Lens' BuildBotLocale Prelude.Text+buildBotLocale_localeId = Lens.lens (\BuildBotLocale' {localeId} -> localeId) (\s@BuildBotLocale' {} a -> s {localeId = a} :: BuildBotLocale)++instance Core.AWSRequest BuildBotLocale where+  type+    AWSResponse BuildBotLocale =+      BuildBotLocaleResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BuildBotLocaleResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botLocaleStatus")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "lastBuildSubmittedDateTime")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable BuildBotLocale where+  hashWithSalt _salt BuildBotLocale' {..} =+    _salt+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData BuildBotLocale where+  rnf BuildBotLocale' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders BuildBotLocale where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BuildBotLocale where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath BuildBotLocale where+  toPath BuildBotLocale' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/"+      ]++instance Data.ToQuery BuildBotLocale where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBuildBotLocaleResponse' smart constructor.+data BuildBotLocaleResponse = BuildBotLocaleResponse'+  { -- | The identifier of the specified bot.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The bot\'s build status. When the status is @ReadyExpressTesting@ you+    -- can test the bot using the utterances defined for the intents and slot+    -- types. When the status is @Built@, the bot is ready for use and can be+    -- tested using any utterance.+    botLocaleStatus :: Prelude.Maybe BotLocaleStatus,+    -- | The version of the bot that was built. This is only the draft version of+    -- the bot.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | A timestamp indicating the date and time that the bot was last built for+    -- this locale.+    lastBuildSubmittedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The language and locale specified of where the bot can be used.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BuildBotLocaleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'buildBotLocaleResponse_botId' - The identifier of the specified bot.+--+-- 'botLocaleStatus', 'buildBotLocaleResponse_botLocaleStatus' - The bot\'s build status. When the status is @ReadyExpressTesting@ you+-- can test the bot using the utterances defined for the intents and slot+-- types. When the status is @Built@, the bot is ready for use and can be+-- tested using any utterance.+--+-- 'botVersion', 'buildBotLocaleResponse_botVersion' - The version of the bot that was built. This is only the draft version of+-- the bot.+--+-- 'lastBuildSubmittedDateTime', 'buildBotLocaleResponse_lastBuildSubmittedDateTime' - A timestamp indicating the date and time that the bot was last built for+-- this locale.+--+-- 'localeId', 'buildBotLocaleResponse_localeId' - The language and locale specified of where the bot can be used.+--+-- 'httpStatus', 'buildBotLocaleResponse_httpStatus' - The response's http status code.+newBuildBotLocaleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BuildBotLocaleResponse+newBuildBotLocaleResponse pHttpStatus_ =+  BuildBotLocaleResponse'+    { botId = Prelude.Nothing,+      botLocaleStatus = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      lastBuildSubmittedDateTime = Prelude.Nothing,+      localeId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the specified bot.+buildBotLocaleResponse_botId :: Lens.Lens' BuildBotLocaleResponse (Prelude.Maybe Prelude.Text)+buildBotLocaleResponse_botId = Lens.lens (\BuildBotLocaleResponse' {botId} -> botId) (\s@BuildBotLocaleResponse' {} a -> s {botId = a} :: BuildBotLocaleResponse)++-- | The bot\'s build status. When the status is @ReadyExpressTesting@ you+-- can test the bot using the utterances defined for the intents and slot+-- types. When the status is @Built@, the bot is ready for use and can be+-- tested using any utterance.+buildBotLocaleResponse_botLocaleStatus :: Lens.Lens' BuildBotLocaleResponse (Prelude.Maybe BotLocaleStatus)+buildBotLocaleResponse_botLocaleStatus = Lens.lens (\BuildBotLocaleResponse' {botLocaleStatus} -> botLocaleStatus) (\s@BuildBotLocaleResponse' {} a -> s {botLocaleStatus = a} :: BuildBotLocaleResponse)++-- | The version of the bot that was built. This is only the draft version of+-- the bot.+buildBotLocaleResponse_botVersion :: Lens.Lens' BuildBotLocaleResponse (Prelude.Maybe Prelude.Text)+buildBotLocaleResponse_botVersion = Lens.lens (\BuildBotLocaleResponse' {botVersion} -> botVersion) (\s@BuildBotLocaleResponse' {} a -> s {botVersion = a} :: BuildBotLocaleResponse)++-- | A timestamp indicating the date and time that the bot was last built for+-- this locale.+buildBotLocaleResponse_lastBuildSubmittedDateTime :: Lens.Lens' BuildBotLocaleResponse (Prelude.Maybe Prelude.UTCTime)+buildBotLocaleResponse_lastBuildSubmittedDateTime = Lens.lens (\BuildBotLocaleResponse' {lastBuildSubmittedDateTime} -> lastBuildSubmittedDateTime) (\s@BuildBotLocaleResponse' {} a -> s {lastBuildSubmittedDateTime = a} :: BuildBotLocaleResponse) Prelude.. Lens.mapping Data._Time++-- | The language and locale specified of where the bot can be used.+buildBotLocaleResponse_localeId :: Lens.Lens' BuildBotLocaleResponse (Prelude.Maybe Prelude.Text)+buildBotLocaleResponse_localeId = Lens.lens (\BuildBotLocaleResponse' {localeId} -> localeId) (\s@BuildBotLocaleResponse' {} a -> s {localeId = a} :: BuildBotLocaleResponse)++-- | The response's http status code.+buildBotLocaleResponse_httpStatus :: Lens.Lens' BuildBotLocaleResponse Prelude.Int+buildBotLocaleResponse_httpStatus = Lens.lens (\BuildBotLocaleResponse' {httpStatus} -> httpStatus) (\s@BuildBotLocaleResponse' {} a -> s {httpStatus = a} :: BuildBotLocaleResponse)++instance Prelude.NFData BuildBotLocaleResponse where+  rnf BuildBotLocaleResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botLocaleStatus+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf lastBuildSubmittedDateTime+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/CreateBot.hs view
@@ -0,0 +1,429 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.CreateBot+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an Amazon Lex conversational bot.+module Amazonka.LexV2Models.CreateBot+  ( -- * Creating a Request+    CreateBot (..),+    newCreateBot,++    -- * Request Lenses+    createBot_botTags,+    createBot_description,+    createBot_testBotAliasTags,+    createBot_botName,+    createBot_roleArn,+    createBot_dataPrivacy,+    createBot_idleSessionTTLInSeconds,++    -- * Destructuring the Response+    CreateBotResponse (..),+    newCreateBotResponse,++    -- * Response Lenses+    createBotResponse_botId,+    createBotResponse_botName,+    createBotResponse_botStatus,+    createBotResponse_botTags,+    createBotResponse_creationDateTime,+    createBotResponse_dataPrivacy,+    createBotResponse_description,+    createBotResponse_idleSessionTTLInSeconds,+    createBotResponse_roleArn,+    createBotResponse_testBotAliasTags,+    createBotResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateBot' smart constructor.+data CreateBot = CreateBot'+  { -- | A list of tags to add to the bot. You can only add tags when you create+    -- a bot. You can\'t use the @UpdateBot@ operation to update tags. To+    -- update tags, use the @TagResource@ operation.+    botTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A description of the bot. It appears in lists to help you identify a+    -- particular bot.+    description :: Prelude.Maybe Prelude.Text,+    -- | A list of tags to add to the test alias for a bot. You can only add tags+    -- when you create a bot. You can\'t use the @UpdateAlias@ operation to+    -- update tags. To update tags on the test alias, use the @TagResource@+    -- operation.+    testBotAliasTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name of the bot. The bot name must be unique in the account that+    -- creates the bot.+    botName :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an IAM role that has permission to+    -- access the bot.+    roleArn :: Prelude.Text,+    -- | Provides information on additional privacy protections Amazon Lex should+    -- use with the bot\'s data.+    dataPrivacy :: DataPrivacy,+    -- | The time, in seconds, that Amazon Lex should keep information about a+    -- user\'s conversation with the bot.+    --+    -- A user interaction remains active for the amount of time specified. If+    -- no conversation occurs during this time, the session expires and Amazon+    -- Lex deletes any data provided before the timeout.+    --+    -- You can specify between 60 (1 minute) and 86,400 (24 hours) seconds.+    idleSessionTTLInSeconds :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botTags', 'createBot_botTags' - A list of tags to add to the bot. You can only add tags when you create+-- a bot. You can\'t use the @UpdateBot@ operation to update tags. To+-- update tags, use the @TagResource@ operation.+--+-- 'description', 'createBot_description' - A description of the bot. It appears in lists to help you identify a+-- particular bot.+--+-- 'testBotAliasTags', 'createBot_testBotAliasTags' - A list of tags to add to the test alias for a bot. You can only add tags+-- when you create a bot. You can\'t use the @UpdateAlias@ operation to+-- update tags. To update tags on the test alias, use the @TagResource@+-- operation.+--+-- 'botName', 'createBot_botName' - The name of the bot. The bot name must be unique in the account that+-- creates the bot.+--+-- 'roleArn', 'createBot_roleArn' - The Amazon Resource Name (ARN) of an IAM role that has permission to+-- access the bot.+--+-- 'dataPrivacy', 'createBot_dataPrivacy' - Provides information on additional privacy protections Amazon Lex should+-- use with the bot\'s data.+--+-- 'idleSessionTTLInSeconds', 'createBot_idleSessionTTLInSeconds' - The time, in seconds, that Amazon Lex should keep information about a+-- user\'s conversation with the bot.+--+-- A user interaction remains active for the amount of time specified. If+-- no conversation occurs during this time, the session expires and Amazon+-- Lex deletes any data provided before the timeout.+--+-- You can specify between 60 (1 minute) and 86,400 (24 hours) seconds.+newCreateBot ::+  -- | 'botName'+  Prelude.Text ->+  -- | 'roleArn'+  Prelude.Text ->+  -- | 'dataPrivacy'+  DataPrivacy ->+  -- | 'idleSessionTTLInSeconds'+  Prelude.Natural ->+  CreateBot+newCreateBot+  pBotName_+  pRoleArn_+  pDataPrivacy_+  pIdleSessionTTLInSeconds_ =+    CreateBot'+      { botTags = Prelude.Nothing,+        description = Prelude.Nothing,+        testBotAliasTags = Prelude.Nothing,+        botName = pBotName_,+        roleArn = pRoleArn_,+        dataPrivacy = pDataPrivacy_,+        idleSessionTTLInSeconds = pIdleSessionTTLInSeconds_+      }++-- | A list of tags to add to the bot. You can only add tags when you create+-- a bot. You can\'t use the @UpdateBot@ operation to update tags. To+-- update tags, use the @TagResource@ operation.+createBot_botTags :: Lens.Lens' CreateBot (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createBot_botTags = Lens.lens (\CreateBot' {botTags} -> botTags) (\s@CreateBot' {} a -> s {botTags = a} :: CreateBot) Prelude.. Lens.mapping Lens.coerced++-- | A description of the bot. It appears in lists to help you identify a+-- particular bot.+createBot_description :: Lens.Lens' CreateBot (Prelude.Maybe Prelude.Text)+createBot_description = Lens.lens (\CreateBot' {description} -> description) (\s@CreateBot' {} a -> s {description = a} :: CreateBot)++-- | A list of tags to add to the test alias for a bot. You can only add tags+-- when you create a bot. You can\'t use the @UpdateAlias@ operation to+-- update tags. To update tags on the test alias, use the @TagResource@+-- operation.+createBot_testBotAliasTags :: Lens.Lens' CreateBot (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createBot_testBotAliasTags = Lens.lens (\CreateBot' {testBotAliasTags} -> testBotAliasTags) (\s@CreateBot' {} a -> s {testBotAliasTags = a} :: CreateBot) Prelude.. Lens.mapping Lens.coerced++-- | The name of the bot. The bot name must be unique in the account that+-- creates the bot.+createBot_botName :: Lens.Lens' CreateBot Prelude.Text+createBot_botName = Lens.lens (\CreateBot' {botName} -> botName) (\s@CreateBot' {} a -> s {botName = a} :: CreateBot)++-- | The Amazon Resource Name (ARN) of an IAM role that has permission to+-- access the bot.+createBot_roleArn :: Lens.Lens' CreateBot Prelude.Text+createBot_roleArn = Lens.lens (\CreateBot' {roleArn} -> roleArn) (\s@CreateBot' {} a -> s {roleArn = a} :: CreateBot)++-- | Provides information on additional privacy protections Amazon Lex should+-- use with the bot\'s data.+createBot_dataPrivacy :: Lens.Lens' CreateBot DataPrivacy+createBot_dataPrivacy = Lens.lens (\CreateBot' {dataPrivacy} -> dataPrivacy) (\s@CreateBot' {} a -> s {dataPrivacy = a} :: CreateBot)++-- | The time, in seconds, that Amazon Lex should keep information about a+-- user\'s conversation with the bot.+--+-- A user interaction remains active for the amount of time specified. If+-- no conversation occurs during this time, the session expires and Amazon+-- Lex deletes any data provided before the timeout.+--+-- You can specify between 60 (1 minute) and 86,400 (24 hours) seconds.+createBot_idleSessionTTLInSeconds :: Lens.Lens' CreateBot Prelude.Natural+createBot_idleSessionTTLInSeconds = Lens.lens (\CreateBot' {idleSessionTTLInSeconds} -> idleSessionTTLInSeconds) (\s@CreateBot' {} a -> s {idleSessionTTLInSeconds = a} :: CreateBot)++instance Core.AWSRequest CreateBot where+  type AWSResponse CreateBot = CreateBotResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateBotResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botName")+            Prelude.<*> (x Data..?> "botStatus")+            Prelude.<*> (x Data..?> "botTags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "dataPrivacy")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "idleSessionTTLInSeconds")+            Prelude.<*> (x Data..?> "roleArn")+            Prelude.<*> ( x+                            Data..?> "testBotAliasTags"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateBot where+  hashWithSalt _salt CreateBot' {..} =+    _salt+      `Prelude.hashWithSalt` botTags+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` testBotAliasTags+      `Prelude.hashWithSalt` botName+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` dataPrivacy+      `Prelude.hashWithSalt` idleSessionTTLInSeconds++instance Prelude.NFData CreateBot where+  rnf CreateBot' {..} =+    Prelude.rnf botTags+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf testBotAliasTags+      `Prelude.seq` Prelude.rnf botName+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf dataPrivacy+      `Prelude.seq` Prelude.rnf idleSessionTTLInSeconds++instance Data.ToHeaders CreateBot where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateBot where+  toJSON CreateBot' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("botTags" Data..=) Prelude.<$> botTags,+            ("description" Data..=) Prelude.<$> description,+            ("testBotAliasTags" Data..=)+              Prelude.<$> testBotAliasTags,+            Prelude.Just ("botName" Data..= botName),+            Prelude.Just ("roleArn" Data..= roleArn),+            Prelude.Just ("dataPrivacy" Data..= dataPrivacy),+            Prelude.Just+              ( "idleSessionTTLInSeconds"+                  Data..= idleSessionTTLInSeconds+              )+          ]+      )++instance Data.ToPath CreateBot where+  toPath = Prelude.const "/bots/"++instance Data.ToQuery CreateBot where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateBotResponse' smart constructor.+data CreateBotResponse = CreateBotResponse'+  { -- | A unique identifier for a particular bot. You use this to identify the+    -- bot when you call other Amazon Lex API operations.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The name specified for the bot.+    botName :: Prelude.Maybe Prelude.Text,+    -- | Shows the current status of the bot. The bot is first in the @Creating@+    -- status. Once the bot is read for use, it changes to the @Available@+    -- status. After the bot is created, you can use the @Draft@ version of the+    -- bot.+    botStatus :: Prelude.Maybe BotStatus,+    -- | A list of tags associated with the bot.+    botTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | A timestamp indicating the date and time that the bot was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The data privacy settings specified for the bot.+    dataPrivacy :: Prelude.Maybe DataPrivacy,+    -- | The description specified for the bot.+    description :: Prelude.Maybe Prelude.Text,+    -- | The session idle time specified for the bot.+    idleSessionTTLInSeconds :: Prelude.Maybe Prelude.Natural,+    -- | The IAM role specified for the bot.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | A list of tags associated with the test alias for the bot.+    testBotAliasTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBotResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'createBotResponse_botId' - A unique identifier for a particular bot. You use this to identify the+-- bot when you call other Amazon Lex API operations.+--+-- 'botName', 'createBotResponse_botName' - The name specified for the bot.+--+-- 'botStatus', 'createBotResponse_botStatus' - Shows the current status of the bot. The bot is first in the @Creating@+-- status. Once the bot is read for use, it changes to the @Available@+-- status. After the bot is created, you can use the @Draft@ version of the+-- bot.+--+-- 'botTags', 'createBotResponse_botTags' - A list of tags associated with the bot.+--+-- 'creationDateTime', 'createBotResponse_creationDateTime' - A timestamp indicating the date and time that the bot was created.+--+-- 'dataPrivacy', 'createBotResponse_dataPrivacy' - The data privacy settings specified for the bot.+--+-- 'description', 'createBotResponse_description' - The description specified for the bot.+--+-- 'idleSessionTTLInSeconds', 'createBotResponse_idleSessionTTLInSeconds' - The session idle time specified for the bot.+--+-- 'roleArn', 'createBotResponse_roleArn' - The IAM role specified for the bot.+--+-- 'testBotAliasTags', 'createBotResponse_testBotAliasTags' - A list of tags associated with the test alias for the bot.+--+-- 'httpStatus', 'createBotResponse_httpStatus' - The response's http status code.+newCreateBotResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateBotResponse+newCreateBotResponse pHttpStatus_ =+  CreateBotResponse'+    { botId = Prelude.Nothing,+      botName = Prelude.Nothing,+      botStatus = Prelude.Nothing,+      botTags = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      dataPrivacy = Prelude.Nothing,+      description = Prelude.Nothing,+      idleSessionTTLInSeconds = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      testBotAliasTags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A unique identifier for a particular bot. You use this to identify the+-- bot when you call other Amazon Lex API operations.+createBotResponse_botId :: Lens.Lens' CreateBotResponse (Prelude.Maybe Prelude.Text)+createBotResponse_botId = Lens.lens (\CreateBotResponse' {botId} -> botId) (\s@CreateBotResponse' {} a -> s {botId = a} :: CreateBotResponse)++-- | The name specified for the bot.+createBotResponse_botName :: Lens.Lens' CreateBotResponse (Prelude.Maybe Prelude.Text)+createBotResponse_botName = Lens.lens (\CreateBotResponse' {botName} -> botName) (\s@CreateBotResponse' {} a -> s {botName = a} :: CreateBotResponse)++-- | Shows the current status of the bot. The bot is first in the @Creating@+-- status. Once the bot is read for use, it changes to the @Available@+-- status. After the bot is created, you can use the @Draft@ version of the+-- bot.+createBotResponse_botStatus :: Lens.Lens' CreateBotResponse (Prelude.Maybe BotStatus)+createBotResponse_botStatus = Lens.lens (\CreateBotResponse' {botStatus} -> botStatus) (\s@CreateBotResponse' {} a -> s {botStatus = a} :: CreateBotResponse)++-- | A list of tags associated with the bot.+createBotResponse_botTags :: Lens.Lens' CreateBotResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createBotResponse_botTags = Lens.lens (\CreateBotResponse' {botTags} -> botTags) (\s@CreateBotResponse' {} a -> s {botTags = a} :: CreateBotResponse) Prelude.. Lens.mapping Lens.coerced++-- | A timestamp indicating the date and time that the bot was created.+createBotResponse_creationDateTime :: Lens.Lens' CreateBotResponse (Prelude.Maybe Prelude.UTCTime)+createBotResponse_creationDateTime = Lens.lens (\CreateBotResponse' {creationDateTime} -> creationDateTime) (\s@CreateBotResponse' {} a -> s {creationDateTime = a} :: CreateBotResponse) Prelude.. Lens.mapping Data._Time++-- | The data privacy settings specified for the bot.+createBotResponse_dataPrivacy :: Lens.Lens' CreateBotResponse (Prelude.Maybe DataPrivacy)+createBotResponse_dataPrivacy = Lens.lens (\CreateBotResponse' {dataPrivacy} -> dataPrivacy) (\s@CreateBotResponse' {} a -> s {dataPrivacy = a} :: CreateBotResponse)++-- | The description specified for the bot.+createBotResponse_description :: Lens.Lens' CreateBotResponse (Prelude.Maybe Prelude.Text)+createBotResponse_description = Lens.lens (\CreateBotResponse' {description} -> description) (\s@CreateBotResponse' {} a -> s {description = a} :: CreateBotResponse)++-- | The session idle time specified for the bot.+createBotResponse_idleSessionTTLInSeconds :: Lens.Lens' CreateBotResponse (Prelude.Maybe Prelude.Natural)+createBotResponse_idleSessionTTLInSeconds = Lens.lens (\CreateBotResponse' {idleSessionTTLInSeconds} -> idleSessionTTLInSeconds) (\s@CreateBotResponse' {} a -> s {idleSessionTTLInSeconds = a} :: CreateBotResponse)++-- | The IAM role specified for the bot.+createBotResponse_roleArn :: Lens.Lens' CreateBotResponse (Prelude.Maybe Prelude.Text)+createBotResponse_roleArn = Lens.lens (\CreateBotResponse' {roleArn} -> roleArn) (\s@CreateBotResponse' {} a -> s {roleArn = a} :: CreateBotResponse)++-- | A list of tags associated with the test alias for the bot.+createBotResponse_testBotAliasTags :: Lens.Lens' CreateBotResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createBotResponse_testBotAliasTags = Lens.lens (\CreateBotResponse' {testBotAliasTags} -> testBotAliasTags) (\s@CreateBotResponse' {} a -> s {testBotAliasTags = a} :: CreateBotResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+createBotResponse_httpStatus :: Lens.Lens' CreateBotResponse Prelude.Int+createBotResponse_httpStatus = Lens.lens (\CreateBotResponse' {httpStatus} -> httpStatus) (\s@CreateBotResponse' {} a -> s {httpStatus = a} :: CreateBotResponse)++instance Prelude.NFData CreateBotResponse where+  rnf CreateBotResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botName+      `Prelude.seq` Prelude.rnf botStatus+      `Prelude.seq` Prelude.rnf botTags+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf dataPrivacy+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf idleSessionTTLInSeconds+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf testBotAliasTags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/CreateBotAlias.hs view
@@ -0,0 +1,438 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.CreateBotAlias+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an alias for the specified version of a bot. Use an alias to+-- enable you to change the version of a bot without updating applications+-- that use the bot.+--+-- For example, you can create an alias called \"PROD\" that your+-- applications use to call the Amazon Lex bot.+module Amazonka.LexV2Models.CreateBotAlias+  ( -- * Creating a Request+    CreateBotAlias (..),+    newCreateBotAlias,++    -- * Request Lenses+    createBotAlias_botAliasLocaleSettings,+    createBotAlias_botVersion,+    createBotAlias_conversationLogSettings,+    createBotAlias_description,+    createBotAlias_sentimentAnalysisSettings,+    createBotAlias_tags,+    createBotAlias_botAliasName,+    createBotAlias_botId,++    -- * Destructuring the Response+    CreateBotAliasResponse (..),+    newCreateBotAliasResponse,++    -- * Response Lenses+    createBotAliasResponse_botAliasId,+    createBotAliasResponse_botAliasLocaleSettings,+    createBotAliasResponse_botAliasName,+    createBotAliasResponse_botAliasStatus,+    createBotAliasResponse_botId,+    createBotAliasResponse_botVersion,+    createBotAliasResponse_conversationLogSettings,+    createBotAliasResponse_creationDateTime,+    createBotAliasResponse_description,+    createBotAliasResponse_sentimentAnalysisSettings,+    createBotAliasResponse_tags,+    createBotAliasResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateBotAlias' smart constructor.+data CreateBotAlias = CreateBotAlias'+  { -- | Maps configuration information to a specific locale. You can use this+    -- parameter to specify a specific Lambda function to run different+    -- functions in different locales.+    botAliasLocaleSettings :: Prelude.Maybe (Prelude.HashMap Prelude.Text BotAliasLocaleSettings),+    -- | The version of the bot that this alias points to. You can use the+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/API_UpdateBotAlias.html UpdateBotAlias>+    -- operation to change the bot version associated with the alias.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | Specifies whether Amazon Lex logs text and audio for a conversation with+    -- the bot. When you enable conversation logs, text logs store text input,+    -- transcripts of audio input, and associated metadata in Amazon CloudWatch+    -- Logs. Audio logs store audio input in Amazon S3.+    conversationLogSettings :: Prelude.Maybe ConversationLogSettings,+    -- | A description of the alias. Use this description to help identify the+    -- alias.+    description :: Prelude.Maybe Prelude.Text,+    sentimentAnalysisSettings :: Prelude.Maybe SentimentAnalysisSettings,+    -- | A list of tags to add to the bot alias. You can only add tags when you+    -- create an alias, you can\'t use the @UpdateBotAlias@ operation to update+    -- the tags on a bot alias. To update tags, use the @TagResource@+    -- operation.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The alias to create. The name must be unique for the bot.+    botAliasName :: Prelude.Text,+    -- | The unique identifier of the bot that the alias applies to.+    botId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBotAlias' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botAliasLocaleSettings', 'createBotAlias_botAliasLocaleSettings' - Maps configuration information to a specific locale. You can use this+-- parameter to specify a specific Lambda function to run different+-- functions in different locales.+--+-- 'botVersion', 'createBotAlias_botVersion' - The version of the bot that this alias points to. You can use the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_UpdateBotAlias.html UpdateBotAlias>+-- operation to change the bot version associated with the alias.+--+-- 'conversationLogSettings', 'createBotAlias_conversationLogSettings' - Specifies whether Amazon Lex logs text and audio for a conversation with+-- the bot. When you enable conversation logs, text logs store text input,+-- transcripts of audio input, and associated metadata in Amazon CloudWatch+-- Logs. Audio logs store audio input in Amazon S3.+--+-- 'description', 'createBotAlias_description' - A description of the alias. Use this description to help identify the+-- alias.+--+-- 'sentimentAnalysisSettings', 'createBotAlias_sentimentAnalysisSettings' - Undocumented member.+--+-- 'tags', 'createBotAlias_tags' - A list of tags to add to the bot alias. You can only add tags when you+-- create an alias, you can\'t use the @UpdateBotAlias@ operation to update+-- the tags on a bot alias. To update tags, use the @TagResource@+-- operation.+--+-- 'botAliasName', 'createBotAlias_botAliasName' - The alias to create. The name must be unique for the bot.+--+-- 'botId', 'createBotAlias_botId' - The unique identifier of the bot that the alias applies to.+newCreateBotAlias ::+  -- | 'botAliasName'+  Prelude.Text ->+  -- | 'botId'+  Prelude.Text ->+  CreateBotAlias+newCreateBotAlias pBotAliasName_ pBotId_ =+  CreateBotAlias'+    { botAliasLocaleSettings =+        Prelude.Nothing,+      botVersion = Prelude.Nothing,+      conversationLogSettings = Prelude.Nothing,+      description = Prelude.Nothing,+      sentimentAnalysisSettings = Prelude.Nothing,+      tags = Prelude.Nothing,+      botAliasName = pBotAliasName_,+      botId = pBotId_+    }++-- | Maps configuration information to a specific locale. You can use this+-- parameter to specify a specific Lambda function to run different+-- functions in different locales.+createBotAlias_botAliasLocaleSettings :: Lens.Lens' CreateBotAlias (Prelude.Maybe (Prelude.HashMap Prelude.Text BotAliasLocaleSettings))+createBotAlias_botAliasLocaleSettings = Lens.lens (\CreateBotAlias' {botAliasLocaleSettings} -> botAliasLocaleSettings) (\s@CreateBotAlias' {} a -> s {botAliasLocaleSettings = a} :: CreateBotAlias) Prelude.. Lens.mapping Lens.coerced++-- | The version of the bot that this alias points to. You can use the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_UpdateBotAlias.html UpdateBotAlias>+-- operation to change the bot version associated with the alias.+createBotAlias_botVersion :: Lens.Lens' CreateBotAlias (Prelude.Maybe Prelude.Text)+createBotAlias_botVersion = Lens.lens (\CreateBotAlias' {botVersion} -> botVersion) (\s@CreateBotAlias' {} a -> s {botVersion = a} :: CreateBotAlias)++-- | Specifies whether Amazon Lex logs text and audio for a conversation with+-- the bot. When you enable conversation logs, text logs store text input,+-- transcripts of audio input, and associated metadata in Amazon CloudWatch+-- Logs. Audio logs store audio input in Amazon S3.+createBotAlias_conversationLogSettings :: Lens.Lens' CreateBotAlias (Prelude.Maybe ConversationLogSettings)+createBotAlias_conversationLogSettings = Lens.lens (\CreateBotAlias' {conversationLogSettings} -> conversationLogSettings) (\s@CreateBotAlias' {} a -> s {conversationLogSettings = a} :: CreateBotAlias)++-- | A description of the alias. Use this description to help identify the+-- alias.+createBotAlias_description :: Lens.Lens' CreateBotAlias (Prelude.Maybe Prelude.Text)+createBotAlias_description = Lens.lens (\CreateBotAlias' {description} -> description) (\s@CreateBotAlias' {} a -> s {description = a} :: CreateBotAlias)++-- | Undocumented member.+createBotAlias_sentimentAnalysisSettings :: Lens.Lens' CreateBotAlias (Prelude.Maybe SentimentAnalysisSettings)+createBotAlias_sentimentAnalysisSettings = Lens.lens (\CreateBotAlias' {sentimentAnalysisSettings} -> sentimentAnalysisSettings) (\s@CreateBotAlias' {} a -> s {sentimentAnalysisSettings = a} :: CreateBotAlias)++-- | A list of tags to add to the bot alias. You can only add tags when you+-- create an alias, you can\'t use the @UpdateBotAlias@ operation to update+-- the tags on a bot alias. To update tags, use the @TagResource@+-- operation.+createBotAlias_tags :: Lens.Lens' CreateBotAlias (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createBotAlias_tags = Lens.lens (\CreateBotAlias' {tags} -> tags) (\s@CreateBotAlias' {} a -> s {tags = a} :: CreateBotAlias) Prelude.. Lens.mapping Lens.coerced++-- | The alias to create. The name must be unique for the bot.+createBotAlias_botAliasName :: Lens.Lens' CreateBotAlias Prelude.Text+createBotAlias_botAliasName = Lens.lens (\CreateBotAlias' {botAliasName} -> botAliasName) (\s@CreateBotAlias' {} a -> s {botAliasName = a} :: CreateBotAlias)++-- | The unique identifier of the bot that the alias applies to.+createBotAlias_botId :: Lens.Lens' CreateBotAlias Prelude.Text+createBotAlias_botId = Lens.lens (\CreateBotAlias' {botId} -> botId) (\s@CreateBotAlias' {} a -> s {botId = a} :: CreateBotAlias)++instance Core.AWSRequest CreateBotAlias where+  type+    AWSResponse CreateBotAlias =+      CreateBotAliasResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateBotAliasResponse'+            Prelude.<$> (x Data..?> "botAliasId")+            Prelude.<*> ( x+                            Data..?> "botAliasLocaleSettings"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "botAliasName")+            Prelude.<*> (x Data..?> "botAliasStatus")+            Prelude.<*> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "conversationLogSettings")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "sentimentAnalysisSettings")+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateBotAlias where+  hashWithSalt _salt CreateBotAlias' {..} =+    _salt+      `Prelude.hashWithSalt` botAliasLocaleSettings+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` conversationLogSettings+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` sentimentAnalysisSettings+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` botAliasName+      `Prelude.hashWithSalt` botId++instance Prelude.NFData CreateBotAlias where+  rnf CreateBotAlias' {..} =+    Prelude.rnf botAliasLocaleSettings+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf conversationLogSettings+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf sentimentAnalysisSettings+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf botAliasName+      `Prelude.seq` Prelude.rnf botId++instance Data.ToHeaders CreateBotAlias where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateBotAlias where+  toJSON CreateBotAlias' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("botAliasLocaleSettings" Data..=)+              Prelude.<$> botAliasLocaleSettings,+            ("botVersion" Data..=) Prelude.<$> botVersion,+            ("conversationLogSettings" Data..=)+              Prelude.<$> conversationLogSettings,+            ("description" Data..=) Prelude.<$> description,+            ("sentimentAnalysisSettings" Data..=)+              Prelude.<$> sentimentAnalysisSettings,+            ("tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("botAliasName" Data..= botAliasName)+          ]+      )++instance Data.ToPath CreateBotAlias where+  toPath CreateBotAlias' {..} =+    Prelude.mconcat+      ["/bots/", Data.toBS botId, "/botaliases/"]++instance Data.ToQuery CreateBotAlias where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateBotAliasResponse' smart constructor.+data CreateBotAliasResponse = CreateBotAliasResponse'+  { -- | The unique identifier of the bot alias.+    botAliasId :: Prelude.Maybe Prelude.Text,+    -- | Configuration information for a specific locale.+    botAliasLocaleSettings :: Prelude.Maybe (Prelude.HashMap Prelude.Text BotAliasLocaleSettings),+    -- | The name specified for the bot alias.+    botAliasName :: Prelude.Maybe Prelude.Text,+    -- | The current status of the alias. The alias is first put into the+    -- @Creating@ state. When the alias is ready to be used, it is put into the+    -- @Available@ state. You can use the @DescribeBotAlias@ operation to get+    -- the current state of an alias.+    botAliasStatus :: Prelude.Maybe BotAliasStatus,+    -- | The unique identifier of the bot that this alias applies to.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot associated with this alias.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The conversation log settings specified for the alias.+    conversationLogSettings :: Prelude.Maybe ConversationLogSettings,+    -- | A Unix timestamp indicating the date and time that the bot alias was+    -- created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The description specified for the bot alias.+    description :: Prelude.Maybe Prelude.Text,+    sentimentAnalysisSettings :: Prelude.Maybe SentimentAnalysisSettings,+    -- | A list of tags associated with the bot alias.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBotAliasResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botAliasId', 'createBotAliasResponse_botAliasId' - The unique identifier of the bot alias.+--+-- 'botAliasLocaleSettings', 'createBotAliasResponse_botAliasLocaleSettings' - Configuration information for a specific locale.+--+-- 'botAliasName', 'createBotAliasResponse_botAliasName' - The name specified for the bot alias.+--+-- 'botAliasStatus', 'createBotAliasResponse_botAliasStatus' - The current status of the alias. The alias is first put into the+-- @Creating@ state. When the alias is ready to be used, it is put into the+-- @Available@ state. You can use the @DescribeBotAlias@ operation to get+-- the current state of an alias.+--+-- 'botId', 'createBotAliasResponse_botId' - The unique identifier of the bot that this alias applies to.+--+-- 'botVersion', 'createBotAliasResponse_botVersion' - The version of the bot associated with this alias.+--+-- 'conversationLogSettings', 'createBotAliasResponse_conversationLogSettings' - The conversation log settings specified for the alias.+--+-- 'creationDateTime', 'createBotAliasResponse_creationDateTime' - A Unix timestamp indicating the date and time that the bot alias was+-- created.+--+-- 'description', 'createBotAliasResponse_description' - The description specified for the bot alias.+--+-- 'sentimentAnalysisSettings', 'createBotAliasResponse_sentimentAnalysisSettings' - Undocumented member.+--+-- 'tags', 'createBotAliasResponse_tags' - A list of tags associated with the bot alias.+--+-- 'httpStatus', 'createBotAliasResponse_httpStatus' - The response's http status code.+newCreateBotAliasResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateBotAliasResponse+newCreateBotAliasResponse pHttpStatus_ =+  CreateBotAliasResponse'+    { botAliasId =+        Prelude.Nothing,+      botAliasLocaleSettings = Prelude.Nothing,+      botAliasName = Prelude.Nothing,+      botAliasStatus = Prelude.Nothing,+      botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      conversationLogSettings = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      sentimentAnalysisSettings = Prelude.Nothing,+      tags = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the bot alias.+createBotAliasResponse_botAliasId :: Lens.Lens' CreateBotAliasResponse (Prelude.Maybe Prelude.Text)+createBotAliasResponse_botAliasId = Lens.lens (\CreateBotAliasResponse' {botAliasId} -> botAliasId) (\s@CreateBotAliasResponse' {} a -> s {botAliasId = a} :: CreateBotAliasResponse)++-- | Configuration information for a specific locale.+createBotAliasResponse_botAliasLocaleSettings :: Lens.Lens' CreateBotAliasResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text BotAliasLocaleSettings))+createBotAliasResponse_botAliasLocaleSettings = Lens.lens (\CreateBotAliasResponse' {botAliasLocaleSettings} -> botAliasLocaleSettings) (\s@CreateBotAliasResponse' {} a -> s {botAliasLocaleSettings = a} :: CreateBotAliasResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name specified for the bot alias.+createBotAliasResponse_botAliasName :: Lens.Lens' CreateBotAliasResponse (Prelude.Maybe Prelude.Text)+createBotAliasResponse_botAliasName = Lens.lens (\CreateBotAliasResponse' {botAliasName} -> botAliasName) (\s@CreateBotAliasResponse' {} a -> s {botAliasName = a} :: CreateBotAliasResponse)++-- | The current status of the alias. The alias is first put into the+-- @Creating@ state. When the alias is ready to be used, it is put into the+-- @Available@ state. You can use the @DescribeBotAlias@ operation to get+-- the current state of an alias.+createBotAliasResponse_botAliasStatus :: Lens.Lens' CreateBotAliasResponse (Prelude.Maybe BotAliasStatus)+createBotAliasResponse_botAliasStatus = Lens.lens (\CreateBotAliasResponse' {botAliasStatus} -> botAliasStatus) (\s@CreateBotAliasResponse' {} a -> s {botAliasStatus = a} :: CreateBotAliasResponse)++-- | The unique identifier of the bot that this alias applies to.+createBotAliasResponse_botId :: Lens.Lens' CreateBotAliasResponse (Prelude.Maybe Prelude.Text)+createBotAliasResponse_botId = Lens.lens (\CreateBotAliasResponse' {botId} -> botId) (\s@CreateBotAliasResponse' {} a -> s {botId = a} :: CreateBotAliasResponse)++-- | The version of the bot associated with this alias.+createBotAliasResponse_botVersion :: Lens.Lens' CreateBotAliasResponse (Prelude.Maybe Prelude.Text)+createBotAliasResponse_botVersion = Lens.lens (\CreateBotAliasResponse' {botVersion} -> botVersion) (\s@CreateBotAliasResponse' {} a -> s {botVersion = a} :: CreateBotAliasResponse)++-- | The conversation log settings specified for the alias.+createBotAliasResponse_conversationLogSettings :: Lens.Lens' CreateBotAliasResponse (Prelude.Maybe ConversationLogSettings)+createBotAliasResponse_conversationLogSettings = Lens.lens (\CreateBotAliasResponse' {conversationLogSettings} -> conversationLogSettings) (\s@CreateBotAliasResponse' {} a -> s {conversationLogSettings = a} :: CreateBotAliasResponse)++-- | A Unix timestamp indicating the date and time that the bot alias was+-- created.+createBotAliasResponse_creationDateTime :: Lens.Lens' CreateBotAliasResponse (Prelude.Maybe Prelude.UTCTime)+createBotAliasResponse_creationDateTime = Lens.lens (\CreateBotAliasResponse' {creationDateTime} -> creationDateTime) (\s@CreateBotAliasResponse' {} a -> s {creationDateTime = a} :: CreateBotAliasResponse) Prelude.. Lens.mapping Data._Time++-- | The description specified for the bot alias.+createBotAliasResponse_description :: Lens.Lens' CreateBotAliasResponse (Prelude.Maybe Prelude.Text)+createBotAliasResponse_description = Lens.lens (\CreateBotAliasResponse' {description} -> description) (\s@CreateBotAliasResponse' {} a -> s {description = a} :: CreateBotAliasResponse)++-- | Undocumented member.+createBotAliasResponse_sentimentAnalysisSettings :: Lens.Lens' CreateBotAliasResponse (Prelude.Maybe SentimentAnalysisSettings)+createBotAliasResponse_sentimentAnalysisSettings = Lens.lens (\CreateBotAliasResponse' {sentimentAnalysisSettings} -> sentimentAnalysisSettings) (\s@CreateBotAliasResponse' {} a -> s {sentimentAnalysisSettings = a} :: CreateBotAliasResponse)++-- | A list of tags associated with the bot alias.+createBotAliasResponse_tags :: Lens.Lens' CreateBotAliasResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+createBotAliasResponse_tags = Lens.lens (\CreateBotAliasResponse' {tags} -> tags) (\s@CreateBotAliasResponse' {} a -> s {tags = a} :: CreateBotAliasResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+createBotAliasResponse_httpStatus :: Lens.Lens' CreateBotAliasResponse Prelude.Int+createBotAliasResponse_httpStatus = Lens.lens (\CreateBotAliasResponse' {httpStatus} -> httpStatus) (\s@CreateBotAliasResponse' {} a -> s {httpStatus = a} :: CreateBotAliasResponse)++instance Prelude.NFData CreateBotAliasResponse where+  rnf CreateBotAliasResponse' {..} =+    Prelude.rnf botAliasId+      `Prelude.seq` Prelude.rnf botAliasLocaleSettings+      `Prelude.seq` Prelude.rnf botAliasName+      `Prelude.seq` Prelude.rnf botAliasStatus+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf conversationLogSettings+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf sentimentAnalysisSettings+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/CreateBotLocale.hs view
@@ -0,0 +1,468 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.CreateBotLocale+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a locale in the bot. The locale contains the intents and slot+-- types that the bot uses in conversations with users in the specified+-- language and locale. You must add a locale to a bot before you can add+-- intents and slot types to the bot.+module Amazonka.LexV2Models.CreateBotLocale+  ( -- * Creating a Request+    CreateBotLocale (..),+    newCreateBotLocale,++    -- * Request Lenses+    createBotLocale_description,+    createBotLocale_voiceSettings,+    createBotLocale_botId,+    createBotLocale_botVersion,+    createBotLocale_localeId,+    createBotLocale_nluIntentConfidenceThreshold,++    -- * Destructuring the Response+    CreateBotLocaleResponse (..),+    newCreateBotLocaleResponse,++    -- * Response Lenses+    createBotLocaleResponse_botId,+    createBotLocaleResponse_botLocaleStatus,+    createBotLocaleResponse_botVersion,+    createBotLocaleResponse_creationDateTime,+    createBotLocaleResponse_description,+    createBotLocaleResponse_localeId,+    createBotLocaleResponse_localeName,+    createBotLocaleResponse_nluIntentConfidenceThreshold,+    createBotLocaleResponse_voiceSettings,+    createBotLocaleResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateBotLocale' smart constructor.+data CreateBotLocale = CreateBotLocale'+  { -- | A description of the bot locale. Use this to help identify the bot+    -- locale in lists.+    description :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Polly voice ID that Amazon Lex uses for voice interaction+    -- with the user.+    voiceSettings :: Prelude.Maybe VoiceSettings,+    -- | The identifier of the bot to create the locale for.+    botId :: Prelude.Text,+    -- | The version of the bot to create the locale for. This can only be the+    -- draft version of the bot.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale that the bot will be used in.+    -- The string must match one of the supported locales. All of the intents,+    -- slot types, and slots used in the bot must have the same locale. For+    -- more information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text,+    -- | Determines the threshold where Amazon Lex will insert the+    -- @AMAZON.FallbackIntent@, @AMAZON.KendraSearchIntent@, or both when+    -- returning alternative intents. @AMAZON.FallbackIntent@ and+    -- @AMAZON.KendraSearchIntent@ are only inserted if they are configured for+    -- the bot.+    --+    -- For example, suppose a bot is configured with the confidence threshold+    -- of 0.80 and the @AMAZON.FallbackIntent@. Amazon Lex returns three+    -- alternative intents with the following confidence scores: IntentA+    -- (0.70), IntentB (0.60), IntentC (0.50). The response from the+    -- @RecognizeText@ operation would be:+    --+    -- -   AMAZON.FallbackIntent+    --+    -- -   IntentA+    --+    -- -   IntentB+    --+    -- -   IntentC+    nluIntentConfidenceThreshold :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBotLocale' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createBotLocale_description' - A description of the bot locale. Use this to help identify the bot+-- locale in lists.+--+-- 'voiceSettings', 'createBotLocale_voiceSettings' - The Amazon Polly voice ID that Amazon Lex uses for voice interaction+-- with the user.+--+-- 'botId', 'createBotLocale_botId' - The identifier of the bot to create the locale for.+--+-- 'botVersion', 'createBotLocale_botVersion' - The version of the bot to create the locale for. This can only be the+-- draft version of the bot.+--+-- 'localeId', 'createBotLocale_localeId' - The identifier of the language and locale that the bot will be used in.+-- The string must match one of the supported locales. All of the intents,+-- slot types, and slots used in the bot must have the same locale. For+-- more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+--+-- 'nluIntentConfidenceThreshold', 'createBotLocale_nluIntentConfidenceThreshold' - Determines the threshold where Amazon Lex will insert the+-- @AMAZON.FallbackIntent@, @AMAZON.KendraSearchIntent@, or both when+-- returning alternative intents. @AMAZON.FallbackIntent@ and+-- @AMAZON.KendraSearchIntent@ are only inserted if they are configured for+-- the bot.+--+-- For example, suppose a bot is configured with the confidence threshold+-- of 0.80 and the @AMAZON.FallbackIntent@. Amazon Lex returns three+-- alternative intents with the following confidence scores: IntentA+-- (0.70), IntentB (0.60), IntentC (0.50). The response from the+-- @RecognizeText@ operation would be:+--+-- -   AMAZON.FallbackIntent+--+-- -   IntentA+--+-- -   IntentB+--+-- -   IntentC+newCreateBotLocale ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  -- | 'nluIntentConfidenceThreshold'+  Prelude.Double ->+  CreateBotLocale+newCreateBotLocale+  pBotId_+  pBotVersion_+  pLocaleId_+  pNluIntentConfidenceThreshold_ =+    CreateBotLocale'+      { description = Prelude.Nothing,+        voiceSettings = Prelude.Nothing,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_,+        nluIntentConfidenceThreshold =+          pNluIntentConfidenceThreshold_+      }++-- | A description of the bot locale. Use this to help identify the bot+-- locale in lists.+createBotLocale_description :: Lens.Lens' CreateBotLocale (Prelude.Maybe Prelude.Text)+createBotLocale_description = Lens.lens (\CreateBotLocale' {description} -> description) (\s@CreateBotLocale' {} a -> s {description = a} :: CreateBotLocale)++-- | The Amazon Polly voice ID that Amazon Lex uses for voice interaction+-- with the user.+createBotLocale_voiceSettings :: Lens.Lens' CreateBotLocale (Prelude.Maybe VoiceSettings)+createBotLocale_voiceSettings = Lens.lens (\CreateBotLocale' {voiceSettings} -> voiceSettings) (\s@CreateBotLocale' {} a -> s {voiceSettings = a} :: CreateBotLocale)++-- | The identifier of the bot to create the locale for.+createBotLocale_botId :: Lens.Lens' CreateBotLocale Prelude.Text+createBotLocale_botId = Lens.lens (\CreateBotLocale' {botId} -> botId) (\s@CreateBotLocale' {} a -> s {botId = a} :: CreateBotLocale)++-- | The version of the bot to create the locale for. This can only be the+-- draft version of the bot.+createBotLocale_botVersion :: Lens.Lens' CreateBotLocale Prelude.Text+createBotLocale_botVersion = Lens.lens (\CreateBotLocale' {botVersion} -> botVersion) (\s@CreateBotLocale' {} a -> s {botVersion = a} :: CreateBotLocale)++-- | The identifier of the language and locale that the bot will be used in.+-- The string must match one of the supported locales. All of the intents,+-- slot types, and slots used in the bot must have the same locale. For+-- more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+createBotLocale_localeId :: Lens.Lens' CreateBotLocale Prelude.Text+createBotLocale_localeId = Lens.lens (\CreateBotLocale' {localeId} -> localeId) (\s@CreateBotLocale' {} a -> s {localeId = a} :: CreateBotLocale)++-- | Determines the threshold where Amazon Lex will insert the+-- @AMAZON.FallbackIntent@, @AMAZON.KendraSearchIntent@, or both when+-- returning alternative intents. @AMAZON.FallbackIntent@ and+-- @AMAZON.KendraSearchIntent@ are only inserted if they are configured for+-- the bot.+--+-- For example, suppose a bot is configured with the confidence threshold+-- of 0.80 and the @AMAZON.FallbackIntent@. Amazon Lex returns three+-- alternative intents with the following confidence scores: IntentA+-- (0.70), IntentB (0.60), IntentC (0.50). The response from the+-- @RecognizeText@ operation would be:+--+-- -   AMAZON.FallbackIntent+--+-- -   IntentA+--+-- -   IntentB+--+-- -   IntentC+createBotLocale_nluIntentConfidenceThreshold :: Lens.Lens' CreateBotLocale Prelude.Double+createBotLocale_nluIntentConfidenceThreshold = Lens.lens (\CreateBotLocale' {nluIntentConfidenceThreshold} -> nluIntentConfidenceThreshold) (\s@CreateBotLocale' {} a -> s {nluIntentConfidenceThreshold = a} :: CreateBotLocale)++instance Core.AWSRequest CreateBotLocale where+  type+    AWSResponse CreateBotLocale =+      CreateBotLocaleResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateBotLocaleResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botLocaleStatus")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "localeName")+            Prelude.<*> (x Data..?> "nluIntentConfidenceThreshold")+            Prelude.<*> (x Data..?> "voiceSettings")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateBotLocale where+  hashWithSalt _salt CreateBotLocale' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` voiceSettings+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` nluIntentConfidenceThreshold++instance Prelude.NFData CreateBotLocale where+  rnf CreateBotLocale' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf voiceSettings+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf nluIntentConfidenceThreshold++instance Data.ToHeaders CreateBotLocale where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateBotLocale where+  toJSON CreateBotLocale' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("voiceSettings" Data..=) Prelude.<$> voiceSettings,+            Prelude.Just ("localeId" Data..= localeId),+            Prelude.Just+              ( "nluIntentConfidenceThreshold"+                  Data..= nluIntentConfidenceThreshold+              )+          ]+      )++instance Data.ToPath CreateBotLocale where+  toPath CreateBotLocale' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/"+      ]++instance Data.ToQuery CreateBotLocale where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateBotLocaleResponse' smart constructor.+data CreateBotLocaleResponse = CreateBotLocaleResponse'+  { -- | The specified bot identifier.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The status of the bot.+    --+    -- When the status is @Creating@ the bot locale is being configured. When+    -- the status is @Building@ Amazon Lex is building the bot for testing and+    -- use.+    --+    -- If the status of the bot is @ReadyExpressTesting@, you can test the bot+    -- using the exact utterances specified in the bots\' intents. When the bot+    -- is ready for full testing or to run, the status is @Built@.+    --+    -- If there was a problem with building the bot, the status is @Failed@. If+    -- the bot was saved but not built, the status is @NotBuilt@.+    botLocaleStatus :: Prelude.Maybe BotLocaleStatus,+    -- | The specified bot version.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | A timestamp specifying the date and time that the bot locale was+    -- created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The specified description of the bot locale.+    description :: Prelude.Maybe Prelude.Text,+    -- | The specified locale identifier.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The specified locale name.+    localeName :: Prelude.Maybe Prelude.Text,+    -- | The specified confidence threshold for inserting the+    -- @AMAZON.FallbackIntent@ and @AMAZON.KendraSearchIntent@ intents.+    nluIntentConfidenceThreshold :: Prelude.Maybe Prelude.Double,+    -- | The Amazon Polly voice ID that Amazon Lex uses for voice interaction+    -- with the user.+    voiceSettings :: Prelude.Maybe VoiceSettings,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBotLocaleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'createBotLocaleResponse_botId' - The specified bot identifier.+--+-- 'botLocaleStatus', 'createBotLocaleResponse_botLocaleStatus' - The status of the bot.+--+-- When the status is @Creating@ the bot locale is being configured. When+-- the status is @Building@ Amazon Lex is building the bot for testing and+-- use.+--+-- If the status of the bot is @ReadyExpressTesting@, you can test the bot+-- using the exact utterances specified in the bots\' intents. When the bot+-- is ready for full testing or to run, the status is @Built@.+--+-- If there was a problem with building the bot, the status is @Failed@. If+-- the bot was saved but not built, the status is @NotBuilt@.+--+-- 'botVersion', 'createBotLocaleResponse_botVersion' - The specified bot version.+--+-- 'creationDateTime', 'createBotLocaleResponse_creationDateTime' - A timestamp specifying the date and time that the bot locale was+-- created.+--+-- 'description', 'createBotLocaleResponse_description' - The specified description of the bot locale.+--+-- 'localeId', 'createBotLocaleResponse_localeId' - The specified locale identifier.+--+-- 'localeName', 'createBotLocaleResponse_localeName' - The specified locale name.+--+-- 'nluIntentConfidenceThreshold', 'createBotLocaleResponse_nluIntentConfidenceThreshold' - The specified confidence threshold for inserting the+-- @AMAZON.FallbackIntent@ and @AMAZON.KendraSearchIntent@ intents.+--+-- 'voiceSettings', 'createBotLocaleResponse_voiceSettings' - The Amazon Polly voice ID that Amazon Lex uses for voice interaction+-- with the user.+--+-- 'httpStatus', 'createBotLocaleResponse_httpStatus' - The response's http status code.+newCreateBotLocaleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateBotLocaleResponse+newCreateBotLocaleResponse pHttpStatus_ =+  CreateBotLocaleResponse'+    { botId = Prelude.Nothing,+      botLocaleStatus = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      localeId = Prelude.Nothing,+      localeName = Prelude.Nothing,+      nluIntentConfidenceThreshold = Prelude.Nothing,+      voiceSettings = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The specified bot identifier.+createBotLocaleResponse_botId :: Lens.Lens' CreateBotLocaleResponse (Prelude.Maybe Prelude.Text)+createBotLocaleResponse_botId = Lens.lens (\CreateBotLocaleResponse' {botId} -> botId) (\s@CreateBotLocaleResponse' {} a -> s {botId = a} :: CreateBotLocaleResponse)++-- | The status of the bot.+--+-- When the status is @Creating@ the bot locale is being configured. When+-- the status is @Building@ Amazon Lex is building the bot for testing and+-- use.+--+-- If the status of the bot is @ReadyExpressTesting@, you can test the bot+-- using the exact utterances specified in the bots\' intents. When the bot+-- is ready for full testing or to run, the status is @Built@.+--+-- If there was a problem with building the bot, the status is @Failed@. If+-- the bot was saved but not built, the status is @NotBuilt@.+createBotLocaleResponse_botLocaleStatus :: Lens.Lens' CreateBotLocaleResponse (Prelude.Maybe BotLocaleStatus)+createBotLocaleResponse_botLocaleStatus = Lens.lens (\CreateBotLocaleResponse' {botLocaleStatus} -> botLocaleStatus) (\s@CreateBotLocaleResponse' {} a -> s {botLocaleStatus = a} :: CreateBotLocaleResponse)++-- | The specified bot version.+createBotLocaleResponse_botVersion :: Lens.Lens' CreateBotLocaleResponse (Prelude.Maybe Prelude.Text)+createBotLocaleResponse_botVersion = Lens.lens (\CreateBotLocaleResponse' {botVersion} -> botVersion) (\s@CreateBotLocaleResponse' {} a -> s {botVersion = a} :: CreateBotLocaleResponse)++-- | A timestamp specifying the date and time that the bot locale was+-- created.+createBotLocaleResponse_creationDateTime :: Lens.Lens' CreateBotLocaleResponse (Prelude.Maybe Prelude.UTCTime)+createBotLocaleResponse_creationDateTime = Lens.lens (\CreateBotLocaleResponse' {creationDateTime} -> creationDateTime) (\s@CreateBotLocaleResponse' {} a -> s {creationDateTime = a} :: CreateBotLocaleResponse) Prelude.. Lens.mapping Data._Time++-- | The specified description of the bot locale.+createBotLocaleResponse_description :: Lens.Lens' CreateBotLocaleResponse (Prelude.Maybe Prelude.Text)+createBotLocaleResponse_description = Lens.lens (\CreateBotLocaleResponse' {description} -> description) (\s@CreateBotLocaleResponse' {} a -> s {description = a} :: CreateBotLocaleResponse)++-- | The specified locale identifier.+createBotLocaleResponse_localeId :: Lens.Lens' CreateBotLocaleResponse (Prelude.Maybe Prelude.Text)+createBotLocaleResponse_localeId = Lens.lens (\CreateBotLocaleResponse' {localeId} -> localeId) (\s@CreateBotLocaleResponse' {} a -> s {localeId = a} :: CreateBotLocaleResponse)++-- | The specified locale name.+createBotLocaleResponse_localeName :: Lens.Lens' CreateBotLocaleResponse (Prelude.Maybe Prelude.Text)+createBotLocaleResponse_localeName = Lens.lens (\CreateBotLocaleResponse' {localeName} -> localeName) (\s@CreateBotLocaleResponse' {} a -> s {localeName = a} :: CreateBotLocaleResponse)++-- | The specified confidence threshold for inserting the+-- @AMAZON.FallbackIntent@ and @AMAZON.KendraSearchIntent@ intents.+createBotLocaleResponse_nluIntentConfidenceThreshold :: Lens.Lens' CreateBotLocaleResponse (Prelude.Maybe Prelude.Double)+createBotLocaleResponse_nluIntentConfidenceThreshold = Lens.lens (\CreateBotLocaleResponse' {nluIntentConfidenceThreshold} -> nluIntentConfidenceThreshold) (\s@CreateBotLocaleResponse' {} a -> s {nluIntentConfidenceThreshold = a} :: CreateBotLocaleResponse)++-- | The Amazon Polly voice ID that Amazon Lex uses for voice interaction+-- with the user.+createBotLocaleResponse_voiceSettings :: Lens.Lens' CreateBotLocaleResponse (Prelude.Maybe VoiceSettings)+createBotLocaleResponse_voiceSettings = Lens.lens (\CreateBotLocaleResponse' {voiceSettings} -> voiceSettings) (\s@CreateBotLocaleResponse' {} a -> s {voiceSettings = a} :: CreateBotLocaleResponse)++-- | The response's http status code.+createBotLocaleResponse_httpStatus :: Lens.Lens' CreateBotLocaleResponse Prelude.Int+createBotLocaleResponse_httpStatus = Lens.lens (\CreateBotLocaleResponse' {httpStatus} -> httpStatus) (\s@CreateBotLocaleResponse' {} a -> s {httpStatus = a} :: CreateBotLocaleResponse)++instance Prelude.NFData CreateBotLocaleResponse where+  rnf CreateBotLocaleResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botLocaleStatus+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf localeName+      `Prelude.seq` Prelude.rnf nluIntentConfidenceThreshold+      `Prelude.seq` Prelude.rnf voiceSettings+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/CreateBotVersion.hs view
@@ -0,0 +1,288 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.CreateBotVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new version of the bot based on the @DRAFT@ version. If the+-- @DRAFT@ version of this resource hasn\'t changed since you created the+-- last version, Amazon Lex doesn\'t create a new version, it returns the+-- last created version.+--+-- When you create the first version of a bot, Amazon Lex sets the version+-- to 1. Subsequent versions increment by 1.+module Amazonka.LexV2Models.CreateBotVersion+  ( -- * Creating a Request+    CreateBotVersion (..),+    newCreateBotVersion,++    -- * Request Lenses+    createBotVersion_description,+    createBotVersion_botId,+    createBotVersion_botVersionLocaleSpecification,++    -- * Destructuring the Response+    CreateBotVersionResponse (..),+    newCreateBotVersionResponse,++    -- * Response Lenses+    createBotVersionResponse_botId,+    createBotVersionResponse_botStatus,+    createBotVersionResponse_botVersion,+    createBotVersionResponse_botVersionLocaleSpecification,+    createBotVersionResponse_creationDateTime,+    createBotVersionResponse_description,+    createBotVersionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateBotVersion' smart constructor.+data CreateBotVersion = CreateBotVersion'+  { -- | A description of the version. Use the description to help identify the+    -- version in lists.+    description :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the bot to create the version for.+    botId :: Prelude.Text,+    -- | Specifies the locales that Amazon Lex adds to this version. You can+    -- choose the @Draft@ version or any other previously published version for+    -- each locale. When you specify a source version, the locale data is+    -- copied from the source version to the new version.+    botVersionLocaleSpecification :: Prelude.HashMap Prelude.Text BotVersionLocaleDetails+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBotVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createBotVersion_description' - A description of the version. Use the description to help identify the+-- version in lists.+--+-- 'botId', 'createBotVersion_botId' - The identifier of the bot to create the version for.+--+-- 'botVersionLocaleSpecification', 'createBotVersion_botVersionLocaleSpecification' - Specifies the locales that Amazon Lex adds to this version. You can+-- choose the @Draft@ version or any other previously published version for+-- each locale. When you specify a source version, the locale data is+-- copied from the source version to the new version.+newCreateBotVersion ::+  -- | 'botId'+  Prelude.Text ->+  CreateBotVersion+newCreateBotVersion pBotId_ =+  CreateBotVersion'+    { description = Prelude.Nothing,+      botId = pBotId_,+      botVersionLocaleSpecification = Prelude.mempty+    }++-- | A description of the version. Use the description to help identify the+-- version in lists.+createBotVersion_description :: Lens.Lens' CreateBotVersion (Prelude.Maybe Prelude.Text)+createBotVersion_description = Lens.lens (\CreateBotVersion' {description} -> description) (\s@CreateBotVersion' {} a -> s {description = a} :: CreateBotVersion)++-- | The identifier of the bot to create the version for.+createBotVersion_botId :: Lens.Lens' CreateBotVersion Prelude.Text+createBotVersion_botId = Lens.lens (\CreateBotVersion' {botId} -> botId) (\s@CreateBotVersion' {} a -> s {botId = a} :: CreateBotVersion)++-- | Specifies the locales that Amazon Lex adds to this version. You can+-- choose the @Draft@ version or any other previously published version for+-- each locale. When you specify a source version, the locale data is+-- copied from the source version to the new version.+createBotVersion_botVersionLocaleSpecification :: Lens.Lens' CreateBotVersion (Prelude.HashMap Prelude.Text BotVersionLocaleDetails)+createBotVersion_botVersionLocaleSpecification = Lens.lens (\CreateBotVersion' {botVersionLocaleSpecification} -> botVersionLocaleSpecification) (\s@CreateBotVersion' {} a -> s {botVersionLocaleSpecification = a} :: CreateBotVersion) Prelude.. Lens.coerced++instance Core.AWSRequest CreateBotVersion where+  type+    AWSResponse CreateBotVersion =+      CreateBotVersionResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateBotVersionResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botStatus")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> ( x+                            Data..?> "botVersionLocaleSpecification"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateBotVersion where+  hashWithSalt _salt CreateBotVersion' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersionLocaleSpecification++instance Prelude.NFData CreateBotVersion where+  rnf CreateBotVersion' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersionLocaleSpecification++instance Data.ToHeaders CreateBotVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateBotVersion where+  toJSON CreateBotVersion' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            Prelude.Just+              ( "botVersionLocaleSpecification"+                  Data..= botVersionLocaleSpecification+              )+          ]+      )++instance Data.ToPath CreateBotVersion where+  toPath CreateBotVersion' {..} =+    Prelude.mconcat+      ["/bots/", Data.toBS botId, "/botversions/"]++instance Data.ToQuery CreateBotVersion where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateBotVersionResponse' smart constructor.+data CreateBotVersionResponse = CreateBotVersionResponse'+  { -- | The bot identifier specified in the request.+    botId :: Prelude.Maybe Prelude.Text,+    -- | When you send a request to create or update a bot, Amazon Lex sets the+    -- status response element to @Creating@. After Amazon Lex builds the bot,+    -- it sets status to @Available@. If Amazon Lex can\'t build the bot, it+    -- sets status to @Failed@.+    botStatus :: Prelude.Maybe BotStatus,+    -- | The version number assigned to the version.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The source versions used for each locale in the new version.+    botVersionLocaleSpecification :: Prelude.Maybe (Prelude.HashMap Prelude.Text BotVersionLocaleDetails),+    -- | A timestamp of the date and time that the version was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The description of the version specified in the request.+    description :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateBotVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'createBotVersionResponse_botId' - The bot identifier specified in the request.+--+-- 'botStatus', 'createBotVersionResponse_botStatus' - When you send a request to create or update a bot, Amazon Lex sets the+-- status response element to @Creating@. After Amazon Lex builds the bot,+-- it sets status to @Available@. If Amazon Lex can\'t build the bot, it+-- sets status to @Failed@.+--+-- 'botVersion', 'createBotVersionResponse_botVersion' - The version number assigned to the version.+--+-- 'botVersionLocaleSpecification', 'createBotVersionResponse_botVersionLocaleSpecification' - The source versions used for each locale in the new version.+--+-- 'creationDateTime', 'createBotVersionResponse_creationDateTime' - A timestamp of the date and time that the version was created.+--+-- 'description', 'createBotVersionResponse_description' - The description of the version specified in the request.+--+-- 'httpStatus', 'createBotVersionResponse_httpStatus' - The response's http status code.+newCreateBotVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateBotVersionResponse+newCreateBotVersionResponse pHttpStatus_ =+  CreateBotVersionResponse'+    { botId = Prelude.Nothing,+      botStatus = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      botVersionLocaleSpecification = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The bot identifier specified in the request.+createBotVersionResponse_botId :: Lens.Lens' CreateBotVersionResponse (Prelude.Maybe Prelude.Text)+createBotVersionResponse_botId = Lens.lens (\CreateBotVersionResponse' {botId} -> botId) (\s@CreateBotVersionResponse' {} a -> s {botId = a} :: CreateBotVersionResponse)++-- | When you send a request to create or update a bot, Amazon Lex sets the+-- status response element to @Creating@. After Amazon Lex builds the bot,+-- it sets status to @Available@. If Amazon Lex can\'t build the bot, it+-- sets status to @Failed@.+createBotVersionResponse_botStatus :: Lens.Lens' CreateBotVersionResponse (Prelude.Maybe BotStatus)+createBotVersionResponse_botStatus = Lens.lens (\CreateBotVersionResponse' {botStatus} -> botStatus) (\s@CreateBotVersionResponse' {} a -> s {botStatus = a} :: CreateBotVersionResponse)++-- | The version number assigned to the version.+createBotVersionResponse_botVersion :: Lens.Lens' CreateBotVersionResponse (Prelude.Maybe Prelude.Text)+createBotVersionResponse_botVersion = Lens.lens (\CreateBotVersionResponse' {botVersion} -> botVersion) (\s@CreateBotVersionResponse' {} a -> s {botVersion = a} :: CreateBotVersionResponse)++-- | The source versions used for each locale in the new version.+createBotVersionResponse_botVersionLocaleSpecification :: Lens.Lens' CreateBotVersionResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text BotVersionLocaleDetails))+createBotVersionResponse_botVersionLocaleSpecification = Lens.lens (\CreateBotVersionResponse' {botVersionLocaleSpecification} -> botVersionLocaleSpecification) (\s@CreateBotVersionResponse' {} a -> s {botVersionLocaleSpecification = a} :: CreateBotVersionResponse) Prelude.. Lens.mapping Lens.coerced++-- | A timestamp of the date and time that the version was created.+createBotVersionResponse_creationDateTime :: Lens.Lens' CreateBotVersionResponse (Prelude.Maybe Prelude.UTCTime)+createBotVersionResponse_creationDateTime = Lens.lens (\CreateBotVersionResponse' {creationDateTime} -> creationDateTime) (\s@CreateBotVersionResponse' {} a -> s {creationDateTime = a} :: CreateBotVersionResponse) Prelude.. Lens.mapping Data._Time++-- | The description of the version specified in the request.+createBotVersionResponse_description :: Lens.Lens' CreateBotVersionResponse (Prelude.Maybe Prelude.Text)+createBotVersionResponse_description = Lens.lens (\CreateBotVersionResponse' {description} -> description) (\s@CreateBotVersionResponse' {} a -> s {description = a} :: CreateBotVersionResponse)++-- | The response's http status code.+createBotVersionResponse_httpStatus :: Lens.Lens' CreateBotVersionResponse Prelude.Int+createBotVersionResponse_httpStatus = Lens.lens (\CreateBotVersionResponse' {httpStatus} -> httpStatus) (\s@CreateBotVersionResponse' {} a -> s {httpStatus = a} :: CreateBotVersionResponse)++instance Prelude.NFData CreateBotVersionResponse where+  rnf CreateBotVersionResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botStatus+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf botVersionLocaleSpecification+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/CreateExport.hs view
@@ -0,0 +1,280 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.CreateExport+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a zip archive containing the contents of a bot or a bot locale.+-- The archive contains a directory structure that contains JSON files that+-- define the bot.+--+-- You can create an archive that contains the complete definition of a+-- bot, or you can specify that the archive contain only the definition of+-- a single bot locale.+--+-- For more information about exporting bots, and about the structure of+-- the export archive, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/importing-exporting.html Importing and exporting bots>+module Amazonka.LexV2Models.CreateExport+  ( -- * Creating a Request+    CreateExport (..),+    newCreateExport,++    -- * Request Lenses+    createExport_filePassword,+    createExport_resourceSpecification,+    createExport_fileFormat,++    -- * Destructuring the Response+    CreateExportResponse (..),+    newCreateExportResponse,++    -- * Response Lenses+    createExportResponse_creationDateTime,+    createExportResponse_exportId,+    createExportResponse_exportStatus,+    createExportResponse_fileFormat,+    createExportResponse_resourceSpecification,+    createExportResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateExport' smart constructor.+data CreateExport = CreateExport'+  { -- | An password to use to encrypt the exported archive. Using a password is+    -- optional, but you should encrypt the archive to protect the data in+    -- transit between Amazon Lex and your local computer.+    filePassword :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | Specifies the type of resource to export, either a bot or a bot locale.+    -- You can only specify one type of resource to export.+    resourceSpecification :: ExportResourceSpecification,+    -- | The file format of the bot or bot locale definition files.+    fileFormat :: ImportExportFileFormat+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateExport' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filePassword', 'createExport_filePassword' - An password to use to encrypt the exported archive. Using a password is+-- optional, but you should encrypt the archive to protect the data in+-- transit between Amazon Lex and your local computer.+--+-- 'resourceSpecification', 'createExport_resourceSpecification' - Specifies the type of resource to export, either a bot or a bot locale.+-- You can only specify one type of resource to export.+--+-- 'fileFormat', 'createExport_fileFormat' - The file format of the bot or bot locale definition files.+newCreateExport ::+  -- | 'resourceSpecification'+  ExportResourceSpecification ->+  -- | 'fileFormat'+  ImportExportFileFormat ->+  CreateExport+newCreateExport pResourceSpecification_ pFileFormat_ =+  CreateExport'+    { filePassword = Prelude.Nothing,+      resourceSpecification = pResourceSpecification_,+      fileFormat = pFileFormat_+    }++-- | An password to use to encrypt the exported archive. Using a password is+-- optional, but you should encrypt the archive to protect the data in+-- transit between Amazon Lex and your local computer.+createExport_filePassword :: Lens.Lens' CreateExport (Prelude.Maybe Prelude.Text)+createExport_filePassword = Lens.lens (\CreateExport' {filePassword} -> filePassword) (\s@CreateExport' {} a -> s {filePassword = a} :: CreateExport) Prelude.. Lens.mapping Data._Sensitive++-- | Specifies the type of resource to export, either a bot or a bot locale.+-- You can only specify one type of resource to export.+createExport_resourceSpecification :: Lens.Lens' CreateExport ExportResourceSpecification+createExport_resourceSpecification = Lens.lens (\CreateExport' {resourceSpecification} -> resourceSpecification) (\s@CreateExport' {} a -> s {resourceSpecification = a} :: CreateExport)++-- | The file format of the bot or bot locale definition files.+createExport_fileFormat :: Lens.Lens' CreateExport ImportExportFileFormat+createExport_fileFormat = Lens.lens (\CreateExport' {fileFormat} -> fileFormat) (\s@CreateExport' {} a -> s {fileFormat = a} :: CreateExport)++instance Core.AWSRequest CreateExport where+  type AWSResponse CreateExport = CreateExportResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateExportResponse'+            Prelude.<$> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "exportId")+            Prelude.<*> (x Data..?> "exportStatus")+            Prelude.<*> (x Data..?> "fileFormat")+            Prelude.<*> (x Data..?> "resourceSpecification")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateExport where+  hashWithSalt _salt CreateExport' {..} =+    _salt+      `Prelude.hashWithSalt` filePassword+      `Prelude.hashWithSalt` resourceSpecification+      `Prelude.hashWithSalt` fileFormat++instance Prelude.NFData CreateExport where+  rnf CreateExport' {..} =+    Prelude.rnf filePassword+      `Prelude.seq` Prelude.rnf resourceSpecification+      `Prelude.seq` Prelude.rnf fileFormat++instance Data.ToHeaders CreateExport where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateExport where+  toJSON CreateExport' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filePassword" Data..=) Prelude.<$> filePassword,+            Prelude.Just+              ( "resourceSpecification"+                  Data..= resourceSpecification+              ),+            Prelude.Just ("fileFormat" Data..= fileFormat)+          ]+      )++instance Data.ToPath CreateExport where+  toPath = Prelude.const "/exports/"++instance Data.ToQuery CreateExport where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateExportResponse' smart constructor.+data CreateExportResponse = CreateExportResponse'+  { -- | The date and time that the request to export a bot was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | An identifier for a specific request to create an export.+    exportId :: Prelude.Maybe Prelude.Text,+    -- | The status of the export. When the status is @Completed@, you can use+    -- the+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/API_DescribeExport.html DescribeExport>+    -- operation to get the pre-signed S3 URL link to your exported bot or bot+    -- locale.+    exportStatus :: Prelude.Maybe ExportStatus,+    -- | The file format used for the bot or bot locale definition files.+    fileFormat :: Prelude.Maybe ImportExportFileFormat,+    -- | A description of the type of resource that was exported, either a bot or+    -- a bot locale.+    resourceSpecification :: Prelude.Maybe ExportResourceSpecification,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateExportResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'createExportResponse_creationDateTime' - The date and time that the request to export a bot was created.+--+-- 'exportId', 'createExportResponse_exportId' - An identifier for a specific request to create an export.+--+-- 'exportStatus', 'createExportResponse_exportStatus' - The status of the export. When the status is @Completed@, you can use+-- the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_DescribeExport.html DescribeExport>+-- operation to get the pre-signed S3 URL link to your exported bot or bot+-- locale.+--+-- 'fileFormat', 'createExportResponse_fileFormat' - The file format used for the bot or bot locale definition files.+--+-- 'resourceSpecification', 'createExportResponse_resourceSpecification' - A description of the type of resource that was exported, either a bot or+-- a bot locale.+--+-- 'httpStatus', 'createExportResponse_httpStatus' - The response's http status code.+newCreateExportResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateExportResponse+newCreateExportResponse pHttpStatus_ =+  CreateExportResponse'+    { creationDateTime =+        Prelude.Nothing,+      exportId = Prelude.Nothing,+      exportStatus = Prelude.Nothing,+      fileFormat = Prelude.Nothing,+      resourceSpecification = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The date and time that the request to export a bot was created.+createExportResponse_creationDateTime :: Lens.Lens' CreateExportResponse (Prelude.Maybe Prelude.UTCTime)+createExportResponse_creationDateTime = Lens.lens (\CreateExportResponse' {creationDateTime} -> creationDateTime) (\s@CreateExportResponse' {} a -> s {creationDateTime = a} :: CreateExportResponse) Prelude.. Lens.mapping Data._Time++-- | An identifier for a specific request to create an export.+createExportResponse_exportId :: Lens.Lens' CreateExportResponse (Prelude.Maybe Prelude.Text)+createExportResponse_exportId = Lens.lens (\CreateExportResponse' {exportId} -> exportId) (\s@CreateExportResponse' {} a -> s {exportId = a} :: CreateExportResponse)++-- | The status of the export. When the status is @Completed@, you can use+-- the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_DescribeExport.html DescribeExport>+-- operation to get the pre-signed S3 URL link to your exported bot or bot+-- locale.+createExportResponse_exportStatus :: Lens.Lens' CreateExportResponse (Prelude.Maybe ExportStatus)+createExportResponse_exportStatus = Lens.lens (\CreateExportResponse' {exportStatus} -> exportStatus) (\s@CreateExportResponse' {} a -> s {exportStatus = a} :: CreateExportResponse)++-- | The file format used for the bot or bot locale definition files.+createExportResponse_fileFormat :: Lens.Lens' CreateExportResponse (Prelude.Maybe ImportExportFileFormat)+createExportResponse_fileFormat = Lens.lens (\CreateExportResponse' {fileFormat} -> fileFormat) (\s@CreateExportResponse' {} a -> s {fileFormat = a} :: CreateExportResponse)++-- | A description of the type of resource that was exported, either a bot or+-- a bot locale.+createExportResponse_resourceSpecification :: Lens.Lens' CreateExportResponse (Prelude.Maybe ExportResourceSpecification)+createExportResponse_resourceSpecification = Lens.lens (\CreateExportResponse' {resourceSpecification} -> resourceSpecification) (\s@CreateExportResponse' {} a -> s {resourceSpecification = a} :: CreateExportResponse)++-- | The response's http status code.+createExportResponse_httpStatus :: Lens.Lens' CreateExportResponse Prelude.Int+createExportResponse_httpStatus = Lens.lens (\CreateExportResponse' {httpStatus} -> httpStatus) (\s@CreateExportResponse' {} a -> s {httpStatus = a} :: CreateExportResponse)++instance Prelude.NFData CreateExportResponse where+  rnf CreateExportResponse' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf exportId+      `Prelude.seq` Prelude.rnf exportStatus+      `Prelude.seq` Prelude.rnf fileFormat+      `Prelude.seq` Prelude.rnf resourceSpecification+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/CreateIntent.hs view
@@ -0,0 +1,778 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.CreateIntent+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an intent.+--+-- To define the interaction between the user and your bot, you define one+-- or more intents. For example, for a pizza ordering bot you would create+-- an @OrderPizza@ intent.+--+-- When you create an intent, you must provide a name. You can optionally+-- provide the following:+--+-- -   Sample utterances. For example, \"I want to order a pizza\" and+--     \"Can I order a pizza.\" You can\'t provide utterances for built-in+--     intents.+--+-- -   Information to be gathered. You specify slots for the information+--     that you bot requests from the user. You can specify standard slot+--     types, such as date and time, or custom slot types for your+--     application.+--+-- -   How the intent is fulfilled. You can provide a Lambda function or+--     configure the intent to return the intent information to your client+--     application. If you use a Lambda function, Amazon Lex invokes the+--     function when all of the intent information is available.+--+-- -   A confirmation prompt to send to the user to confirm an intent. For+--     example, \"Shall I order your pizza?\"+--+-- -   A conclusion statement to send to the user after the intent is+--     fulfilled. For example, \"I ordered your pizza.\"+--+-- -   A follow-up prompt that asks the user for additional activity. For+--     example, \"Do you want a drink with your pizza?\"+module Amazonka.LexV2Models.CreateIntent+  ( -- * Creating a Request+    CreateIntent (..),+    newCreateIntent,++    -- * Request Lenses+    createIntent_description,+    createIntent_dialogCodeHook,+    createIntent_fulfillmentCodeHook,+    createIntent_initialResponseSetting,+    createIntent_inputContexts,+    createIntent_intentClosingSetting,+    createIntent_intentConfirmationSetting,+    createIntent_kendraConfiguration,+    createIntent_outputContexts,+    createIntent_parentIntentSignature,+    createIntent_sampleUtterances,+    createIntent_intentName,+    createIntent_botId,+    createIntent_botVersion,+    createIntent_localeId,++    -- * Destructuring the Response+    CreateIntentResponse (..),+    newCreateIntentResponse,++    -- * Response Lenses+    createIntentResponse_botId,+    createIntentResponse_botVersion,+    createIntentResponse_creationDateTime,+    createIntentResponse_description,+    createIntentResponse_dialogCodeHook,+    createIntentResponse_fulfillmentCodeHook,+    createIntentResponse_initialResponseSetting,+    createIntentResponse_inputContexts,+    createIntentResponse_intentClosingSetting,+    createIntentResponse_intentConfirmationSetting,+    createIntentResponse_intentId,+    createIntentResponse_intentName,+    createIntentResponse_kendraConfiguration,+    createIntentResponse_localeId,+    createIntentResponse_outputContexts,+    createIntentResponse_parentIntentSignature,+    createIntentResponse_sampleUtterances,+    createIntentResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateIntent' smart constructor.+data CreateIntent = CreateIntent'+  { -- | A description of the intent. Use the description to help identify the+    -- intent in lists.+    description :: Prelude.Maybe Prelude.Text,+    -- | Specifies that Amazon Lex invokes the alias Lambda function for each+    -- user input. You can invoke this Lambda function to personalize user+    -- interaction.+    --+    -- For example, suppose that your bot determines that the user\'s name is+    -- John. You Lambda function might retrieve John\'s information from a+    -- backend database and prepopulate some of the values. For example, if you+    -- find that John is gluten intolerant, you might set the corresponding+    -- intent slot, @glutenIntolerant@ to @true@. You might find John\'s phone+    -- number and set the corresponding session attribute.+    dialogCodeHook :: Prelude.Maybe DialogCodeHookSettings,+    -- | Specifies that Amazon Lex invokes the alias Lambda function when the+    -- intent is ready for fulfillment. You can invoke this function to+    -- complete the bot\'s transaction with the user.+    --+    -- For example, in a pizza ordering bot, the Lambda function can look up+    -- the closest pizza restaurant to the customer\'s location and then place+    -- an order on the customer\'s behalf.+    fulfillmentCodeHook :: Prelude.Maybe FulfillmentCodeHookSettings,+    -- | Configuration settings for the response that is sent to the user at the+    -- beginning of a conversation, before eliciting slot values.+    initialResponseSetting :: Prelude.Maybe InitialResponseSetting,+    -- | A list of contexts that must be active for this intent to be considered+    -- by Amazon Lex.+    --+    -- When an intent has an input context list, Amazon Lex only considers+    -- using the intent in an interaction with the user when the specified+    -- contexts are included in the active context list for the session. If the+    -- contexts are not active, then Amazon Lex will not use the intent.+    --+    -- A context can be automatically activated using the @outputContexts@+    -- property or it can be set at runtime.+    --+    -- For example, if there are two intents with different input contexts that+    -- respond to the same utterances, only the intent with the active context+    -- will respond.+    --+    -- An intent may have up to 5 input contexts. If an intent has multiple+    -- input contexts, all of the contexts must be active to consider the+    -- intent.+    inputContexts :: Prelude.Maybe [InputContext],+    -- | Sets the response that Amazon Lex sends to the user when the intent is+    -- closed.+    intentClosingSetting :: Prelude.Maybe IntentClosingSetting,+    -- | Provides prompts that Amazon Lex sends to the user to confirm the+    -- completion of an intent. If the user answers \"no,\" the settings+    -- contain a statement that is sent to the user to end the intent.+    intentConfirmationSetting :: Prelude.Maybe IntentConfirmationSetting,+    -- | Configuration information required to use the+    -- @AMAZON.KendraSearchIntent@ intent to connect to an Amazon Kendra index.+    -- The @AMAZON.KendraSearchIntent@ intent is called when Amazon Lex can\'t+    -- determine another intent to invoke.+    kendraConfiguration :: Prelude.Maybe KendraConfiguration,+    -- | A lists of contexts that the intent activates when it is fulfilled.+    --+    -- You can use an output context to indicate the intents that Amazon Lex+    -- should consider for the next turn of the conversation with a customer.+    --+    -- When you use the @outputContextsList@ property, all of the contexts+    -- specified in the list are activated when the intent is fulfilled. You+    -- can set up to 10 output contexts. You can also set the number of+    -- conversation turns that the context should be active, or the length of+    -- time that the context should be active.+    outputContexts :: Prelude.Maybe [OutputContext],+    -- | A unique identifier for the built-in intent to base this intent on.+    parentIntentSignature :: Prelude.Maybe Prelude.Text,+    -- | An array of strings that a user might say to signal the intent. For+    -- example, \"I want a pizza\", or \"I want a {PizzaSize} pizza\".+    --+    -- In an utterance, slot names are enclosed in curly braces (\"{\", \"}\")+    -- to indicate where they should be displayed in the utterance shown to the+    -- user..+    sampleUtterances :: Prelude.Maybe [SampleUtterance],+    -- | The name of the intent. Intent names must be unique in the locale that+    -- contains the intent and cannot match the name of any built-in intent.+    intentName :: Prelude.Text,+    -- | The identifier of the bot associated with this intent.+    botId :: Prelude.Text,+    -- | The identifier of the version of the bot associated with this intent.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale where this intent is used. All+    -- of the bots, slot types, and slots used by the intent must have the same+    -- locale. For more information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateIntent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createIntent_description' - A description of the intent. Use the description to help identify the+-- intent in lists.+--+-- 'dialogCodeHook', 'createIntent_dialogCodeHook' - Specifies that Amazon Lex invokes the alias Lambda function for each+-- user input. You can invoke this Lambda function to personalize user+-- interaction.+--+-- For example, suppose that your bot determines that the user\'s name is+-- John. You Lambda function might retrieve John\'s information from a+-- backend database and prepopulate some of the values. For example, if you+-- find that John is gluten intolerant, you might set the corresponding+-- intent slot, @glutenIntolerant@ to @true@. You might find John\'s phone+-- number and set the corresponding session attribute.+--+-- 'fulfillmentCodeHook', 'createIntent_fulfillmentCodeHook' - Specifies that Amazon Lex invokes the alias Lambda function when the+-- intent is ready for fulfillment. You can invoke this function to+-- complete the bot\'s transaction with the user.+--+-- For example, in a pizza ordering bot, the Lambda function can look up+-- the closest pizza restaurant to the customer\'s location and then place+-- an order on the customer\'s behalf.+--+-- 'initialResponseSetting', 'createIntent_initialResponseSetting' - Configuration settings for the response that is sent to the user at the+-- beginning of a conversation, before eliciting slot values.+--+-- 'inputContexts', 'createIntent_inputContexts' - A list of contexts that must be active for this intent to be considered+-- by Amazon Lex.+--+-- When an intent has an input context list, Amazon Lex only considers+-- using the intent in an interaction with the user when the specified+-- contexts are included in the active context list for the session. If the+-- contexts are not active, then Amazon Lex will not use the intent.+--+-- A context can be automatically activated using the @outputContexts@+-- property or it can be set at runtime.+--+-- For example, if there are two intents with different input contexts that+-- respond to the same utterances, only the intent with the active context+-- will respond.+--+-- An intent may have up to 5 input contexts. If an intent has multiple+-- input contexts, all of the contexts must be active to consider the+-- intent.+--+-- 'intentClosingSetting', 'createIntent_intentClosingSetting' - Sets the response that Amazon Lex sends to the user when the intent is+-- closed.+--+-- 'intentConfirmationSetting', 'createIntent_intentConfirmationSetting' - Provides prompts that Amazon Lex sends to the user to confirm the+-- completion of an intent. If the user answers \"no,\" the settings+-- contain a statement that is sent to the user to end the intent.+--+-- 'kendraConfiguration', 'createIntent_kendraConfiguration' - Configuration information required to use the+-- @AMAZON.KendraSearchIntent@ intent to connect to an Amazon Kendra index.+-- The @AMAZON.KendraSearchIntent@ intent is called when Amazon Lex can\'t+-- determine another intent to invoke.+--+-- 'outputContexts', 'createIntent_outputContexts' - A lists of contexts that the intent activates when it is fulfilled.+--+-- You can use an output context to indicate the intents that Amazon Lex+-- should consider for the next turn of the conversation with a customer.+--+-- When you use the @outputContextsList@ property, all of the contexts+-- specified in the list are activated when the intent is fulfilled. You+-- can set up to 10 output contexts. You can also set the number of+-- conversation turns that the context should be active, or the length of+-- time that the context should be active.+--+-- 'parentIntentSignature', 'createIntent_parentIntentSignature' - A unique identifier for the built-in intent to base this intent on.+--+-- 'sampleUtterances', 'createIntent_sampleUtterances' - An array of strings that a user might say to signal the intent. For+-- example, \"I want a pizza\", or \"I want a {PizzaSize} pizza\".+--+-- In an utterance, slot names are enclosed in curly braces (\"{\", \"}\")+-- to indicate where they should be displayed in the utterance shown to the+-- user..+--+-- 'intentName', 'createIntent_intentName' - The name of the intent. Intent names must be unique in the locale that+-- contains the intent and cannot match the name of any built-in intent.+--+-- 'botId', 'createIntent_botId' - The identifier of the bot associated with this intent.+--+-- 'botVersion', 'createIntent_botVersion' - The identifier of the version of the bot associated with this intent.+--+-- 'localeId', 'createIntent_localeId' - The identifier of the language and locale where this intent is used. All+-- of the bots, slot types, and slots used by the intent must have the same+-- locale. For more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+newCreateIntent ::+  -- | 'intentName'+  Prelude.Text ->+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  CreateIntent+newCreateIntent+  pIntentName_+  pBotId_+  pBotVersion_+  pLocaleId_ =+    CreateIntent'+      { description = Prelude.Nothing,+        dialogCodeHook = Prelude.Nothing,+        fulfillmentCodeHook = Prelude.Nothing,+        initialResponseSetting = Prelude.Nothing,+        inputContexts = Prelude.Nothing,+        intentClosingSetting = Prelude.Nothing,+        intentConfirmationSetting = Prelude.Nothing,+        kendraConfiguration = Prelude.Nothing,+        outputContexts = Prelude.Nothing,+        parentIntentSignature = Prelude.Nothing,+        sampleUtterances = Prelude.Nothing,+        intentName = pIntentName_,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_+      }++-- | A description of the intent. Use the description to help identify the+-- intent in lists.+createIntent_description :: Lens.Lens' CreateIntent (Prelude.Maybe Prelude.Text)+createIntent_description = Lens.lens (\CreateIntent' {description} -> description) (\s@CreateIntent' {} a -> s {description = a} :: CreateIntent)++-- | Specifies that Amazon Lex invokes the alias Lambda function for each+-- user input. You can invoke this Lambda function to personalize user+-- interaction.+--+-- For example, suppose that your bot determines that the user\'s name is+-- John. You Lambda function might retrieve John\'s information from a+-- backend database and prepopulate some of the values. For example, if you+-- find that John is gluten intolerant, you might set the corresponding+-- intent slot, @glutenIntolerant@ to @true@. You might find John\'s phone+-- number and set the corresponding session attribute.+createIntent_dialogCodeHook :: Lens.Lens' CreateIntent (Prelude.Maybe DialogCodeHookSettings)+createIntent_dialogCodeHook = Lens.lens (\CreateIntent' {dialogCodeHook} -> dialogCodeHook) (\s@CreateIntent' {} a -> s {dialogCodeHook = a} :: CreateIntent)++-- | Specifies that Amazon Lex invokes the alias Lambda function when the+-- intent is ready for fulfillment. You can invoke this function to+-- complete the bot\'s transaction with the user.+--+-- For example, in a pizza ordering bot, the Lambda function can look up+-- the closest pizza restaurant to the customer\'s location and then place+-- an order on the customer\'s behalf.+createIntent_fulfillmentCodeHook :: Lens.Lens' CreateIntent (Prelude.Maybe FulfillmentCodeHookSettings)+createIntent_fulfillmentCodeHook = Lens.lens (\CreateIntent' {fulfillmentCodeHook} -> fulfillmentCodeHook) (\s@CreateIntent' {} a -> s {fulfillmentCodeHook = a} :: CreateIntent)++-- | Configuration settings for the response that is sent to the user at the+-- beginning of a conversation, before eliciting slot values.+createIntent_initialResponseSetting :: Lens.Lens' CreateIntent (Prelude.Maybe InitialResponseSetting)+createIntent_initialResponseSetting = Lens.lens (\CreateIntent' {initialResponseSetting} -> initialResponseSetting) (\s@CreateIntent' {} a -> s {initialResponseSetting = a} :: CreateIntent)++-- | A list of contexts that must be active for this intent to be considered+-- by Amazon Lex.+--+-- When an intent has an input context list, Amazon Lex only considers+-- using the intent in an interaction with the user when the specified+-- contexts are included in the active context list for the session. If the+-- contexts are not active, then Amazon Lex will not use the intent.+--+-- A context can be automatically activated using the @outputContexts@+-- property or it can be set at runtime.+--+-- For example, if there are two intents with different input contexts that+-- respond to the same utterances, only the intent with the active context+-- will respond.+--+-- An intent may have up to 5 input contexts. If an intent has multiple+-- input contexts, all of the contexts must be active to consider the+-- intent.+createIntent_inputContexts :: Lens.Lens' CreateIntent (Prelude.Maybe [InputContext])+createIntent_inputContexts = Lens.lens (\CreateIntent' {inputContexts} -> inputContexts) (\s@CreateIntent' {} a -> s {inputContexts = a} :: CreateIntent) Prelude.. Lens.mapping Lens.coerced++-- | Sets the response that Amazon Lex sends to the user when the intent is+-- closed.+createIntent_intentClosingSetting :: Lens.Lens' CreateIntent (Prelude.Maybe IntentClosingSetting)+createIntent_intentClosingSetting = Lens.lens (\CreateIntent' {intentClosingSetting} -> intentClosingSetting) (\s@CreateIntent' {} a -> s {intentClosingSetting = a} :: CreateIntent)++-- | Provides prompts that Amazon Lex sends to the user to confirm the+-- completion of an intent. If the user answers \"no,\" the settings+-- contain a statement that is sent to the user to end the intent.+createIntent_intentConfirmationSetting :: Lens.Lens' CreateIntent (Prelude.Maybe IntentConfirmationSetting)+createIntent_intentConfirmationSetting = Lens.lens (\CreateIntent' {intentConfirmationSetting} -> intentConfirmationSetting) (\s@CreateIntent' {} a -> s {intentConfirmationSetting = a} :: CreateIntent)++-- | Configuration information required to use the+-- @AMAZON.KendraSearchIntent@ intent to connect to an Amazon Kendra index.+-- The @AMAZON.KendraSearchIntent@ intent is called when Amazon Lex can\'t+-- determine another intent to invoke.+createIntent_kendraConfiguration :: Lens.Lens' CreateIntent (Prelude.Maybe KendraConfiguration)+createIntent_kendraConfiguration = Lens.lens (\CreateIntent' {kendraConfiguration} -> kendraConfiguration) (\s@CreateIntent' {} a -> s {kendraConfiguration = a} :: CreateIntent)++-- | A lists of contexts that the intent activates when it is fulfilled.+--+-- You can use an output context to indicate the intents that Amazon Lex+-- should consider for the next turn of the conversation with a customer.+--+-- When you use the @outputContextsList@ property, all of the contexts+-- specified in the list are activated when the intent is fulfilled. You+-- can set up to 10 output contexts. You can also set the number of+-- conversation turns that the context should be active, or the length of+-- time that the context should be active.+createIntent_outputContexts :: Lens.Lens' CreateIntent (Prelude.Maybe [OutputContext])+createIntent_outputContexts = Lens.lens (\CreateIntent' {outputContexts} -> outputContexts) (\s@CreateIntent' {} a -> s {outputContexts = a} :: CreateIntent) Prelude.. Lens.mapping Lens.coerced++-- | A unique identifier for the built-in intent to base this intent on.+createIntent_parentIntentSignature :: Lens.Lens' CreateIntent (Prelude.Maybe Prelude.Text)+createIntent_parentIntentSignature = Lens.lens (\CreateIntent' {parentIntentSignature} -> parentIntentSignature) (\s@CreateIntent' {} a -> s {parentIntentSignature = a} :: CreateIntent)++-- | An array of strings that a user might say to signal the intent. For+-- example, \"I want a pizza\", or \"I want a {PizzaSize} pizza\".+--+-- In an utterance, slot names are enclosed in curly braces (\"{\", \"}\")+-- to indicate where they should be displayed in the utterance shown to the+-- user..+createIntent_sampleUtterances :: Lens.Lens' CreateIntent (Prelude.Maybe [SampleUtterance])+createIntent_sampleUtterances = Lens.lens (\CreateIntent' {sampleUtterances} -> sampleUtterances) (\s@CreateIntent' {} a -> s {sampleUtterances = a} :: CreateIntent) Prelude.. Lens.mapping Lens.coerced++-- | The name of the intent. Intent names must be unique in the locale that+-- contains the intent and cannot match the name of any built-in intent.+createIntent_intentName :: Lens.Lens' CreateIntent Prelude.Text+createIntent_intentName = Lens.lens (\CreateIntent' {intentName} -> intentName) (\s@CreateIntent' {} a -> s {intentName = a} :: CreateIntent)++-- | The identifier of the bot associated with this intent.+createIntent_botId :: Lens.Lens' CreateIntent Prelude.Text+createIntent_botId = Lens.lens (\CreateIntent' {botId} -> botId) (\s@CreateIntent' {} a -> s {botId = a} :: CreateIntent)++-- | The identifier of the version of the bot associated with this intent.+createIntent_botVersion :: Lens.Lens' CreateIntent Prelude.Text+createIntent_botVersion = Lens.lens (\CreateIntent' {botVersion} -> botVersion) (\s@CreateIntent' {} a -> s {botVersion = a} :: CreateIntent)++-- | The identifier of the language and locale where this intent is used. All+-- of the bots, slot types, and slots used by the intent must have the same+-- locale. For more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+createIntent_localeId :: Lens.Lens' CreateIntent Prelude.Text+createIntent_localeId = Lens.lens (\CreateIntent' {localeId} -> localeId) (\s@CreateIntent' {} a -> s {localeId = a} :: CreateIntent)++instance Core.AWSRequest CreateIntent where+  type AWSResponse CreateIntent = CreateIntentResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateIntentResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "dialogCodeHook")+            Prelude.<*> (x Data..?> "fulfillmentCodeHook")+            Prelude.<*> (x Data..?> "initialResponseSetting")+            Prelude.<*> (x Data..?> "inputContexts" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "intentClosingSetting")+            Prelude.<*> (x Data..?> "intentConfirmationSetting")+            Prelude.<*> (x Data..?> "intentId")+            Prelude.<*> (x Data..?> "intentName")+            Prelude.<*> (x Data..?> "kendraConfiguration")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "outputContexts" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "parentIntentSignature")+            Prelude.<*> ( x+                            Data..?> "sampleUtterances"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateIntent where+  hashWithSalt _salt CreateIntent' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` dialogCodeHook+      `Prelude.hashWithSalt` fulfillmentCodeHook+      `Prelude.hashWithSalt` initialResponseSetting+      `Prelude.hashWithSalt` inputContexts+      `Prelude.hashWithSalt` intentClosingSetting+      `Prelude.hashWithSalt` intentConfirmationSetting+      `Prelude.hashWithSalt` kendraConfiguration+      `Prelude.hashWithSalt` outputContexts+      `Prelude.hashWithSalt` parentIntentSignature+      `Prelude.hashWithSalt` sampleUtterances+      `Prelude.hashWithSalt` intentName+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData CreateIntent where+  rnf CreateIntent' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf dialogCodeHook+      `Prelude.seq` Prelude.rnf fulfillmentCodeHook+      `Prelude.seq` Prelude.rnf initialResponseSetting+      `Prelude.seq` Prelude.rnf inputContexts+      `Prelude.seq` Prelude.rnf intentClosingSetting+      `Prelude.seq` Prelude.rnf intentConfirmationSetting+      `Prelude.seq` Prelude.rnf kendraConfiguration+      `Prelude.seq` Prelude.rnf outputContexts+      `Prelude.seq` Prelude.rnf parentIntentSignature+      `Prelude.seq` Prelude.rnf sampleUtterances+      `Prelude.seq` Prelude.rnf intentName+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders CreateIntent where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateIntent where+  toJSON CreateIntent' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("dialogCodeHook" Data..=)+              Prelude.<$> dialogCodeHook,+            ("fulfillmentCodeHook" Data..=)+              Prelude.<$> fulfillmentCodeHook,+            ("initialResponseSetting" Data..=)+              Prelude.<$> initialResponseSetting,+            ("inputContexts" Data..=) Prelude.<$> inputContexts,+            ("intentClosingSetting" Data..=)+              Prelude.<$> intentClosingSetting,+            ("intentConfirmationSetting" Data..=)+              Prelude.<$> intentConfirmationSetting,+            ("kendraConfiguration" Data..=)+              Prelude.<$> kendraConfiguration,+            ("outputContexts" Data..=)+              Prelude.<$> outputContexts,+            ("parentIntentSignature" Data..=)+              Prelude.<$> parentIntentSignature,+            ("sampleUtterances" Data..=)+              Prelude.<$> sampleUtterances,+            Prelude.Just ("intentName" Data..= intentName)+          ]+      )++instance Data.ToPath CreateIntent where+  toPath CreateIntent' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/intents/"+      ]++instance Data.ToQuery CreateIntent where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateIntentResponse' smart constructor.+data CreateIntentResponse = CreateIntentResponse'+  { -- | The identifier of the bot associated with the intent.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the version of the bot associated with the intent.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | A timestamp of the date and time that the intent was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The description specified for the intent.+    description :: Prelude.Maybe Prelude.Text,+    -- | The dialog Lambda function specified for the intent.+    dialogCodeHook :: Prelude.Maybe DialogCodeHookSettings,+    -- | The fulfillment Lambda function specified for the intent.+    fulfillmentCodeHook :: Prelude.Maybe FulfillmentCodeHookSettings,+    -- | Configuration settings for the response that is sent to the user at the+    -- beginning of a conversation, before eliciting slot values.+    initialResponseSetting :: Prelude.Maybe InitialResponseSetting,+    -- | The list of input contexts specified for the intent.+    inputContexts :: Prelude.Maybe [InputContext],+    -- | The closing setting specified for the intent.+    intentClosingSetting :: Prelude.Maybe IntentClosingSetting,+    -- | The confirmation setting specified for the intent.+    intentConfirmationSetting :: Prelude.Maybe IntentConfirmationSetting,+    -- | A unique identifier for the intent.+    intentId :: Prelude.Maybe Prelude.Text,+    -- | The name specified for the intent.+    intentName :: Prelude.Maybe Prelude.Text,+    -- | Configuration for searching a Amazon Kendra index specified for the+    -- intent.+    kendraConfiguration :: Prelude.Maybe KendraConfiguration,+    -- | The locale that the intent is specified to use.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The list of output contexts specified for the intent.+    outputContexts :: Prelude.Maybe [OutputContext],+    -- | The signature of the parent intent specified for the intent.+    parentIntentSignature :: Prelude.Maybe Prelude.Text,+    -- | The sample utterances specified for the intent.+    sampleUtterances :: Prelude.Maybe [SampleUtterance],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateIntentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'createIntentResponse_botId' - The identifier of the bot associated with the intent.+--+-- 'botVersion', 'createIntentResponse_botVersion' - The identifier of the version of the bot associated with the intent.+--+-- 'creationDateTime', 'createIntentResponse_creationDateTime' - A timestamp of the date and time that the intent was created.+--+-- 'description', 'createIntentResponse_description' - The description specified for the intent.+--+-- 'dialogCodeHook', 'createIntentResponse_dialogCodeHook' - The dialog Lambda function specified for the intent.+--+-- 'fulfillmentCodeHook', 'createIntentResponse_fulfillmentCodeHook' - The fulfillment Lambda function specified for the intent.+--+-- 'initialResponseSetting', 'createIntentResponse_initialResponseSetting' - Configuration settings for the response that is sent to the user at the+-- beginning of a conversation, before eliciting slot values.+--+-- 'inputContexts', 'createIntentResponse_inputContexts' - The list of input contexts specified for the intent.+--+-- 'intentClosingSetting', 'createIntentResponse_intentClosingSetting' - The closing setting specified for the intent.+--+-- 'intentConfirmationSetting', 'createIntentResponse_intentConfirmationSetting' - The confirmation setting specified for the intent.+--+-- 'intentId', 'createIntentResponse_intentId' - A unique identifier for the intent.+--+-- 'intentName', 'createIntentResponse_intentName' - The name specified for the intent.+--+-- 'kendraConfiguration', 'createIntentResponse_kendraConfiguration' - Configuration for searching a Amazon Kendra index specified for the+-- intent.+--+-- 'localeId', 'createIntentResponse_localeId' - The locale that the intent is specified to use.+--+-- 'outputContexts', 'createIntentResponse_outputContexts' - The list of output contexts specified for the intent.+--+-- 'parentIntentSignature', 'createIntentResponse_parentIntentSignature' - The signature of the parent intent specified for the intent.+--+-- 'sampleUtterances', 'createIntentResponse_sampleUtterances' - The sample utterances specified for the intent.+--+-- 'httpStatus', 'createIntentResponse_httpStatus' - The response's http status code.+newCreateIntentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateIntentResponse+newCreateIntentResponse pHttpStatus_ =+  CreateIntentResponse'+    { botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      dialogCodeHook = Prelude.Nothing,+      fulfillmentCodeHook = Prelude.Nothing,+      initialResponseSetting = Prelude.Nothing,+      inputContexts = Prelude.Nothing,+      intentClosingSetting = Prelude.Nothing,+      intentConfirmationSetting = Prelude.Nothing,+      intentId = Prelude.Nothing,+      intentName = Prelude.Nothing,+      kendraConfiguration = Prelude.Nothing,+      localeId = Prelude.Nothing,+      outputContexts = Prelude.Nothing,+      parentIntentSignature = Prelude.Nothing,+      sampleUtterances = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot associated with the intent.+createIntentResponse_botId :: Lens.Lens' CreateIntentResponse (Prelude.Maybe Prelude.Text)+createIntentResponse_botId = Lens.lens (\CreateIntentResponse' {botId} -> botId) (\s@CreateIntentResponse' {} a -> s {botId = a} :: CreateIntentResponse)++-- | The identifier of the version of the bot associated with the intent.+createIntentResponse_botVersion :: Lens.Lens' CreateIntentResponse (Prelude.Maybe Prelude.Text)+createIntentResponse_botVersion = Lens.lens (\CreateIntentResponse' {botVersion} -> botVersion) (\s@CreateIntentResponse' {} a -> s {botVersion = a} :: CreateIntentResponse)++-- | A timestamp of the date and time that the intent was created.+createIntentResponse_creationDateTime :: Lens.Lens' CreateIntentResponse (Prelude.Maybe Prelude.UTCTime)+createIntentResponse_creationDateTime = Lens.lens (\CreateIntentResponse' {creationDateTime} -> creationDateTime) (\s@CreateIntentResponse' {} a -> s {creationDateTime = a} :: CreateIntentResponse) Prelude.. Lens.mapping Data._Time++-- | The description specified for the intent.+createIntentResponse_description :: Lens.Lens' CreateIntentResponse (Prelude.Maybe Prelude.Text)+createIntentResponse_description = Lens.lens (\CreateIntentResponse' {description} -> description) (\s@CreateIntentResponse' {} a -> s {description = a} :: CreateIntentResponse)++-- | The dialog Lambda function specified for the intent.+createIntentResponse_dialogCodeHook :: Lens.Lens' CreateIntentResponse (Prelude.Maybe DialogCodeHookSettings)+createIntentResponse_dialogCodeHook = Lens.lens (\CreateIntentResponse' {dialogCodeHook} -> dialogCodeHook) (\s@CreateIntentResponse' {} a -> s {dialogCodeHook = a} :: CreateIntentResponse)++-- | The fulfillment Lambda function specified for the intent.+createIntentResponse_fulfillmentCodeHook :: Lens.Lens' CreateIntentResponse (Prelude.Maybe FulfillmentCodeHookSettings)+createIntentResponse_fulfillmentCodeHook = Lens.lens (\CreateIntentResponse' {fulfillmentCodeHook} -> fulfillmentCodeHook) (\s@CreateIntentResponse' {} a -> s {fulfillmentCodeHook = a} :: CreateIntentResponse)++-- | Configuration settings for the response that is sent to the user at the+-- beginning of a conversation, before eliciting slot values.+createIntentResponse_initialResponseSetting :: Lens.Lens' CreateIntentResponse (Prelude.Maybe InitialResponseSetting)+createIntentResponse_initialResponseSetting = Lens.lens (\CreateIntentResponse' {initialResponseSetting} -> initialResponseSetting) (\s@CreateIntentResponse' {} a -> s {initialResponseSetting = a} :: CreateIntentResponse)++-- | The list of input contexts specified for the intent.+createIntentResponse_inputContexts :: Lens.Lens' CreateIntentResponse (Prelude.Maybe [InputContext])+createIntentResponse_inputContexts = Lens.lens (\CreateIntentResponse' {inputContexts} -> inputContexts) (\s@CreateIntentResponse' {} a -> s {inputContexts = a} :: CreateIntentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The closing setting specified for the intent.+createIntentResponse_intentClosingSetting :: Lens.Lens' CreateIntentResponse (Prelude.Maybe IntentClosingSetting)+createIntentResponse_intentClosingSetting = Lens.lens (\CreateIntentResponse' {intentClosingSetting} -> intentClosingSetting) (\s@CreateIntentResponse' {} a -> s {intentClosingSetting = a} :: CreateIntentResponse)++-- | The confirmation setting specified for the intent.+createIntentResponse_intentConfirmationSetting :: Lens.Lens' CreateIntentResponse (Prelude.Maybe IntentConfirmationSetting)+createIntentResponse_intentConfirmationSetting = Lens.lens (\CreateIntentResponse' {intentConfirmationSetting} -> intentConfirmationSetting) (\s@CreateIntentResponse' {} a -> s {intentConfirmationSetting = a} :: CreateIntentResponse)++-- | A unique identifier for the intent.+createIntentResponse_intentId :: Lens.Lens' CreateIntentResponse (Prelude.Maybe Prelude.Text)+createIntentResponse_intentId = Lens.lens (\CreateIntentResponse' {intentId} -> intentId) (\s@CreateIntentResponse' {} a -> s {intentId = a} :: CreateIntentResponse)++-- | The name specified for the intent.+createIntentResponse_intentName :: Lens.Lens' CreateIntentResponse (Prelude.Maybe Prelude.Text)+createIntentResponse_intentName = Lens.lens (\CreateIntentResponse' {intentName} -> intentName) (\s@CreateIntentResponse' {} a -> s {intentName = a} :: CreateIntentResponse)++-- | Configuration for searching a Amazon Kendra index specified for the+-- intent.+createIntentResponse_kendraConfiguration :: Lens.Lens' CreateIntentResponse (Prelude.Maybe KendraConfiguration)+createIntentResponse_kendraConfiguration = Lens.lens (\CreateIntentResponse' {kendraConfiguration} -> kendraConfiguration) (\s@CreateIntentResponse' {} a -> s {kendraConfiguration = a} :: CreateIntentResponse)++-- | The locale that the intent is specified to use.+createIntentResponse_localeId :: Lens.Lens' CreateIntentResponse (Prelude.Maybe Prelude.Text)+createIntentResponse_localeId = Lens.lens (\CreateIntentResponse' {localeId} -> localeId) (\s@CreateIntentResponse' {} a -> s {localeId = a} :: CreateIntentResponse)++-- | The list of output contexts specified for the intent.+createIntentResponse_outputContexts :: Lens.Lens' CreateIntentResponse (Prelude.Maybe [OutputContext])+createIntentResponse_outputContexts = Lens.lens (\CreateIntentResponse' {outputContexts} -> outputContexts) (\s@CreateIntentResponse' {} a -> s {outputContexts = a} :: CreateIntentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The signature of the parent intent specified for the intent.+createIntentResponse_parentIntentSignature :: Lens.Lens' CreateIntentResponse (Prelude.Maybe Prelude.Text)+createIntentResponse_parentIntentSignature = Lens.lens (\CreateIntentResponse' {parentIntentSignature} -> parentIntentSignature) (\s@CreateIntentResponse' {} a -> s {parentIntentSignature = a} :: CreateIntentResponse)++-- | The sample utterances specified for the intent.+createIntentResponse_sampleUtterances :: Lens.Lens' CreateIntentResponse (Prelude.Maybe [SampleUtterance])+createIntentResponse_sampleUtterances = Lens.lens (\CreateIntentResponse' {sampleUtterances} -> sampleUtterances) (\s@CreateIntentResponse' {} a -> s {sampleUtterances = a} :: CreateIntentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+createIntentResponse_httpStatus :: Lens.Lens' CreateIntentResponse Prelude.Int+createIntentResponse_httpStatus = Lens.lens (\CreateIntentResponse' {httpStatus} -> httpStatus) (\s@CreateIntentResponse' {} a -> s {httpStatus = a} :: CreateIntentResponse)++instance Prelude.NFData CreateIntentResponse where+  rnf CreateIntentResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf dialogCodeHook+      `Prelude.seq` Prelude.rnf fulfillmentCodeHook+      `Prelude.seq` Prelude.rnf initialResponseSetting+      `Prelude.seq` Prelude.rnf inputContexts+      `Prelude.seq` Prelude.rnf intentClosingSetting+      `Prelude.seq` Prelude.rnf intentConfirmationSetting+      `Prelude.seq` Prelude.rnf intentId+      `Prelude.seq` Prelude.rnf intentName+      `Prelude.seq` Prelude.rnf kendraConfiguration+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf outputContexts+      `Prelude.seq` Prelude.rnf parentIntentSignature+      `Prelude.seq` Prelude.rnf sampleUtterances+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/CreateResourcePolicy.hs view
@@ -0,0 +1,232 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.CreateResourcePolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new resource policy with the specified policy statements.+module Amazonka.LexV2Models.CreateResourcePolicy+  ( -- * Creating a Request+    CreateResourcePolicy (..),+    newCreateResourcePolicy,++    -- * Request Lenses+    createResourcePolicy_resourceArn,+    createResourcePolicy_policy,++    -- * Destructuring the Response+    CreateResourcePolicyResponse (..),+    newCreateResourcePolicyResponse,++    -- * Response Lenses+    createResourcePolicyResponse_resourceArn,+    createResourcePolicyResponse_revisionId,+    createResourcePolicyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateResourcePolicy' smart constructor.+data CreateResourcePolicy = CreateResourcePolicy'+  { -- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+    -- policy is attached to.+    resourceArn :: Prelude.Text,+    -- | A resource policy to add to the resource. The policy is a JSON structure+    -- that contains one or more statements that define the policy. The policy+    -- must follow the IAM syntax. For more information about the contents of a+    -- JSON policy document, see+    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html IAM JSON policy reference>+    -- .+    --+    -- If the policy isn\'t valid, Amazon Lex returns a validation exception.+    policy :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateResourcePolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'createResourcePolicy_resourceArn' - The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy is attached to.+--+-- 'policy', 'createResourcePolicy_policy' - A resource policy to add to the resource. The policy is a JSON structure+-- that contains one or more statements that define the policy. The policy+-- must follow the IAM syntax. For more information about the contents of a+-- JSON policy document, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html IAM JSON policy reference>+-- .+--+-- If the policy isn\'t valid, Amazon Lex returns a validation exception.+newCreateResourcePolicy ::+  -- | 'resourceArn'+  Prelude.Text ->+  -- | 'policy'+  Prelude.Text ->+  CreateResourcePolicy+newCreateResourcePolicy pResourceArn_ pPolicy_ =+  CreateResourcePolicy'+    { resourceArn = pResourceArn_,+      policy = pPolicy_+    }++-- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy is attached to.+createResourcePolicy_resourceArn :: Lens.Lens' CreateResourcePolicy Prelude.Text+createResourcePolicy_resourceArn = Lens.lens (\CreateResourcePolicy' {resourceArn} -> resourceArn) (\s@CreateResourcePolicy' {} a -> s {resourceArn = a} :: CreateResourcePolicy)++-- | A resource policy to add to the resource. The policy is a JSON structure+-- that contains one or more statements that define the policy. The policy+-- must follow the IAM syntax. For more information about the contents of a+-- JSON policy document, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html IAM JSON policy reference>+-- .+--+-- If the policy isn\'t valid, Amazon Lex returns a validation exception.+createResourcePolicy_policy :: Lens.Lens' CreateResourcePolicy Prelude.Text+createResourcePolicy_policy = Lens.lens (\CreateResourcePolicy' {policy} -> policy) (\s@CreateResourcePolicy' {} a -> s {policy = a} :: CreateResourcePolicy)++instance Core.AWSRequest CreateResourcePolicy where+  type+    AWSResponse CreateResourcePolicy =+      CreateResourcePolicyResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateResourcePolicyResponse'+            Prelude.<$> (x Data..?> "resourceArn")+            Prelude.<*> (x Data..?> "revisionId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateResourcePolicy where+  hashWithSalt _salt CreateResourcePolicy' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` policy++instance Prelude.NFData CreateResourcePolicy where+  rnf CreateResourcePolicy' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf policy++instance Data.ToHeaders CreateResourcePolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateResourcePolicy where+  toJSON CreateResourcePolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("policy" Data..= policy)]+      )++instance Data.ToPath CreateResourcePolicy where+  toPath CreateResourcePolicy' {..} =+    Prelude.mconcat+      ["/policy/", Data.toBS resourceArn, "/"]++instance Data.ToQuery CreateResourcePolicy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateResourcePolicyResponse' smart constructor.+data CreateResourcePolicyResponse = CreateResourcePolicyResponse'+  { -- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+    -- policy was attached to.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | The current revision of the resource policy. Use the revision ID to make+    -- sure that you are updating the most current version of a resource policy+    -- when you add a policy statement to a resource, delete a resource, or+    -- update a resource.+    revisionId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateResourcePolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'createResourcePolicyResponse_resourceArn' - The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy was attached to.+--+-- 'revisionId', 'createResourcePolicyResponse_revisionId' - The current revision of the resource policy. Use the revision ID to make+-- sure that you are updating the most current version of a resource policy+-- when you add a policy statement to a resource, delete a resource, or+-- update a resource.+--+-- 'httpStatus', 'createResourcePolicyResponse_httpStatus' - The response's http status code.+newCreateResourcePolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateResourcePolicyResponse+newCreateResourcePolicyResponse pHttpStatus_ =+  CreateResourcePolicyResponse'+    { resourceArn =+        Prelude.Nothing,+      revisionId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy was attached to.+createResourcePolicyResponse_resourceArn :: Lens.Lens' CreateResourcePolicyResponse (Prelude.Maybe Prelude.Text)+createResourcePolicyResponse_resourceArn = Lens.lens (\CreateResourcePolicyResponse' {resourceArn} -> resourceArn) (\s@CreateResourcePolicyResponse' {} a -> s {resourceArn = a} :: CreateResourcePolicyResponse)++-- | The current revision of the resource policy. Use the revision ID to make+-- sure that you are updating the most current version of a resource policy+-- when you add a policy statement to a resource, delete a resource, or+-- update a resource.+createResourcePolicyResponse_revisionId :: Lens.Lens' CreateResourcePolicyResponse (Prelude.Maybe Prelude.Text)+createResourcePolicyResponse_revisionId = Lens.lens (\CreateResourcePolicyResponse' {revisionId} -> revisionId) (\s@CreateResourcePolicyResponse' {} a -> s {revisionId = a} :: CreateResourcePolicyResponse)++-- | The response's http status code.+createResourcePolicyResponse_httpStatus :: Lens.Lens' CreateResourcePolicyResponse Prelude.Int+createResourcePolicyResponse_httpStatus = Lens.lens (\CreateResourcePolicyResponse' {httpStatus} -> httpStatus) (\s@CreateResourcePolicyResponse' {} a -> s {httpStatus = a} :: CreateResourcePolicyResponse)++instance Prelude.NFData CreateResourcePolicyResponse where+  rnf CreateResourcePolicyResponse' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/CreateResourcePolicyStatement.hs view
@@ -0,0 +1,361 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.CreateResourcePolicyStatement+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds a new resource policy statement to a bot or bot alias. If a+-- resource policy exists, the statement is added to the current resource+-- policy. If a policy doesn\'t exist, a new policy is created.+--+-- You can\'t create a resource policy statement that allows cross-account+-- access.+module Amazonka.LexV2Models.CreateResourcePolicyStatement+  ( -- * Creating a Request+    CreateResourcePolicyStatement (..),+    newCreateResourcePolicyStatement,++    -- * Request Lenses+    createResourcePolicyStatement_condition,+    createResourcePolicyStatement_expectedRevisionId,+    createResourcePolicyStatement_resourceArn,+    createResourcePolicyStatement_statementId,+    createResourcePolicyStatement_effect,+    createResourcePolicyStatement_principal,+    createResourcePolicyStatement_action,++    -- * Destructuring the Response+    CreateResourcePolicyStatementResponse (..),+    newCreateResourcePolicyStatementResponse,++    -- * Response Lenses+    createResourcePolicyStatementResponse_resourceArn,+    createResourcePolicyStatementResponse_revisionId,+    createResourcePolicyStatementResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateResourcePolicyStatement' smart constructor.+data CreateResourcePolicyStatement = CreateResourcePolicyStatement'+  { -- | Specifies a condition when the policy is in effect. If the principal of+    -- the policy is a service principal, you must provide two condition+    -- blocks, one with a SourceAccount global condition key and one with a+    -- SourceArn global condition key.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html IAM JSON policy elements: Condition>+    -- .+    condition :: Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)),+    -- | The identifier of the revision of the policy to edit. If this revision+    -- ID doesn\'t match the current revision ID, Amazon Lex throws an+    -- exception.+    --+    -- If you don\'t specify a revision, Amazon Lex overwrites the contents of+    -- the policy with the new values.+    expectedRevisionId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+    -- policy is attached to.+    resourceArn :: Prelude.Text,+    -- | The name of the statement. The ID is the same as the @Sid@ IAM property.+    -- The statement name must be unique within the policy. For more+    -- information, see+    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html IAM JSON policy elements: Sid>.+    statementId :: Prelude.Text,+    -- | Determines whether the statement allows or denies access to the+    -- resource.+    effect :: Effect,+    -- | An IAM principal, such as an IAM users, IAM roles, or AWS services that+    -- is allowed or denied access to a resource. For more information, see+    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html AWS JSON policy elements: Principal>.+    principal :: [Principal],+    -- | The Amazon Lex action that this policy either allows or denies. The+    -- action must apply to the resource type of the specified ARN. For more+    -- information, see+    -- <https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlexv2.html Actions, resources, and condition keys for Amazon Lex V2>.+    action :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateResourcePolicyStatement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'condition', 'createResourcePolicyStatement_condition' - Specifies a condition when the policy is in effect. If the principal of+-- the policy is a service principal, you must provide two condition+-- blocks, one with a SourceAccount global condition key and one with a+-- SourceArn global condition key.+--+-- For more information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html IAM JSON policy elements: Condition>+-- .+--+-- 'expectedRevisionId', 'createResourcePolicyStatement_expectedRevisionId' - The identifier of the revision of the policy to edit. If this revision+-- ID doesn\'t match the current revision ID, Amazon Lex throws an+-- exception.+--+-- If you don\'t specify a revision, Amazon Lex overwrites the contents of+-- the policy with the new values.+--+-- 'resourceArn', 'createResourcePolicyStatement_resourceArn' - The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy is attached to.+--+-- 'statementId', 'createResourcePolicyStatement_statementId' - The name of the statement. The ID is the same as the @Sid@ IAM property.+-- The statement name must be unique within the policy. For more+-- information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html IAM JSON policy elements: Sid>.+--+-- 'effect', 'createResourcePolicyStatement_effect' - Determines whether the statement allows or denies access to the+-- resource.+--+-- 'principal', 'createResourcePolicyStatement_principal' - An IAM principal, such as an IAM users, IAM roles, or AWS services that+-- is allowed or denied access to a resource. For more information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html AWS JSON policy elements: Principal>.+--+-- 'action', 'createResourcePolicyStatement_action' - The Amazon Lex action that this policy either allows or denies. The+-- action must apply to the resource type of the specified ARN. For more+-- information, see+-- <https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlexv2.html Actions, resources, and condition keys for Amazon Lex V2>.+newCreateResourcePolicyStatement ::+  -- | 'resourceArn'+  Prelude.Text ->+  -- | 'statementId'+  Prelude.Text ->+  -- | 'effect'+  Effect ->+  CreateResourcePolicyStatement+newCreateResourcePolicyStatement+  pResourceArn_+  pStatementId_+  pEffect_ =+    CreateResourcePolicyStatement'+      { condition =+          Prelude.Nothing,+        expectedRevisionId = Prelude.Nothing,+        resourceArn = pResourceArn_,+        statementId = pStatementId_,+        effect = pEffect_,+        principal = Prelude.mempty,+        action = Prelude.mempty+      }++-- | Specifies a condition when the policy is in effect. If the principal of+-- the policy is a service principal, you must provide two condition+-- blocks, one with a SourceAccount global condition key and one with a+-- SourceArn global condition key.+--+-- For more information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html IAM JSON policy elements: Condition>+-- .+createResourcePolicyStatement_condition :: Lens.Lens' CreateResourcePolicyStatement (Prelude.Maybe (Prelude.HashMap Prelude.Text (Prelude.HashMap Prelude.Text Prelude.Text)))+createResourcePolicyStatement_condition = Lens.lens (\CreateResourcePolicyStatement' {condition} -> condition) (\s@CreateResourcePolicyStatement' {} a -> s {condition = a} :: CreateResourcePolicyStatement) Prelude.. Lens.mapping Lens.coerced++-- | The identifier of the revision of the policy to edit. If this revision+-- ID doesn\'t match the current revision ID, Amazon Lex throws an+-- exception.+--+-- If you don\'t specify a revision, Amazon Lex overwrites the contents of+-- the policy with the new values.+createResourcePolicyStatement_expectedRevisionId :: Lens.Lens' CreateResourcePolicyStatement (Prelude.Maybe Prelude.Text)+createResourcePolicyStatement_expectedRevisionId = Lens.lens (\CreateResourcePolicyStatement' {expectedRevisionId} -> expectedRevisionId) (\s@CreateResourcePolicyStatement' {} a -> s {expectedRevisionId = a} :: CreateResourcePolicyStatement)++-- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy is attached to.+createResourcePolicyStatement_resourceArn :: Lens.Lens' CreateResourcePolicyStatement Prelude.Text+createResourcePolicyStatement_resourceArn = Lens.lens (\CreateResourcePolicyStatement' {resourceArn} -> resourceArn) (\s@CreateResourcePolicyStatement' {} a -> s {resourceArn = a} :: CreateResourcePolicyStatement)++-- | The name of the statement. The ID is the same as the @Sid@ IAM property.+-- The statement name must be unique within the policy. For more+-- information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html IAM JSON policy elements: Sid>.+createResourcePolicyStatement_statementId :: Lens.Lens' CreateResourcePolicyStatement Prelude.Text+createResourcePolicyStatement_statementId = Lens.lens (\CreateResourcePolicyStatement' {statementId} -> statementId) (\s@CreateResourcePolicyStatement' {} a -> s {statementId = a} :: CreateResourcePolicyStatement)++-- | Determines whether the statement allows or denies access to the+-- resource.+createResourcePolicyStatement_effect :: Lens.Lens' CreateResourcePolicyStatement Effect+createResourcePolicyStatement_effect = Lens.lens (\CreateResourcePolicyStatement' {effect} -> effect) (\s@CreateResourcePolicyStatement' {} a -> s {effect = a} :: CreateResourcePolicyStatement)++-- | An IAM principal, such as an IAM users, IAM roles, or AWS services that+-- is allowed or denied access to a resource. For more information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html AWS JSON policy elements: Principal>.+createResourcePolicyStatement_principal :: Lens.Lens' CreateResourcePolicyStatement [Principal]+createResourcePolicyStatement_principal = Lens.lens (\CreateResourcePolicyStatement' {principal} -> principal) (\s@CreateResourcePolicyStatement' {} a -> s {principal = a} :: CreateResourcePolicyStatement) Prelude.. Lens.coerced++-- | The Amazon Lex action that this policy either allows or denies. The+-- action must apply to the resource type of the specified ARN. For more+-- information, see+-- <https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlexv2.html Actions, resources, and condition keys for Amazon Lex V2>.+createResourcePolicyStatement_action :: Lens.Lens' CreateResourcePolicyStatement [Prelude.Text]+createResourcePolicyStatement_action = Lens.lens (\CreateResourcePolicyStatement' {action} -> action) (\s@CreateResourcePolicyStatement' {} a -> s {action = a} :: CreateResourcePolicyStatement) Prelude.. Lens.coerced++instance+  Core.AWSRequest+    CreateResourcePolicyStatement+  where+  type+    AWSResponse CreateResourcePolicyStatement =+      CreateResourcePolicyStatementResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateResourcePolicyStatementResponse'+            Prelude.<$> (x Data..?> "resourceArn")+            Prelude.<*> (x Data..?> "revisionId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    CreateResourcePolicyStatement+  where+  hashWithSalt _salt CreateResourcePolicyStatement' {..} =+    _salt+      `Prelude.hashWithSalt` condition+      `Prelude.hashWithSalt` expectedRevisionId+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` statementId+      `Prelude.hashWithSalt` effect+      `Prelude.hashWithSalt` principal+      `Prelude.hashWithSalt` action++instance Prelude.NFData CreateResourcePolicyStatement where+  rnf CreateResourcePolicyStatement' {..} =+    Prelude.rnf condition+      `Prelude.seq` Prelude.rnf expectedRevisionId+      `Prelude.seq` Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf statementId+      `Prelude.seq` Prelude.rnf effect+      `Prelude.seq` Prelude.rnf principal+      `Prelude.seq` Prelude.rnf action++instance Data.ToHeaders CreateResourcePolicyStatement where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateResourcePolicyStatement where+  toJSON CreateResourcePolicyStatement' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("condition" Data..=) Prelude.<$> condition,+            Prelude.Just ("statementId" Data..= statementId),+            Prelude.Just ("effect" Data..= effect),+            Prelude.Just ("principal" Data..= principal),+            Prelude.Just ("action" Data..= action)+          ]+      )++instance Data.ToPath CreateResourcePolicyStatement where+  toPath CreateResourcePolicyStatement' {..} =+    Prelude.mconcat+      ["/policy/", Data.toBS resourceArn, "/statements/"]++instance Data.ToQuery CreateResourcePolicyStatement where+  toQuery CreateResourcePolicyStatement' {..} =+    Prelude.mconcat+      ["expectedRevisionId" Data.=: expectedRevisionId]++-- | /See:/ 'newCreateResourcePolicyStatementResponse' smart constructor.+data CreateResourcePolicyStatementResponse = CreateResourcePolicyStatementResponse'+  { -- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+    -- policy is attached to.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | The current revision of the resource policy. Use the revision ID to make+    -- sure that you are updating the most current version of a resource policy+    -- when you add a policy statement to a resource, delete a resource, or+    -- update a resource.+    revisionId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateResourcePolicyStatementResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'createResourcePolicyStatementResponse_resourceArn' - The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy is attached to.+--+-- 'revisionId', 'createResourcePolicyStatementResponse_revisionId' - The current revision of the resource policy. Use the revision ID to make+-- sure that you are updating the most current version of a resource policy+-- when you add a policy statement to a resource, delete a resource, or+-- update a resource.+--+-- 'httpStatus', 'createResourcePolicyStatementResponse_httpStatus' - The response's http status code.+newCreateResourcePolicyStatementResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateResourcePolicyStatementResponse+newCreateResourcePolicyStatementResponse pHttpStatus_ =+  CreateResourcePolicyStatementResponse'+    { resourceArn =+        Prelude.Nothing,+      revisionId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy is attached to.+createResourcePolicyStatementResponse_resourceArn :: Lens.Lens' CreateResourcePolicyStatementResponse (Prelude.Maybe Prelude.Text)+createResourcePolicyStatementResponse_resourceArn = Lens.lens (\CreateResourcePolicyStatementResponse' {resourceArn} -> resourceArn) (\s@CreateResourcePolicyStatementResponse' {} a -> s {resourceArn = a} :: CreateResourcePolicyStatementResponse)++-- | The current revision of the resource policy. Use the revision ID to make+-- sure that you are updating the most current version of a resource policy+-- when you add a policy statement to a resource, delete a resource, or+-- update a resource.+createResourcePolicyStatementResponse_revisionId :: Lens.Lens' CreateResourcePolicyStatementResponse (Prelude.Maybe Prelude.Text)+createResourcePolicyStatementResponse_revisionId = Lens.lens (\CreateResourcePolicyStatementResponse' {revisionId} -> revisionId) (\s@CreateResourcePolicyStatementResponse' {} a -> s {revisionId = a} :: CreateResourcePolicyStatementResponse)++-- | The response's http status code.+createResourcePolicyStatementResponse_httpStatus :: Lens.Lens' CreateResourcePolicyStatementResponse Prelude.Int+createResourcePolicyStatementResponse_httpStatus = Lens.lens (\CreateResourcePolicyStatementResponse' {httpStatus} -> httpStatus) (\s@CreateResourcePolicyStatementResponse' {} a -> s {httpStatus = a} :: CreateResourcePolicyStatementResponse)++instance+  Prelude.NFData+    CreateResourcePolicyStatementResponse+  where+  rnf CreateResourcePolicyStatementResponse' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/CreateSlot.hs view
@@ -0,0 +1,535 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.CreateSlot+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a slot in an intent. A slot is a variable needed to fulfill an+-- intent. For example, an @OrderPizza@ intent might need slots for size,+-- crust, and number of pizzas. For each slot, you define one or more+-- utterances that Amazon Lex uses to elicit a response from the user.+module Amazonka.LexV2Models.CreateSlot+  ( -- * Creating a Request+    CreateSlot (..),+    newCreateSlot,++    -- * Request Lenses+    createSlot_description,+    createSlot_multipleValuesSetting,+    createSlot_obfuscationSetting,+    createSlot_slotTypeId,+    createSlot_subSlotSetting,+    createSlot_slotName,+    createSlot_valueElicitationSetting,+    createSlot_botId,+    createSlot_botVersion,+    createSlot_localeId,+    createSlot_intentId,++    -- * Destructuring the Response+    CreateSlotResponse (..),+    newCreateSlotResponse,++    -- * Response Lenses+    createSlotResponse_botId,+    createSlotResponse_botVersion,+    createSlotResponse_creationDateTime,+    createSlotResponse_description,+    createSlotResponse_intentId,+    createSlotResponse_localeId,+    createSlotResponse_multipleValuesSetting,+    createSlotResponse_obfuscationSetting,+    createSlotResponse_slotId,+    createSlotResponse_slotName,+    createSlotResponse_slotTypeId,+    createSlotResponse_subSlotSetting,+    createSlotResponse_valueElicitationSetting,+    createSlotResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateSlot' smart constructor.+data CreateSlot = CreateSlot'+  { -- | A description of the slot. Use this to help identify the slot in lists.+    description :: Prelude.Maybe Prelude.Text,+    -- | Indicates whether the slot returns multiple values in one response.+    -- Multi-value slots are only available in the en-US locale. If you set+    -- this value to @true@ in any other locale, Amazon Lex throws a+    -- @ValidationException@.+    --+    -- If the @multipleValuesSetting@ is not set, the default value is @false@.+    multipleValuesSetting :: Prelude.Maybe MultipleValuesSetting,+    -- | Determines how slot values are used in Amazon CloudWatch logs. If the+    -- value of the @obfuscationSetting@ parameter is @DefaultObfuscation@,+    -- slot values are obfuscated in the log output. If the value is @None@,+    -- the actual value is present in the log output.+    --+    -- The default is to obfuscate values in the CloudWatch logs.+    obfuscationSetting :: Prelude.Maybe ObfuscationSetting,+    -- | The unique identifier for the slot type associated with this slot. The+    -- slot type determines the values that can be entered into the slot.+    slotTypeId :: Prelude.Maybe Prelude.Text,+    -- | Specifications for the constituent sub slots and the expression for the+    -- composite slot.+    subSlotSetting :: Prelude.Maybe SubSlotSetting,+    -- | The name of the slot. Slot names must be unique within the bot that+    -- contains the slot.+    slotName :: Prelude.Text,+    -- | Specifies prompts that Amazon Lex sends to the user to elicit a response+    -- that provides the value for the slot.+    valueElicitationSetting :: SlotValueElicitationSetting,+    -- | The identifier of the bot associated with the slot.+    botId :: Prelude.Text,+    -- | The version of the bot associated with the slot.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale that the slot will be used in.+    -- The string must match one of the supported locales. All of the bots,+    -- intents, slot types used by the slot must have the same locale. For more+    -- information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text,+    -- | The identifier of the intent that contains the slot.+    intentId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSlot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'createSlot_description' - A description of the slot. Use this to help identify the slot in lists.+--+-- 'multipleValuesSetting', 'createSlot_multipleValuesSetting' - Indicates whether the slot returns multiple values in one response.+-- Multi-value slots are only available in the en-US locale. If you set+-- this value to @true@ in any other locale, Amazon Lex throws a+-- @ValidationException@.+--+-- If the @multipleValuesSetting@ is not set, the default value is @false@.+--+-- 'obfuscationSetting', 'createSlot_obfuscationSetting' - Determines how slot values are used in Amazon CloudWatch logs. If the+-- value of the @obfuscationSetting@ parameter is @DefaultObfuscation@,+-- slot values are obfuscated in the log output. If the value is @None@,+-- the actual value is present in the log output.+--+-- The default is to obfuscate values in the CloudWatch logs.+--+-- 'slotTypeId', 'createSlot_slotTypeId' - The unique identifier for the slot type associated with this slot. The+-- slot type determines the values that can be entered into the slot.+--+-- 'subSlotSetting', 'createSlot_subSlotSetting' - Specifications for the constituent sub slots and the expression for the+-- composite slot.+--+-- 'slotName', 'createSlot_slotName' - The name of the slot. Slot names must be unique within the bot that+-- contains the slot.+--+-- 'valueElicitationSetting', 'createSlot_valueElicitationSetting' - Specifies prompts that Amazon Lex sends to the user to elicit a response+-- that provides the value for the slot.+--+-- 'botId', 'createSlot_botId' - The identifier of the bot associated with the slot.+--+-- 'botVersion', 'createSlot_botVersion' - The version of the bot associated with the slot.+--+-- 'localeId', 'createSlot_localeId' - The identifier of the language and locale that the slot will be used in.+-- The string must match one of the supported locales. All of the bots,+-- intents, slot types used by the slot must have the same locale. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+--+-- 'intentId', 'createSlot_intentId' - The identifier of the intent that contains the slot.+newCreateSlot ::+  -- | 'slotName'+  Prelude.Text ->+  -- | 'valueElicitationSetting'+  SlotValueElicitationSetting ->+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  -- | 'intentId'+  Prelude.Text ->+  CreateSlot+newCreateSlot+  pSlotName_+  pValueElicitationSetting_+  pBotId_+  pBotVersion_+  pLocaleId_+  pIntentId_ =+    CreateSlot'+      { description = Prelude.Nothing,+        multipleValuesSetting = Prelude.Nothing,+        obfuscationSetting = Prelude.Nothing,+        slotTypeId = Prelude.Nothing,+        subSlotSetting = Prelude.Nothing,+        slotName = pSlotName_,+        valueElicitationSetting = pValueElicitationSetting_,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_,+        intentId = pIntentId_+      }++-- | A description of the slot. Use this to help identify the slot in lists.+createSlot_description :: Lens.Lens' CreateSlot (Prelude.Maybe Prelude.Text)+createSlot_description = Lens.lens (\CreateSlot' {description} -> description) (\s@CreateSlot' {} a -> s {description = a} :: CreateSlot)++-- | Indicates whether the slot returns multiple values in one response.+-- Multi-value slots are only available in the en-US locale. If you set+-- this value to @true@ in any other locale, Amazon Lex throws a+-- @ValidationException@.+--+-- If the @multipleValuesSetting@ is not set, the default value is @false@.+createSlot_multipleValuesSetting :: Lens.Lens' CreateSlot (Prelude.Maybe MultipleValuesSetting)+createSlot_multipleValuesSetting = Lens.lens (\CreateSlot' {multipleValuesSetting} -> multipleValuesSetting) (\s@CreateSlot' {} a -> s {multipleValuesSetting = a} :: CreateSlot)++-- | Determines how slot values are used in Amazon CloudWatch logs. If the+-- value of the @obfuscationSetting@ parameter is @DefaultObfuscation@,+-- slot values are obfuscated in the log output. If the value is @None@,+-- the actual value is present in the log output.+--+-- The default is to obfuscate values in the CloudWatch logs.+createSlot_obfuscationSetting :: Lens.Lens' CreateSlot (Prelude.Maybe ObfuscationSetting)+createSlot_obfuscationSetting = Lens.lens (\CreateSlot' {obfuscationSetting} -> obfuscationSetting) (\s@CreateSlot' {} a -> s {obfuscationSetting = a} :: CreateSlot)++-- | The unique identifier for the slot type associated with this slot. The+-- slot type determines the values that can be entered into the slot.+createSlot_slotTypeId :: Lens.Lens' CreateSlot (Prelude.Maybe Prelude.Text)+createSlot_slotTypeId = Lens.lens (\CreateSlot' {slotTypeId} -> slotTypeId) (\s@CreateSlot' {} a -> s {slotTypeId = a} :: CreateSlot)++-- | Specifications for the constituent sub slots and the expression for the+-- composite slot.+createSlot_subSlotSetting :: Lens.Lens' CreateSlot (Prelude.Maybe SubSlotSetting)+createSlot_subSlotSetting = Lens.lens (\CreateSlot' {subSlotSetting} -> subSlotSetting) (\s@CreateSlot' {} a -> s {subSlotSetting = a} :: CreateSlot)++-- | The name of the slot. Slot names must be unique within the bot that+-- contains the slot.+createSlot_slotName :: Lens.Lens' CreateSlot Prelude.Text+createSlot_slotName = Lens.lens (\CreateSlot' {slotName} -> slotName) (\s@CreateSlot' {} a -> s {slotName = a} :: CreateSlot)++-- | Specifies prompts that Amazon Lex sends to the user to elicit a response+-- that provides the value for the slot.+createSlot_valueElicitationSetting :: Lens.Lens' CreateSlot SlotValueElicitationSetting+createSlot_valueElicitationSetting = Lens.lens (\CreateSlot' {valueElicitationSetting} -> valueElicitationSetting) (\s@CreateSlot' {} a -> s {valueElicitationSetting = a} :: CreateSlot)++-- | The identifier of the bot associated with the slot.+createSlot_botId :: Lens.Lens' CreateSlot Prelude.Text+createSlot_botId = Lens.lens (\CreateSlot' {botId} -> botId) (\s@CreateSlot' {} a -> s {botId = a} :: CreateSlot)++-- | The version of the bot associated with the slot.+createSlot_botVersion :: Lens.Lens' CreateSlot Prelude.Text+createSlot_botVersion = Lens.lens (\CreateSlot' {botVersion} -> botVersion) (\s@CreateSlot' {} a -> s {botVersion = a} :: CreateSlot)++-- | The identifier of the language and locale that the slot will be used in.+-- The string must match one of the supported locales. All of the bots,+-- intents, slot types used by the slot must have the same locale. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+createSlot_localeId :: Lens.Lens' CreateSlot Prelude.Text+createSlot_localeId = Lens.lens (\CreateSlot' {localeId} -> localeId) (\s@CreateSlot' {} a -> s {localeId = a} :: CreateSlot)++-- | The identifier of the intent that contains the slot.+createSlot_intentId :: Lens.Lens' CreateSlot Prelude.Text+createSlot_intentId = Lens.lens (\CreateSlot' {intentId} -> intentId) (\s@CreateSlot' {} a -> s {intentId = a} :: CreateSlot)++instance Core.AWSRequest CreateSlot where+  type AWSResponse CreateSlot = CreateSlotResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateSlotResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "intentId")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "multipleValuesSetting")+            Prelude.<*> (x Data..?> "obfuscationSetting")+            Prelude.<*> (x Data..?> "slotId")+            Prelude.<*> (x Data..?> "slotName")+            Prelude.<*> (x Data..?> "slotTypeId")+            Prelude.<*> (x Data..?> "subSlotSetting")+            Prelude.<*> (x Data..?> "valueElicitationSetting")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateSlot where+  hashWithSalt _salt CreateSlot' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` multipleValuesSetting+      `Prelude.hashWithSalt` obfuscationSetting+      `Prelude.hashWithSalt` slotTypeId+      `Prelude.hashWithSalt` subSlotSetting+      `Prelude.hashWithSalt` slotName+      `Prelude.hashWithSalt` valueElicitationSetting+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` intentId++instance Prelude.NFData CreateSlot where+  rnf CreateSlot' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf multipleValuesSetting+      `Prelude.seq` Prelude.rnf obfuscationSetting+      `Prelude.seq` Prelude.rnf slotTypeId+      `Prelude.seq` Prelude.rnf subSlotSetting+      `Prelude.seq` Prelude.rnf slotName+      `Prelude.seq` Prelude.rnf valueElicitationSetting+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf intentId++instance Data.ToHeaders CreateSlot where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateSlot where+  toJSON CreateSlot' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("multipleValuesSetting" Data..=)+              Prelude.<$> multipleValuesSetting,+            ("obfuscationSetting" Data..=)+              Prelude.<$> obfuscationSetting,+            ("slotTypeId" Data..=) Prelude.<$> slotTypeId,+            ("subSlotSetting" Data..=)+              Prelude.<$> subSlotSetting,+            Prelude.Just ("slotName" Data..= slotName),+            Prelude.Just+              ( "valueElicitationSetting"+                  Data..= valueElicitationSetting+              )+          ]+      )++instance Data.ToPath CreateSlot where+  toPath CreateSlot' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/intents/",+        Data.toBS intentId,+        "/slots/"+      ]++instance Data.ToQuery CreateSlot where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSlotResponse' smart constructor.+data CreateSlotResponse = CreateSlotResponse'+  { -- | The unique identifier of the bot associated with the slot.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot associated with the slot.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The timestamp of the date and time that the slot was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The description associated with the slot.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the intent associated with the slot.+    intentId :: Prelude.Maybe Prelude.Text,+    -- | The language and local specified for the slot.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | Indicates whether the slot returns multiple values in one response.+    multipleValuesSetting :: Prelude.Maybe MultipleValuesSetting,+    -- | Indicates whether the slot is configured to obfuscate values in Amazon+    -- CloudWatch logs.+    obfuscationSetting :: Prelude.Maybe ObfuscationSetting,+    -- | The unique identifier associated with the slot. Use this to identify the+    -- slot when you update or delete it.+    slotId :: Prelude.Maybe Prelude.Text,+    -- | The name specified for the slot.+    slotName :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the slot type associated with this slot.+    slotTypeId :: Prelude.Maybe Prelude.Text,+    -- | Specifications for the constituent sub slots and the expression for the+    -- composite slot.+    subSlotSetting :: Prelude.Maybe SubSlotSetting,+    -- | The value elicitation settings specified for the slot.+    valueElicitationSetting :: Prelude.Maybe SlotValueElicitationSetting,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSlotResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'createSlotResponse_botId' - The unique identifier of the bot associated with the slot.+--+-- 'botVersion', 'createSlotResponse_botVersion' - The version of the bot associated with the slot.+--+-- 'creationDateTime', 'createSlotResponse_creationDateTime' - The timestamp of the date and time that the slot was created.+--+-- 'description', 'createSlotResponse_description' - The description associated with the slot.+--+-- 'intentId', 'createSlotResponse_intentId' - The unique identifier of the intent associated with the slot.+--+-- 'localeId', 'createSlotResponse_localeId' - The language and local specified for the slot.+--+-- 'multipleValuesSetting', 'createSlotResponse_multipleValuesSetting' - Indicates whether the slot returns multiple values in one response.+--+-- 'obfuscationSetting', 'createSlotResponse_obfuscationSetting' - Indicates whether the slot is configured to obfuscate values in Amazon+-- CloudWatch logs.+--+-- 'slotId', 'createSlotResponse_slotId' - The unique identifier associated with the slot. Use this to identify the+-- slot when you update or delete it.+--+-- 'slotName', 'createSlotResponse_slotName' - The name specified for the slot.+--+-- 'slotTypeId', 'createSlotResponse_slotTypeId' - The unique identifier of the slot type associated with this slot.+--+-- 'subSlotSetting', 'createSlotResponse_subSlotSetting' - Specifications for the constituent sub slots and the expression for the+-- composite slot.+--+-- 'valueElicitationSetting', 'createSlotResponse_valueElicitationSetting' - The value elicitation settings specified for the slot.+--+-- 'httpStatus', 'createSlotResponse_httpStatus' - The response's http status code.+newCreateSlotResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateSlotResponse+newCreateSlotResponse pHttpStatus_ =+  CreateSlotResponse'+    { botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      intentId = Prelude.Nothing,+      localeId = Prelude.Nothing,+      multipleValuesSetting = Prelude.Nothing,+      obfuscationSetting = Prelude.Nothing,+      slotId = Prelude.Nothing,+      slotName = Prelude.Nothing,+      slotTypeId = Prelude.Nothing,+      subSlotSetting = Prelude.Nothing,+      valueElicitationSetting = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the bot associated with the slot.+createSlotResponse_botId :: Lens.Lens' CreateSlotResponse (Prelude.Maybe Prelude.Text)+createSlotResponse_botId = Lens.lens (\CreateSlotResponse' {botId} -> botId) (\s@CreateSlotResponse' {} a -> s {botId = a} :: CreateSlotResponse)++-- | The version of the bot associated with the slot.+createSlotResponse_botVersion :: Lens.Lens' CreateSlotResponse (Prelude.Maybe Prelude.Text)+createSlotResponse_botVersion = Lens.lens (\CreateSlotResponse' {botVersion} -> botVersion) (\s@CreateSlotResponse' {} a -> s {botVersion = a} :: CreateSlotResponse)++-- | The timestamp of the date and time that the slot was created.+createSlotResponse_creationDateTime :: Lens.Lens' CreateSlotResponse (Prelude.Maybe Prelude.UTCTime)+createSlotResponse_creationDateTime = Lens.lens (\CreateSlotResponse' {creationDateTime} -> creationDateTime) (\s@CreateSlotResponse' {} a -> s {creationDateTime = a} :: CreateSlotResponse) Prelude.. Lens.mapping Data._Time++-- | The description associated with the slot.+createSlotResponse_description :: Lens.Lens' CreateSlotResponse (Prelude.Maybe Prelude.Text)+createSlotResponse_description = Lens.lens (\CreateSlotResponse' {description} -> description) (\s@CreateSlotResponse' {} a -> s {description = a} :: CreateSlotResponse)++-- | The unique identifier of the intent associated with the slot.+createSlotResponse_intentId :: Lens.Lens' CreateSlotResponse (Prelude.Maybe Prelude.Text)+createSlotResponse_intentId = Lens.lens (\CreateSlotResponse' {intentId} -> intentId) (\s@CreateSlotResponse' {} a -> s {intentId = a} :: CreateSlotResponse)++-- | The language and local specified for the slot.+createSlotResponse_localeId :: Lens.Lens' CreateSlotResponse (Prelude.Maybe Prelude.Text)+createSlotResponse_localeId = Lens.lens (\CreateSlotResponse' {localeId} -> localeId) (\s@CreateSlotResponse' {} a -> s {localeId = a} :: CreateSlotResponse)++-- | Indicates whether the slot returns multiple values in one response.+createSlotResponse_multipleValuesSetting :: Lens.Lens' CreateSlotResponse (Prelude.Maybe MultipleValuesSetting)+createSlotResponse_multipleValuesSetting = Lens.lens (\CreateSlotResponse' {multipleValuesSetting} -> multipleValuesSetting) (\s@CreateSlotResponse' {} a -> s {multipleValuesSetting = a} :: CreateSlotResponse)++-- | Indicates whether the slot is configured to obfuscate values in Amazon+-- CloudWatch logs.+createSlotResponse_obfuscationSetting :: Lens.Lens' CreateSlotResponse (Prelude.Maybe ObfuscationSetting)+createSlotResponse_obfuscationSetting = Lens.lens (\CreateSlotResponse' {obfuscationSetting} -> obfuscationSetting) (\s@CreateSlotResponse' {} a -> s {obfuscationSetting = a} :: CreateSlotResponse)++-- | The unique identifier associated with the slot. Use this to identify the+-- slot when you update or delete it.+createSlotResponse_slotId :: Lens.Lens' CreateSlotResponse (Prelude.Maybe Prelude.Text)+createSlotResponse_slotId = Lens.lens (\CreateSlotResponse' {slotId} -> slotId) (\s@CreateSlotResponse' {} a -> s {slotId = a} :: CreateSlotResponse)++-- | The name specified for the slot.+createSlotResponse_slotName :: Lens.Lens' CreateSlotResponse (Prelude.Maybe Prelude.Text)+createSlotResponse_slotName = Lens.lens (\CreateSlotResponse' {slotName} -> slotName) (\s@CreateSlotResponse' {} a -> s {slotName = a} :: CreateSlotResponse)++-- | The unique identifier of the slot type associated with this slot.+createSlotResponse_slotTypeId :: Lens.Lens' CreateSlotResponse (Prelude.Maybe Prelude.Text)+createSlotResponse_slotTypeId = Lens.lens (\CreateSlotResponse' {slotTypeId} -> slotTypeId) (\s@CreateSlotResponse' {} a -> s {slotTypeId = a} :: CreateSlotResponse)++-- | Specifications for the constituent sub slots and the expression for the+-- composite slot.+createSlotResponse_subSlotSetting :: Lens.Lens' CreateSlotResponse (Prelude.Maybe SubSlotSetting)+createSlotResponse_subSlotSetting = Lens.lens (\CreateSlotResponse' {subSlotSetting} -> subSlotSetting) (\s@CreateSlotResponse' {} a -> s {subSlotSetting = a} :: CreateSlotResponse)++-- | The value elicitation settings specified for the slot.+createSlotResponse_valueElicitationSetting :: Lens.Lens' CreateSlotResponse (Prelude.Maybe SlotValueElicitationSetting)+createSlotResponse_valueElicitationSetting = Lens.lens (\CreateSlotResponse' {valueElicitationSetting} -> valueElicitationSetting) (\s@CreateSlotResponse' {} a -> s {valueElicitationSetting = a} :: CreateSlotResponse)++-- | The response's http status code.+createSlotResponse_httpStatus :: Lens.Lens' CreateSlotResponse Prelude.Int+createSlotResponse_httpStatus = Lens.lens (\CreateSlotResponse' {httpStatus} -> httpStatus) (\s@CreateSlotResponse' {} a -> s {httpStatus = a} :: CreateSlotResponse)++instance Prelude.NFData CreateSlotResponse where+  rnf CreateSlotResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf intentId+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf multipleValuesSetting+      `Prelude.seq` Prelude.rnf obfuscationSetting+      `Prelude.seq` Prelude.rnf slotId+      `Prelude.seq` Prelude.rnf slotName+      `Prelude.seq` Prelude.rnf slotTypeId+      `Prelude.seq` Prelude.rnf subSlotSetting+      `Prelude.seq` Prelude.rnf valueElicitationSetting+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/CreateSlotType.hs view
@@ -0,0 +1,523 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.CreateSlotType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a custom slot type+--+-- To create a custom slot type, specify a name for the slot type and a set+-- of enumeration values, the values that a slot of this type can assume.+module Amazonka.LexV2Models.CreateSlotType+  ( -- * Creating a Request+    CreateSlotType (..),+    newCreateSlotType,++    -- * Request Lenses+    createSlotType_compositeSlotTypeSetting,+    createSlotType_description,+    createSlotType_externalSourceSetting,+    createSlotType_parentSlotTypeSignature,+    createSlotType_slotTypeValues,+    createSlotType_valueSelectionSetting,+    createSlotType_slotTypeName,+    createSlotType_botId,+    createSlotType_botVersion,+    createSlotType_localeId,++    -- * Destructuring the Response+    CreateSlotTypeResponse (..),+    newCreateSlotTypeResponse,++    -- * Response Lenses+    createSlotTypeResponse_botId,+    createSlotTypeResponse_botVersion,+    createSlotTypeResponse_compositeSlotTypeSetting,+    createSlotTypeResponse_creationDateTime,+    createSlotTypeResponse_description,+    createSlotTypeResponse_externalSourceSetting,+    createSlotTypeResponse_localeId,+    createSlotTypeResponse_parentSlotTypeSignature,+    createSlotTypeResponse_slotTypeId,+    createSlotTypeResponse_slotTypeName,+    createSlotTypeResponse_slotTypeValues,+    createSlotTypeResponse_valueSelectionSetting,+    createSlotTypeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateSlotType' smart constructor.+data CreateSlotType = CreateSlotType'+  { -- | Specifications for a composite slot type.+    compositeSlotTypeSetting :: Prelude.Maybe CompositeSlotTypeSetting,+    -- | A description of the slot type. Use the description to help identify the+    -- slot type in lists.+    description :: Prelude.Maybe Prelude.Text,+    -- | Sets the type of external information used to create the slot type.+    externalSourceSetting :: Prelude.Maybe ExternalSourceSetting,+    -- | The built-in slot type used as a parent of this slot type. When you+    -- define a parent slot type, the new slot type has the configuration of+    -- the parent slot type.+    --+    -- Only @AMAZON.AlphaNumeric@ is supported.+    parentSlotTypeSignature :: Prelude.Maybe Prelude.Text,+    -- | A list of @SlotTypeValue@ objects that defines the values that the slot+    -- type can take. Each value can have a list of synonyms, additional values+    -- that help train the machine learning model about the values that it+    -- resolves for a slot.+    slotTypeValues :: Prelude.Maybe (Prelude.NonEmpty SlotTypeValue),+    -- | Determines the strategy that Amazon Lex uses to select a value from the+    -- list of possible values. The field can be set to one of the following+    -- values:+    --+    -- -   @OriginalValue@ - Returns the value entered by the user, if the user+    --     value is similar to the slot value.+    --+    -- -   @TopResolution@ - If there is a resolution list for the slot, return+    --     the first value in the resolution list. If there is no resolution+    --     list, return null.+    --+    -- If you don\'t specify the @valueSelectionSetting@ parameter, the default+    -- is @OriginalValue@.+    valueSelectionSetting :: Prelude.Maybe SlotValueSelectionSetting,+    -- | The name for the slot. A slot type name must be unique within the+    -- account.+    slotTypeName :: Prelude.Text,+    -- | The identifier of the bot associated with this slot type.+    botId :: Prelude.Text,+    -- | The identifier of the bot version associated with this slot type.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale that the slot type will be+    -- used in. The string must match one of the supported locales. All of the+    -- bots, intents, and slots used by the slot type must have the same+    -- locale. For more information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSlotType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'compositeSlotTypeSetting', 'createSlotType_compositeSlotTypeSetting' - Specifications for a composite slot type.+--+-- 'description', 'createSlotType_description' - A description of the slot type. Use the description to help identify the+-- slot type in lists.+--+-- 'externalSourceSetting', 'createSlotType_externalSourceSetting' - Sets the type of external information used to create the slot type.+--+-- 'parentSlotTypeSignature', 'createSlotType_parentSlotTypeSignature' - The built-in slot type used as a parent of this slot type. When you+-- define a parent slot type, the new slot type has the configuration of+-- the parent slot type.+--+-- Only @AMAZON.AlphaNumeric@ is supported.+--+-- 'slotTypeValues', 'createSlotType_slotTypeValues' - A list of @SlotTypeValue@ objects that defines the values that the slot+-- type can take. Each value can have a list of synonyms, additional values+-- that help train the machine learning model about the values that it+-- resolves for a slot.+--+-- 'valueSelectionSetting', 'createSlotType_valueSelectionSetting' - Determines the strategy that Amazon Lex uses to select a value from the+-- list of possible values. The field can be set to one of the following+-- values:+--+-- -   @OriginalValue@ - Returns the value entered by the user, if the user+--     value is similar to the slot value.+--+-- -   @TopResolution@ - If there is a resolution list for the slot, return+--     the first value in the resolution list. If there is no resolution+--     list, return null.+--+-- If you don\'t specify the @valueSelectionSetting@ parameter, the default+-- is @OriginalValue@.+--+-- 'slotTypeName', 'createSlotType_slotTypeName' - The name for the slot. A slot type name must be unique within the+-- account.+--+-- 'botId', 'createSlotType_botId' - The identifier of the bot associated with this slot type.+--+-- 'botVersion', 'createSlotType_botVersion' - The identifier of the bot version associated with this slot type.+--+-- 'localeId', 'createSlotType_localeId' - The identifier of the language and locale that the slot type will be+-- used in. The string must match one of the supported locales. All of the+-- bots, intents, and slots used by the slot type must have the same+-- locale. For more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+newCreateSlotType ::+  -- | 'slotTypeName'+  Prelude.Text ->+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  CreateSlotType+newCreateSlotType+  pSlotTypeName_+  pBotId_+  pBotVersion_+  pLocaleId_ =+    CreateSlotType'+      { compositeSlotTypeSetting =+          Prelude.Nothing,+        description = Prelude.Nothing,+        externalSourceSetting = Prelude.Nothing,+        parentSlotTypeSignature = Prelude.Nothing,+        slotTypeValues = Prelude.Nothing,+        valueSelectionSetting = Prelude.Nothing,+        slotTypeName = pSlotTypeName_,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_+      }++-- | Specifications for a composite slot type.+createSlotType_compositeSlotTypeSetting :: Lens.Lens' CreateSlotType (Prelude.Maybe CompositeSlotTypeSetting)+createSlotType_compositeSlotTypeSetting = Lens.lens (\CreateSlotType' {compositeSlotTypeSetting} -> compositeSlotTypeSetting) (\s@CreateSlotType' {} a -> s {compositeSlotTypeSetting = a} :: CreateSlotType)++-- | A description of the slot type. Use the description to help identify the+-- slot type in lists.+createSlotType_description :: Lens.Lens' CreateSlotType (Prelude.Maybe Prelude.Text)+createSlotType_description = Lens.lens (\CreateSlotType' {description} -> description) (\s@CreateSlotType' {} a -> s {description = a} :: CreateSlotType)++-- | Sets the type of external information used to create the slot type.+createSlotType_externalSourceSetting :: Lens.Lens' CreateSlotType (Prelude.Maybe ExternalSourceSetting)+createSlotType_externalSourceSetting = Lens.lens (\CreateSlotType' {externalSourceSetting} -> externalSourceSetting) (\s@CreateSlotType' {} a -> s {externalSourceSetting = a} :: CreateSlotType)++-- | The built-in slot type used as a parent of this slot type. When you+-- define a parent slot type, the new slot type has the configuration of+-- the parent slot type.+--+-- Only @AMAZON.AlphaNumeric@ is supported.+createSlotType_parentSlotTypeSignature :: Lens.Lens' CreateSlotType (Prelude.Maybe Prelude.Text)+createSlotType_parentSlotTypeSignature = Lens.lens (\CreateSlotType' {parentSlotTypeSignature} -> parentSlotTypeSignature) (\s@CreateSlotType' {} a -> s {parentSlotTypeSignature = a} :: CreateSlotType)++-- | A list of @SlotTypeValue@ objects that defines the values that the slot+-- type can take. Each value can have a list of synonyms, additional values+-- that help train the machine learning model about the values that it+-- resolves for a slot.+createSlotType_slotTypeValues :: Lens.Lens' CreateSlotType (Prelude.Maybe (Prelude.NonEmpty SlotTypeValue))+createSlotType_slotTypeValues = Lens.lens (\CreateSlotType' {slotTypeValues} -> slotTypeValues) (\s@CreateSlotType' {} a -> s {slotTypeValues = a} :: CreateSlotType) Prelude.. Lens.mapping Lens.coerced++-- | Determines the strategy that Amazon Lex uses to select a value from the+-- list of possible values. The field can be set to one of the following+-- values:+--+-- -   @OriginalValue@ - Returns the value entered by the user, if the user+--     value is similar to the slot value.+--+-- -   @TopResolution@ - If there is a resolution list for the slot, return+--     the first value in the resolution list. If there is no resolution+--     list, return null.+--+-- If you don\'t specify the @valueSelectionSetting@ parameter, the default+-- is @OriginalValue@.+createSlotType_valueSelectionSetting :: Lens.Lens' CreateSlotType (Prelude.Maybe SlotValueSelectionSetting)+createSlotType_valueSelectionSetting = Lens.lens (\CreateSlotType' {valueSelectionSetting} -> valueSelectionSetting) (\s@CreateSlotType' {} a -> s {valueSelectionSetting = a} :: CreateSlotType)++-- | The name for the slot. A slot type name must be unique within the+-- account.+createSlotType_slotTypeName :: Lens.Lens' CreateSlotType Prelude.Text+createSlotType_slotTypeName = Lens.lens (\CreateSlotType' {slotTypeName} -> slotTypeName) (\s@CreateSlotType' {} a -> s {slotTypeName = a} :: CreateSlotType)++-- | The identifier of the bot associated with this slot type.+createSlotType_botId :: Lens.Lens' CreateSlotType Prelude.Text+createSlotType_botId = Lens.lens (\CreateSlotType' {botId} -> botId) (\s@CreateSlotType' {} a -> s {botId = a} :: CreateSlotType)++-- | The identifier of the bot version associated with this slot type.+createSlotType_botVersion :: Lens.Lens' CreateSlotType Prelude.Text+createSlotType_botVersion = Lens.lens (\CreateSlotType' {botVersion} -> botVersion) (\s@CreateSlotType' {} a -> s {botVersion = a} :: CreateSlotType)++-- | The identifier of the language and locale that the slot type will be+-- used in. The string must match one of the supported locales. All of the+-- bots, intents, and slots used by the slot type must have the same+-- locale. For more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+createSlotType_localeId :: Lens.Lens' CreateSlotType Prelude.Text+createSlotType_localeId = Lens.lens (\CreateSlotType' {localeId} -> localeId) (\s@CreateSlotType' {} a -> s {localeId = a} :: CreateSlotType)++instance Core.AWSRequest CreateSlotType where+  type+    AWSResponse CreateSlotType =+      CreateSlotTypeResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateSlotTypeResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "compositeSlotTypeSetting")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "externalSourceSetting")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "parentSlotTypeSignature")+            Prelude.<*> (x Data..?> "slotTypeId")+            Prelude.<*> (x Data..?> "slotTypeName")+            Prelude.<*> (x Data..?> "slotTypeValues")+            Prelude.<*> (x Data..?> "valueSelectionSetting")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateSlotType where+  hashWithSalt _salt CreateSlotType' {..} =+    _salt+      `Prelude.hashWithSalt` compositeSlotTypeSetting+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` externalSourceSetting+      `Prelude.hashWithSalt` parentSlotTypeSignature+      `Prelude.hashWithSalt` slotTypeValues+      `Prelude.hashWithSalt` valueSelectionSetting+      `Prelude.hashWithSalt` slotTypeName+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData CreateSlotType where+  rnf CreateSlotType' {..} =+    Prelude.rnf compositeSlotTypeSetting+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf externalSourceSetting+      `Prelude.seq` Prelude.rnf parentSlotTypeSignature+      `Prelude.seq` Prelude.rnf slotTypeValues+      `Prelude.seq` Prelude.rnf valueSelectionSetting+      `Prelude.seq` Prelude.rnf slotTypeName+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders CreateSlotType where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateSlotType where+  toJSON CreateSlotType' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("compositeSlotTypeSetting" Data..=)+              Prelude.<$> compositeSlotTypeSetting,+            ("description" Data..=) Prelude.<$> description,+            ("externalSourceSetting" Data..=)+              Prelude.<$> externalSourceSetting,+            ("parentSlotTypeSignature" Data..=)+              Prelude.<$> parentSlotTypeSignature,+            ("slotTypeValues" Data..=)+              Prelude.<$> slotTypeValues,+            ("valueSelectionSetting" Data..=)+              Prelude.<$> valueSelectionSetting,+            Prelude.Just ("slotTypeName" Data..= slotTypeName)+          ]+      )++instance Data.ToPath CreateSlotType where+  toPath CreateSlotType' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/slottypes/"+      ]++instance Data.ToQuery CreateSlotType where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateSlotTypeResponse' smart constructor.+data CreateSlotTypeResponse = CreateSlotTypeResponse'+  { -- | The identifier for the bot associated with the slot type.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot associated with the slot type.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | Specifications for a composite slot type.+    compositeSlotTypeSetting :: Prelude.Maybe CompositeSlotTypeSetting,+    -- | A timestamp of the date and time that the slot type was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The description specified for the slot type.+    description :: Prelude.Maybe Prelude.Text,+    -- | The type of external information used to create the slot type.+    externalSourceSetting :: Prelude.Maybe ExternalSourceSetting,+    -- | The specified language and local specified for the slot type.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The signature of the base slot type specified for the slot type.+    parentSlotTypeSignature :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier assigned to the slot type. Use this to identify+    -- the slot type in the @UpdateSlotType@ and @DeleteSlotType@ operations.+    slotTypeId :: Prelude.Maybe Prelude.Text,+    -- | The name specified for the slot type.+    slotTypeName :: Prelude.Maybe Prelude.Text,+    -- | The list of values that the slot type can assume.+    slotTypeValues :: Prelude.Maybe (Prelude.NonEmpty SlotTypeValue),+    -- | The strategy that Amazon Lex uses to select a value from the list of+    -- possible values.+    valueSelectionSetting :: Prelude.Maybe SlotValueSelectionSetting,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateSlotTypeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'createSlotTypeResponse_botId' - The identifier for the bot associated with the slot type.+--+-- 'botVersion', 'createSlotTypeResponse_botVersion' - The version of the bot associated with the slot type.+--+-- 'compositeSlotTypeSetting', 'createSlotTypeResponse_compositeSlotTypeSetting' - Specifications for a composite slot type.+--+-- 'creationDateTime', 'createSlotTypeResponse_creationDateTime' - A timestamp of the date and time that the slot type was created.+--+-- 'description', 'createSlotTypeResponse_description' - The description specified for the slot type.+--+-- 'externalSourceSetting', 'createSlotTypeResponse_externalSourceSetting' - The type of external information used to create the slot type.+--+-- 'localeId', 'createSlotTypeResponse_localeId' - The specified language and local specified for the slot type.+--+-- 'parentSlotTypeSignature', 'createSlotTypeResponse_parentSlotTypeSignature' - The signature of the base slot type specified for the slot type.+--+-- 'slotTypeId', 'createSlotTypeResponse_slotTypeId' - The unique identifier assigned to the slot type. Use this to identify+-- the slot type in the @UpdateSlotType@ and @DeleteSlotType@ operations.+--+-- 'slotTypeName', 'createSlotTypeResponse_slotTypeName' - The name specified for the slot type.+--+-- 'slotTypeValues', 'createSlotTypeResponse_slotTypeValues' - The list of values that the slot type can assume.+--+-- 'valueSelectionSetting', 'createSlotTypeResponse_valueSelectionSetting' - The strategy that Amazon Lex uses to select a value from the list of+-- possible values.+--+-- 'httpStatus', 'createSlotTypeResponse_httpStatus' - The response's http status code.+newCreateSlotTypeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateSlotTypeResponse+newCreateSlotTypeResponse pHttpStatus_ =+  CreateSlotTypeResponse'+    { botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      compositeSlotTypeSetting = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      externalSourceSetting = Prelude.Nothing,+      localeId = Prelude.Nothing,+      parentSlotTypeSignature = Prelude.Nothing,+      slotTypeId = Prelude.Nothing,+      slotTypeName = Prelude.Nothing,+      slotTypeValues = Prelude.Nothing,+      valueSelectionSetting = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier for the bot associated with the slot type.+createSlotTypeResponse_botId :: Lens.Lens' CreateSlotTypeResponse (Prelude.Maybe Prelude.Text)+createSlotTypeResponse_botId = Lens.lens (\CreateSlotTypeResponse' {botId} -> botId) (\s@CreateSlotTypeResponse' {} a -> s {botId = a} :: CreateSlotTypeResponse)++-- | The version of the bot associated with the slot type.+createSlotTypeResponse_botVersion :: Lens.Lens' CreateSlotTypeResponse (Prelude.Maybe Prelude.Text)+createSlotTypeResponse_botVersion = Lens.lens (\CreateSlotTypeResponse' {botVersion} -> botVersion) (\s@CreateSlotTypeResponse' {} a -> s {botVersion = a} :: CreateSlotTypeResponse)++-- | Specifications for a composite slot type.+createSlotTypeResponse_compositeSlotTypeSetting :: Lens.Lens' CreateSlotTypeResponse (Prelude.Maybe CompositeSlotTypeSetting)+createSlotTypeResponse_compositeSlotTypeSetting = Lens.lens (\CreateSlotTypeResponse' {compositeSlotTypeSetting} -> compositeSlotTypeSetting) (\s@CreateSlotTypeResponse' {} a -> s {compositeSlotTypeSetting = a} :: CreateSlotTypeResponse)++-- | A timestamp of the date and time that the slot type was created.+createSlotTypeResponse_creationDateTime :: Lens.Lens' CreateSlotTypeResponse (Prelude.Maybe Prelude.UTCTime)+createSlotTypeResponse_creationDateTime = Lens.lens (\CreateSlotTypeResponse' {creationDateTime} -> creationDateTime) (\s@CreateSlotTypeResponse' {} a -> s {creationDateTime = a} :: CreateSlotTypeResponse) Prelude.. Lens.mapping Data._Time++-- | The description specified for the slot type.+createSlotTypeResponse_description :: Lens.Lens' CreateSlotTypeResponse (Prelude.Maybe Prelude.Text)+createSlotTypeResponse_description = Lens.lens (\CreateSlotTypeResponse' {description} -> description) (\s@CreateSlotTypeResponse' {} a -> s {description = a} :: CreateSlotTypeResponse)++-- | The type of external information used to create the slot type.+createSlotTypeResponse_externalSourceSetting :: Lens.Lens' CreateSlotTypeResponse (Prelude.Maybe ExternalSourceSetting)+createSlotTypeResponse_externalSourceSetting = Lens.lens (\CreateSlotTypeResponse' {externalSourceSetting} -> externalSourceSetting) (\s@CreateSlotTypeResponse' {} a -> s {externalSourceSetting = a} :: CreateSlotTypeResponse)++-- | The specified language and local specified for the slot type.+createSlotTypeResponse_localeId :: Lens.Lens' CreateSlotTypeResponse (Prelude.Maybe Prelude.Text)+createSlotTypeResponse_localeId = Lens.lens (\CreateSlotTypeResponse' {localeId} -> localeId) (\s@CreateSlotTypeResponse' {} a -> s {localeId = a} :: CreateSlotTypeResponse)++-- | The signature of the base slot type specified for the slot type.+createSlotTypeResponse_parentSlotTypeSignature :: Lens.Lens' CreateSlotTypeResponse (Prelude.Maybe Prelude.Text)+createSlotTypeResponse_parentSlotTypeSignature = Lens.lens (\CreateSlotTypeResponse' {parentSlotTypeSignature} -> parentSlotTypeSignature) (\s@CreateSlotTypeResponse' {} a -> s {parentSlotTypeSignature = a} :: CreateSlotTypeResponse)++-- | The unique identifier assigned to the slot type. Use this to identify+-- the slot type in the @UpdateSlotType@ and @DeleteSlotType@ operations.+createSlotTypeResponse_slotTypeId :: Lens.Lens' CreateSlotTypeResponse (Prelude.Maybe Prelude.Text)+createSlotTypeResponse_slotTypeId = Lens.lens (\CreateSlotTypeResponse' {slotTypeId} -> slotTypeId) (\s@CreateSlotTypeResponse' {} a -> s {slotTypeId = a} :: CreateSlotTypeResponse)++-- | The name specified for the slot type.+createSlotTypeResponse_slotTypeName :: Lens.Lens' CreateSlotTypeResponse (Prelude.Maybe Prelude.Text)+createSlotTypeResponse_slotTypeName = Lens.lens (\CreateSlotTypeResponse' {slotTypeName} -> slotTypeName) (\s@CreateSlotTypeResponse' {} a -> s {slotTypeName = a} :: CreateSlotTypeResponse)++-- | The list of values that the slot type can assume.+createSlotTypeResponse_slotTypeValues :: Lens.Lens' CreateSlotTypeResponse (Prelude.Maybe (Prelude.NonEmpty SlotTypeValue))+createSlotTypeResponse_slotTypeValues = Lens.lens (\CreateSlotTypeResponse' {slotTypeValues} -> slotTypeValues) (\s@CreateSlotTypeResponse' {} a -> s {slotTypeValues = a} :: CreateSlotTypeResponse) Prelude.. Lens.mapping Lens.coerced++-- | The strategy that Amazon Lex uses to select a value from the list of+-- possible values.+createSlotTypeResponse_valueSelectionSetting :: Lens.Lens' CreateSlotTypeResponse (Prelude.Maybe SlotValueSelectionSetting)+createSlotTypeResponse_valueSelectionSetting = Lens.lens (\CreateSlotTypeResponse' {valueSelectionSetting} -> valueSelectionSetting) (\s@CreateSlotTypeResponse' {} a -> s {valueSelectionSetting = a} :: CreateSlotTypeResponse)++-- | The response's http status code.+createSlotTypeResponse_httpStatus :: Lens.Lens' CreateSlotTypeResponse Prelude.Int+createSlotTypeResponse_httpStatus = Lens.lens (\CreateSlotTypeResponse' {httpStatus} -> httpStatus) (\s@CreateSlotTypeResponse' {} a -> s {httpStatus = a} :: CreateSlotTypeResponse)++instance Prelude.NFData CreateSlotTypeResponse where+  rnf CreateSlotTypeResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf compositeSlotTypeSetting+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf externalSourceSetting+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf parentSlotTypeSignature+      `Prelude.seq` Prelude.rnf slotTypeId+      `Prelude.seq` Prelude.rnf slotTypeName+      `Prelude.seq` Prelude.rnf slotTypeValues+      `Prelude.seq` Prelude.rnf valueSelectionSetting+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/CreateUploadUrl.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.CreateUploadUrl+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a pre-signed S3 write URL that you use to upload the zip archive+-- when importing a bot or a bot locale.+module Amazonka.LexV2Models.CreateUploadUrl+  ( -- * Creating a Request+    CreateUploadUrl (..),+    newCreateUploadUrl,++    -- * Destructuring the Response+    CreateUploadUrlResponse (..),+    newCreateUploadUrlResponse,++    -- * Response Lenses+    createUploadUrlResponse_importId,+    createUploadUrlResponse_uploadUrl,+    createUploadUrlResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateUploadUrl' smart constructor.+data CreateUploadUrl = CreateUploadUrl'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateUploadUrl' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newCreateUploadUrl ::+  CreateUploadUrl+newCreateUploadUrl = CreateUploadUrl'++instance Core.AWSRequest CreateUploadUrl where+  type+    AWSResponse CreateUploadUrl =+      CreateUploadUrlResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateUploadUrlResponse'+            Prelude.<$> (x Data..?> "importId")+            Prelude.<*> (x Data..?> "uploadUrl")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateUploadUrl where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData CreateUploadUrl where+  rnf _ = ()++instance Data.ToHeaders CreateUploadUrl where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateUploadUrl where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath CreateUploadUrl where+  toPath = Prelude.const "/createuploadurl/"++instance Data.ToQuery CreateUploadUrl where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateUploadUrlResponse' smart constructor.+data CreateUploadUrlResponse = CreateUploadUrlResponse'+  { -- | An identifier for a unique import job. Use it when you call the+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/API_StartImport.html StartImport>+    -- operation.+    importId :: Prelude.Maybe Prelude.Text,+    -- | A pre-signed S3 write URL. Upload the zip archive file that contains the+    -- definition of your bot or bot locale.+    uploadUrl :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateUploadUrlResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'importId', 'createUploadUrlResponse_importId' - An identifier for a unique import job. Use it when you call the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_StartImport.html StartImport>+-- operation.+--+-- 'uploadUrl', 'createUploadUrlResponse_uploadUrl' - A pre-signed S3 write URL. Upload the zip archive file that contains the+-- definition of your bot or bot locale.+--+-- 'httpStatus', 'createUploadUrlResponse_httpStatus' - The response's http status code.+newCreateUploadUrlResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateUploadUrlResponse+newCreateUploadUrlResponse pHttpStatus_ =+  CreateUploadUrlResponse'+    { importId =+        Prelude.Nothing,+      uploadUrl = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An identifier for a unique import job. Use it when you call the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_StartImport.html StartImport>+-- operation.+createUploadUrlResponse_importId :: Lens.Lens' CreateUploadUrlResponse (Prelude.Maybe Prelude.Text)+createUploadUrlResponse_importId = Lens.lens (\CreateUploadUrlResponse' {importId} -> importId) (\s@CreateUploadUrlResponse' {} a -> s {importId = a} :: CreateUploadUrlResponse)++-- | A pre-signed S3 write URL. Upload the zip archive file that contains the+-- definition of your bot or bot locale.+createUploadUrlResponse_uploadUrl :: Lens.Lens' CreateUploadUrlResponse (Prelude.Maybe Prelude.Text)+createUploadUrlResponse_uploadUrl = Lens.lens (\CreateUploadUrlResponse' {uploadUrl} -> uploadUrl) (\s@CreateUploadUrlResponse' {} a -> s {uploadUrl = a} :: CreateUploadUrlResponse)++-- | The response's http status code.+createUploadUrlResponse_httpStatus :: Lens.Lens' CreateUploadUrlResponse Prelude.Int+createUploadUrlResponse_httpStatus = Lens.lens (\CreateUploadUrlResponse' {httpStatus} -> httpStatus) (\s@CreateUploadUrlResponse' {} a -> s {httpStatus = a} :: CreateUploadUrlResponse)++instance Prelude.NFData CreateUploadUrlResponse where+  rnf CreateUploadUrlResponse' {..} =+    Prelude.rnf importId+      `Prelude.seq` Prelude.rnf uploadUrl+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DeleteBot.hs view
@@ -0,0 +1,203 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DeleteBot+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes all versions of a bot, including the @Draft@ version. To delete+-- a specific version, use the @DeleteBotVersion@ operation.+--+-- When you delete a bot, all of the resources contained in the bot are+-- also deleted. Deleting a bot removes all locales, intents, slot, and+-- slot types defined for the bot.+--+-- If a bot has an alias, the @DeleteBot@ operation returns a+-- @ResourceInUseException@ exception. If you want to delete the bot and+-- the alias, set the @skipResourceInUseCheck@ parameter to @true@.+module Amazonka.LexV2Models.DeleteBot+  ( -- * Creating a Request+    DeleteBot (..),+    newDeleteBot,++    -- * Request Lenses+    deleteBot_skipResourceInUseCheck,+    deleteBot_botId,++    -- * Destructuring the Response+    DeleteBotResponse (..),+    newDeleteBotResponse,++    -- * Response Lenses+    deleteBotResponse_botId,+    deleteBotResponse_botStatus,+    deleteBotResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteBot' smart constructor.+data DeleteBot = DeleteBot'+  { -- | When @true@, Amazon Lex doesn\'t check to see if another resource, such+    -- as an alias, is using the bot before it is deleted.+    skipResourceInUseCheck :: Prelude.Maybe Prelude.Bool,+    -- | The identifier of the bot to delete.+    botId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'skipResourceInUseCheck', 'deleteBot_skipResourceInUseCheck' - When @true@, Amazon Lex doesn\'t check to see if another resource, such+-- as an alias, is using the bot before it is deleted.+--+-- 'botId', 'deleteBot_botId' - The identifier of the bot to delete.+newDeleteBot ::+  -- | 'botId'+  Prelude.Text ->+  DeleteBot+newDeleteBot pBotId_ =+  DeleteBot'+    { skipResourceInUseCheck =+        Prelude.Nothing,+      botId = pBotId_+    }++-- | When @true@, Amazon Lex doesn\'t check to see if another resource, such+-- as an alias, is using the bot before it is deleted.+deleteBot_skipResourceInUseCheck :: Lens.Lens' DeleteBot (Prelude.Maybe Prelude.Bool)+deleteBot_skipResourceInUseCheck = Lens.lens (\DeleteBot' {skipResourceInUseCheck} -> skipResourceInUseCheck) (\s@DeleteBot' {} a -> s {skipResourceInUseCheck = a} :: DeleteBot)++-- | The identifier of the bot to delete.+deleteBot_botId :: Lens.Lens' DeleteBot Prelude.Text+deleteBot_botId = Lens.lens (\DeleteBot' {botId} -> botId) (\s@DeleteBot' {} a -> s {botId = a} :: DeleteBot)++instance Core.AWSRequest DeleteBot where+  type AWSResponse DeleteBot = DeleteBotResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteBotResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botStatus")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteBot where+  hashWithSalt _salt DeleteBot' {..} =+    _salt+      `Prelude.hashWithSalt` skipResourceInUseCheck+      `Prelude.hashWithSalt` botId++instance Prelude.NFData DeleteBot where+  rnf DeleteBot' {..} =+    Prelude.rnf skipResourceInUseCheck+      `Prelude.seq` Prelude.rnf botId++instance Data.ToHeaders DeleteBot where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteBot where+  toPath DeleteBot' {..} =+    Prelude.mconcat ["/bots/", Data.toBS botId, "/"]++instance Data.ToQuery DeleteBot where+  toQuery DeleteBot' {..} =+    Prelude.mconcat+      [ "skipResourceInUseCheck"+          Data.=: skipResourceInUseCheck+      ]++-- | /See:/ 'newDeleteBotResponse' smart constructor.+data DeleteBotResponse = DeleteBotResponse'+  { -- | The unique identifier of the bot that Amazon Lex is deleting.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The current status of the bot. The status is @Deleting@ while the bot+    -- and its associated resources are being deleted.+    botStatus :: Prelude.Maybe BotStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBotResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'deleteBotResponse_botId' - The unique identifier of the bot that Amazon Lex is deleting.+--+-- 'botStatus', 'deleteBotResponse_botStatus' - The current status of the bot. The status is @Deleting@ while the bot+-- and its associated resources are being deleted.+--+-- 'httpStatus', 'deleteBotResponse_httpStatus' - The response's http status code.+newDeleteBotResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteBotResponse+newDeleteBotResponse pHttpStatus_ =+  DeleteBotResponse'+    { botId = Prelude.Nothing,+      botStatus = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the bot that Amazon Lex is deleting.+deleteBotResponse_botId :: Lens.Lens' DeleteBotResponse (Prelude.Maybe Prelude.Text)+deleteBotResponse_botId = Lens.lens (\DeleteBotResponse' {botId} -> botId) (\s@DeleteBotResponse' {} a -> s {botId = a} :: DeleteBotResponse)++-- | The current status of the bot. The status is @Deleting@ while the bot+-- and its associated resources are being deleted.+deleteBotResponse_botStatus :: Lens.Lens' DeleteBotResponse (Prelude.Maybe BotStatus)+deleteBotResponse_botStatus = Lens.lens (\DeleteBotResponse' {botStatus} -> botStatus) (\s@DeleteBotResponse' {} a -> s {botStatus = a} :: DeleteBotResponse)++-- | The response's http status code.+deleteBotResponse_httpStatus :: Lens.Lens' DeleteBotResponse Prelude.Int+deleteBotResponse_httpStatus = Lens.lens (\DeleteBotResponse' {httpStatus} -> httpStatus) (\s@DeleteBotResponse' {} a -> s {httpStatus = a} :: DeleteBotResponse)++instance Prelude.NFData DeleteBotResponse where+  rnf DeleteBotResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botStatus+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DeleteBotAlias.hs view
@@ -0,0 +1,235 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DeleteBotAlias+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified bot alias.+module Amazonka.LexV2Models.DeleteBotAlias+  ( -- * Creating a Request+    DeleteBotAlias (..),+    newDeleteBotAlias,++    -- * Request Lenses+    deleteBotAlias_skipResourceInUseCheck,+    deleteBotAlias_botAliasId,+    deleteBotAlias_botId,++    -- * Destructuring the Response+    DeleteBotAliasResponse (..),+    newDeleteBotAliasResponse,++    -- * Response Lenses+    deleteBotAliasResponse_botAliasId,+    deleteBotAliasResponse_botAliasStatus,+    deleteBotAliasResponse_botId,+    deleteBotAliasResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteBotAlias' smart constructor.+data DeleteBotAlias = DeleteBotAlias'+  { -- | When this parameter is true, Amazon Lex doesn\'t check to see if any+    -- other resource is using the alias before it is deleted.+    skipResourceInUseCheck :: Prelude.Maybe Prelude.Bool,+    -- | The unique identifier of the bot alias to delete.+    botAliasId :: Prelude.Text,+    -- | The unique identifier of the bot associated with the alias to delete.+    botId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBotAlias' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'skipResourceInUseCheck', 'deleteBotAlias_skipResourceInUseCheck' - When this parameter is true, Amazon Lex doesn\'t check to see if any+-- other resource is using the alias before it is deleted.+--+-- 'botAliasId', 'deleteBotAlias_botAliasId' - The unique identifier of the bot alias to delete.+--+-- 'botId', 'deleteBotAlias_botId' - The unique identifier of the bot associated with the alias to delete.+newDeleteBotAlias ::+  -- | 'botAliasId'+  Prelude.Text ->+  -- | 'botId'+  Prelude.Text ->+  DeleteBotAlias+newDeleteBotAlias pBotAliasId_ pBotId_ =+  DeleteBotAlias'+    { skipResourceInUseCheck =+        Prelude.Nothing,+      botAliasId = pBotAliasId_,+      botId = pBotId_+    }++-- | When this parameter is true, Amazon Lex doesn\'t check to see if any+-- other resource is using the alias before it is deleted.+deleteBotAlias_skipResourceInUseCheck :: Lens.Lens' DeleteBotAlias (Prelude.Maybe Prelude.Bool)+deleteBotAlias_skipResourceInUseCheck = Lens.lens (\DeleteBotAlias' {skipResourceInUseCheck} -> skipResourceInUseCheck) (\s@DeleteBotAlias' {} a -> s {skipResourceInUseCheck = a} :: DeleteBotAlias)++-- | The unique identifier of the bot alias to delete.+deleteBotAlias_botAliasId :: Lens.Lens' DeleteBotAlias Prelude.Text+deleteBotAlias_botAliasId = Lens.lens (\DeleteBotAlias' {botAliasId} -> botAliasId) (\s@DeleteBotAlias' {} a -> s {botAliasId = a} :: DeleteBotAlias)++-- | The unique identifier of the bot associated with the alias to delete.+deleteBotAlias_botId :: Lens.Lens' DeleteBotAlias Prelude.Text+deleteBotAlias_botId = Lens.lens (\DeleteBotAlias' {botId} -> botId) (\s@DeleteBotAlias' {} a -> s {botId = a} :: DeleteBotAlias)++instance Core.AWSRequest DeleteBotAlias where+  type+    AWSResponse DeleteBotAlias =+      DeleteBotAliasResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteBotAliasResponse'+            Prelude.<$> (x Data..?> "botAliasId")+            Prelude.<*> (x Data..?> "botAliasStatus")+            Prelude.<*> (x Data..?> "botId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteBotAlias where+  hashWithSalt _salt DeleteBotAlias' {..} =+    _salt+      `Prelude.hashWithSalt` skipResourceInUseCheck+      `Prelude.hashWithSalt` botAliasId+      `Prelude.hashWithSalt` botId++instance Prelude.NFData DeleteBotAlias where+  rnf DeleteBotAlias' {..} =+    Prelude.rnf skipResourceInUseCheck+      `Prelude.seq` Prelude.rnf botAliasId+      `Prelude.seq` Prelude.rnf botId++instance Data.ToHeaders DeleteBotAlias where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteBotAlias where+  toPath DeleteBotAlias' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botaliases/",+        Data.toBS botAliasId,+        "/"+      ]++instance Data.ToQuery DeleteBotAlias where+  toQuery DeleteBotAlias' {..} =+    Prelude.mconcat+      [ "skipResourceInUseCheck"+          Data.=: skipResourceInUseCheck+      ]++-- | /See:/ 'newDeleteBotAliasResponse' smart constructor.+data DeleteBotAliasResponse = DeleteBotAliasResponse'+  { -- | The unique identifier of the bot alias to delete.+    botAliasId :: Prelude.Maybe Prelude.Text,+    -- | The current status of the alias. The status is @Deleting@ while the+    -- alias is in the process of being deleted. Once the alias is deleted, it+    -- will no longer appear in the list of aliases returned by the+    -- @ListBotAliases@ operation.+    botAliasStatus :: Prelude.Maybe BotAliasStatus,+    -- | The unique identifier of the bot that contains the alias to delete.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBotAliasResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botAliasId', 'deleteBotAliasResponse_botAliasId' - The unique identifier of the bot alias to delete.+--+-- 'botAliasStatus', 'deleteBotAliasResponse_botAliasStatus' - The current status of the alias. The status is @Deleting@ while the+-- alias is in the process of being deleted. Once the alias is deleted, it+-- will no longer appear in the list of aliases returned by the+-- @ListBotAliases@ operation.+--+-- 'botId', 'deleteBotAliasResponse_botId' - The unique identifier of the bot that contains the alias to delete.+--+-- 'httpStatus', 'deleteBotAliasResponse_httpStatus' - The response's http status code.+newDeleteBotAliasResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteBotAliasResponse+newDeleteBotAliasResponse pHttpStatus_ =+  DeleteBotAliasResponse'+    { botAliasId =+        Prelude.Nothing,+      botAliasStatus = Prelude.Nothing,+      botId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the bot alias to delete.+deleteBotAliasResponse_botAliasId :: Lens.Lens' DeleteBotAliasResponse (Prelude.Maybe Prelude.Text)+deleteBotAliasResponse_botAliasId = Lens.lens (\DeleteBotAliasResponse' {botAliasId} -> botAliasId) (\s@DeleteBotAliasResponse' {} a -> s {botAliasId = a} :: DeleteBotAliasResponse)++-- | The current status of the alias. The status is @Deleting@ while the+-- alias is in the process of being deleted. Once the alias is deleted, it+-- will no longer appear in the list of aliases returned by the+-- @ListBotAliases@ operation.+deleteBotAliasResponse_botAliasStatus :: Lens.Lens' DeleteBotAliasResponse (Prelude.Maybe BotAliasStatus)+deleteBotAliasResponse_botAliasStatus = Lens.lens (\DeleteBotAliasResponse' {botAliasStatus} -> botAliasStatus) (\s@DeleteBotAliasResponse' {} a -> s {botAliasStatus = a} :: DeleteBotAliasResponse)++-- | The unique identifier of the bot that contains the alias to delete.+deleteBotAliasResponse_botId :: Lens.Lens' DeleteBotAliasResponse (Prelude.Maybe Prelude.Text)+deleteBotAliasResponse_botId = Lens.lens (\DeleteBotAliasResponse' {botId} -> botId) (\s@DeleteBotAliasResponse' {} a -> s {botId = a} :: DeleteBotAliasResponse)++-- | The response's http status code.+deleteBotAliasResponse_httpStatus :: Lens.Lens' DeleteBotAliasResponse Prelude.Int+deleteBotAliasResponse_httpStatus = Lens.lens (\DeleteBotAliasResponse' {httpStatus} -> httpStatus) (\s@DeleteBotAliasResponse' {} a -> s {httpStatus = a} :: DeleteBotAliasResponse)++instance Prelude.NFData DeleteBotAliasResponse where+  rnf DeleteBotAliasResponse' {..} =+    Prelude.rnf botAliasId+      `Prelude.seq` Prelude.rnf botAliasStatus+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DeleteBotLocale.hs view
@@ -0,0 +1,251 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DeleteBotLocale+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes a locale from a bot.+--+-- When you delete a locale, all intents, slots, and slot types defined for+-- the locale are also deleted.+module Amazonka.LexV2Models.DeleteBotLocale+  ( -- * Creating a Request+    DeleteBotLocale (..),+    newDeleteBotLocale,++    -- * Request Lenses+    deleteBotLocale_botId,+    deleteBotLocale_botVersion,+    deleteBotLocale_localeId,++    -- * Destructuring the Response+    DeleteBotLocaleResponse (..),+    newDeleteBotLocaleResponse,++    -- * Response Lenses+    deleteBotLocaleResponse_botId,+    deleteBotLocaleResponse_botLocaleStatus,+    deleteBotLocaleResponse_botVersion,+    deleteBotLocaleResponse_localeId,+    deleteBotLocaleResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteBotLocale' smart constructor.+data DeleteBotLocale = DeleteBotLocale'+  { -- | The unique identifier of the bot that contains the locale.+    botId :: Prelude.Text,+    -- | The version of the bot that contains the locale.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale that will be deleted. The+    -- string must match one of the supported locales. For more information,+    -- see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBotLocale' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'deleteBotLocale_botId' - The unique identifier of the bot that contains the locale.+--+-- 'botVersion', 'deleteBotLocale_botVersion' - The version of the bot that contains the locale.+--+-- 'localeId', 'deleteBotLocale_localeId' - The identifier of the language and locale that will be deleted. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+newDeleteBotLocale ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  DeleteBotLocale+newDeleteBotLocale pBotId_ pBotVersion_ pLocaleId_ =+  DeleteBotLocale'+    { botId = pBotId_,+      botVersion = pBotVersion_,+      localeId = pLocaleId_+    }++-- | The unique identifier of the bot that contains the locale.+deleteBotLocale_botId :: Lens.Lens' DeleteBotLocale Prelude.Text+deleteBotLocale_botId = Lens.lens (\DeleteBotLocale' {botId} -> botId) (\s@DeleteBotLocale' {} a -> s {botId = a} :: DeleteBotLocale)++-- | The version of the bot that contains the locale.+deleteBotLocale_botVersion :: Lens.Lens' DeleteBotLocale Prelude.Text+deleteBotLocale_botVersion = Lens.lens (\DeleteBotLocale' {botVersion} -> botVersion) (\s@DeleteBotLocale' {} a -> s {botVersion = a} :: DeleteBotLocale)++-- | The identifier of the language and locale that will be deleted. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+deleteBotLocale_localeId :: Lens.Lens' DeleteBotLocale Prelude.Text+deleteBotLocale_localeId = Lens.lens (\DeleteBotLocale' {localeId} -> localeId) (\s@DeleteBotLocale' {} a -> s {localeId = a} :: DeleteBotLocale)++instance Core.AWSRequest DeleteBotLocale where+  type+    AWSResponse DeleteBotLocale =+      DeleteBotLocaleResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteBotLocaleResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botLocaleStatus")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteBotLocale where+  hashWithSalt _salt DeleteBotLocale' {..} =+    _salt+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData DeleteBotLocale where+  rnf DeleteBotLocale' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders DeleteBotLocale where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteBotLocale where+  toPath DeleteBotLocale' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/"+      ]++instance Data.ToQuery DeleteBotLocale where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteBotLocaleResponse' smart constructor.+data DeleteBotLocaleResponse = DeleteBotLocaleResponse'+  { -- | The identifier of the bot that contained the deleted locale.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The status of deleting the bot locale. The locale first enters the+    -- @Deleting@ status. Once the locale is deleted it no longer appears in+    -- the list of locales for the bot.+    botLocaleStatus :: Prelude.Maybe BotLocaleStatus,+    -- | The version of the bot that contained the deleted locale.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The language and locale of the deleted locale.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBotLocaleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'deleteBotLocaleResponse_botId' - The identifier of the bot that contained the deleted locale.+--+-- 'botLocaleStatus', 'deleteBotLocaleResponse_botLocaleStatus' - The status of deleting the bot locale. The locale first enters the+-- @Deleting@ status. Once the locale is deleted it no longer appears in+-- the list of locales for the bot.+--+-- 'botVersion', 'deleteBotLocaleResponse_botVersion' - The version of the bot that contained the deleted locale.+--+-- 'localeId', 'deleteBotLocaleResponse_localeId' - The language and locale of the deleted locale.+--+-- 'httpStatus', 'deleteBotLocaleResponse_httpStatus' - The response's http status code.+newDeleteBotLocaleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteBotLocaleResponse+newDeleteBotLocaleResponse pHttpStatus_ =+  DeleteBotLocaleResponse'+    { botId = Prelude.Nothing,+      botLocaleStatus = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      localeId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot that contained the deleted locale.+deleteBotLocaleResponse_botId :: Lens.Lens' DeleteBotLocaleResponse (Prelude.Maybe Prelude.Text)+deleteBotLocaleResponse_botId = Lens.lens (\DeleteBotLocaleResponse' {botId} -> botId) (\s@DeleteBotLocaleResponse' {} a -> s {botId = a} :: DeleteBotLocaleResponse)++-- | The status of deleting the bot locale. The locale first enters the+-- @Deleting@ status. Once the locale is deleted it no longer appears in+-- the list of locales for the bot.+deleteBotLocaleResponse_botLocaleStatus :: Lens.Lens' DeleteBotLocaleResponse (Prelude.Maybe BotLocaleStatus)+deleteBotLocaleResponse_botLocaleStatus = Lens.lens (\DeleteBotLocaleResponse' {botLocaleStatus} -> botLocaleStatus) (\s@DeleteBotLocaleResponse' {} a -> s {botLocaleStatus = a} :: DeleteBotLocaleResponse)++-- | The version of the bot that contained the deleted locale.+deleteBotLocaleResponse_botVersion :: Lens.Lens' DeleteBotLocaleResponse (Prelude.Maybe Prelude.Text)+deleteBotLocaleResponse_botVersion = Lens.lens (\DeleteBotLocaleResponse' {botVersion} -> botVersion) (\s@DeleteBotLocaleResponse' {} a -> s {botVersion = a} :: DeleteBotLocaleResponse)++-- | The language and locale of the deleted locale.+deleteBotLocaleResponse_localeId :: Lens.Lens' DeleteBotLocaleResponse (Prelude.Maybe Prelude.Text)+deleteBotLocaleResponse_localeId = Lens.lens (\DeleteBotLocaleResponse' {localeId} -> localeId) (\s@DeleteBotLocaleResponse' {} a -> s {localeId = a} :: DeleteBotLocaleResponse)++-- | The response's http status code.+deleteBotLocaleResponse_httpStatus :: Lens.Lens' DeleteBotLocaleResponse Prelude.Int+deleteBotLocaleResponse_httpStatus = Lens.lens (\DeleteBotLocaleResponse' {httpStatus} -> httpStatus) (\s@DeleteBotLocaleResponse' {} a -> s {httpStatus = a} :: DeleteBotLocaleResponse)++instance Prelude.NFData DeleteBotLocaleResponse where+  rnf DeleteBotLocaleResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botLocaleStatus+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DeleteBotVersion.hs view
@@ -0,0 +1,237 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DeleteBotVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a specific version of a bot. To delete all version of a bot, use+-- the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_DeleteBot.html DeleteBot>+-- operation.+module Amazonka.LexV2Models.DeleteBotVersion+  ( -- * Creating a Request+    DeleteBotVersion (..),+    newDeleteBotVersion,++    -- * Request Lenses+    deleteBotVersion_skipResourceInUseCheck,+    deleteBotVersion_botId,+    deleteBotVersion_botVersion,++    -- * Destructuring the Response+    DeleteBotVersionResponse (..),+    newDeleteBotVersionResponse,++    -- * Response Lenses+    deleteBotVersionResponse_botId,+    deleteBotVersionResponse_botStatus,+    deleteBotVersionResponse_botVersion,+    deleteBotVersionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteBotVersion' smart constructor.+data DeleteBotVersion = DeleteBotVersion'+  { -- | By default, the @DeleteBotVersion@ operations throws a+    -- @ResourceInUseException@ exception if you try to delete a bot version+    -- that has an alias pointing at it. Set the @skipResourceInUseCheck@+    -- parameter to @true@ to skip this check and remove the version even if an+    -- alias points to it.+    skipResourceInUseCheck :: Prelude.Maybe Prelude.Bool,+    -- | The identifier of the bot that contains the version.+    botId :: Prelude.Text,+    -- | The version of the bot to delete.+    botVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBotVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'skipResourceInUseCheck', 'deleteBotVersion_skipResourceInUseCheck' - By default, the @DeleteBotVersion@ operations throws a+-- @ResourceInUseException@ exception if you try to delete a bot version+-- that has an alias pointing at it. Set the @skipResourceInUseCheck@+-- parameter to @true@ to skip this check and remove the version even if an+-- alias points to it.+--+-- 'botId', 'deleteBotVersion_botId' - The identifier of the bot that contains the version.+--+-- 'botVersion', 'deleteBotVersion_botVersion' - The version of the bot to delete.+newDeleteBotVersion ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  DeleteBotVersion+newDeleteBotVersion pBotId_ pBotVersion_ =+  DeleteBotVersion'+    { skipResourceInUseCheck =+        Prelude.Nothing,+      botId = pBotId_,+      botVersion = pBotVersion_+    }++-- | By default, the @DeleteBotVersion@ operations throws a+-- @ResourceInUseException@ exception if you try to delete a bot version+-- that has an alias pointing at it. Set the @skipResourceInUseCheck@+-- parameter to @true@ to skip this check and remove the version even if an+-- alias points to it.+deleteBotVersion_skipResourceInUseCheck :: Lens.Lens' DeleteBotVersion (Prelude.Maybe Prelude.Bool)+deleteBotVersion_skipResourceInUseCheck = Lens.lens (\DeleteBotVersion' {skipResourceInUseCheck} -> skipResourceInUseCheck) (\s@DeleteBotVersion' {} a -> s {skipResourceInUseCheck = a} :: DeleteBotVersion)++-- | The identifier of the bot that contains the version.+deleteBotVersion_botId :: Lens.Lens' DeleteBotVersion Prelude.Text+deleteBotVersion_botId = Lens.lens (\DeleteBotVersion' {botId} -> botId) (\s@DeleteBotVersion' {} a -> s {botId = a} :: DeleteBotVersion)++-- | The version of the bot to delete.+deleteBotVersion_botVersion :: Lens.Lens' DeleteBotVersion Prelude.Text+deleteBotVersion_botVersion = Lens.lens (\DeleteBotVersion' {botVersion} -> botVersion) (\s@DeleteBotVersion' {} a -> s {botVersion = a} :: DeleteBotVersion)++instance Core.AWSRequest DeleteBotVersion where+  type+    AWSResponse DeleteBotVersion =+      DeleteBotVersionResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteBotVersionResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botStatus")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteBotVersion where+  hashWithSalt _salt DeleteBotVersion' {..} =+    _salt+      `Prelude.hashWithSalt` skipResourceInUseCheck+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion++instance Prelude.NFData DeleteBotVersion where+  rnf DeleteBotVersion' {..} =+    Prelude.rnf skipResourceInUseCheck+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion++instance Data.ToHeaders DeleteBotVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteBotVersion where+  toPath DeleteBotVersion' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/"+      ]++instance Data.ToQuery DeleteBotVersion where+  toQuery DeleteBotVersion' {..} =+    Prelude.mconcat+      [ "skipResourceInUseCheck"+          Data.=: skipResourceInUseCheck+      ]++-- | /See:/ 'newDeleteBotVersionResponse' smart constructor.+data DeleteBotVersionResponse = DeleteBotVersionResponse'+  { -- | The identifier of the bot that is being deleted.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The current status of the bot.+    botStatus :: Prelude.Maybe BotStatus,+    -- | The version of the bot that is being deleted.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteBotVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'deleteBotVersionResponse_botId' - The identifier of the bot that is being deleted.+--+-- 'botStatus', 'deleteBotVersionResponse_botStatus' - The current status of the bot.+--+-- 'botVersion', 'deleteBotVersionResponse_botVersion' - The version of the bot that is being deleted.+--+-- 'httpStatus', 'deleteBotVersionResponse_httpStatus' - The response's http status code.+newDeleteBotVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteBotVersionResponse+newDeleteBotVersionResponse pHttpStatus_ =+  DeleteBotVersionResponse'+    { botId = Prelude.Nothing,+      botStatus = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot that is being deleted.+deleteBotVersionResponse_botId :: Lens.Lens' DeleteBotVersionResponse (Prelude.Maybe Prelude.Text)+deleteBotVersionResponse_botId = Lens.lens (\DeleteBotVersionResponse' {botId} -> botId) (\s@DeleteBotVersionResponse' {} a -> s {botId = a} :: DeleteBotVersionResponse)++-- | The current status of the bot.+deleteBotVersionResponse_botStatus :: Lens.Lens' DeleteBotVersionResponse (Prelude.Maybe BotStatus)+deleteBotVersionResponse_botStatus = Lens.lens (\DeleteBotVersionResponse' {botStatus} -> botStatus) (\s@DeleteBotVersionResponse' {} a -> s {botStatus = a} :: DeleteBotVersionResponse)++-- | The version of the bot that is being deleted.+deleteBotVersionResponse_botVersion :: Lens.Lens' DeleteBotVersionResponse (Prelude.Maybe Prelude.Text)+deleteBotVersionResponse_botVersion = Lens.lens (\DeleteBotVersionResponse' {botVersion} -> botVersion) (\s@DeleteBotVersionResponse' {} a -> s {botVersion = a} :: DeleteBotVersionResponse)++-- | The response's http status code.+deleteBotVersionResponse_httpStatus :: Lens.Lens' DeleteBotVersionResponse Prelude.Int+deleteBotVersionResponse_httpStatus = Lens.lens (\DeleteBotVersionResponse' {httpStatus} -> httpStatus) (\s@DeleteBotVersionResponse' {} a -> s {httpStatus = a} :: DeleteBotVersionResponse)++instance Prelude.NFData DeleteBotVersionResponse where+  rnf DeleteBotVersionResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botStatus+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DeleteCustomVocabulary.hs view
@@ -0,0 +1,247 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DeleteCustomVocabulary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes a custom vocabulary from the specified locale in the specified+-- bot.+module Amazonka.LexV2Models.DeleteCustomVocabulary+  ( -- * Creating a Request+    DeleteCustomVocabulary (..),+    newDeleteCustomVocabulary,++    -- * Request Lenses+    deleteCustomVocabulary_botId,+    deleteCustomVocabulary_botVersion,+    deleteCustomVocabulary_localeId,++    -- * Destructuring the Response+    DeleteCustomVocabularyResponse (..),+    newDeleteCustomVocabularyResponse,++    -- * Response Lenses+    deleteCustomVocabularyResponse_botId,+    deleteCustomVocabularyResponse_botVersion,+    deleteCustomVocabularyResponse_customVocabularyStatus,+    deleteCustomVocabularyResponse_localeId,+    deleteCustomVocabularyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteCustomVocabulary' smart constructor.+data DeleteCustomVocabulary = DeleteCustomVocabulary'+  { -- | The unique identifier of the bot to remove the custom vocabulary from.+    botId :: Prelude.Text,+    -- | The version of the bot to remove the custom vocabulary from.+    botVersion :: Prelude.Text,+    -- | The locale identifier for the locale that contains the custom vocabulary+    -- to remove.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCustomVocabulary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'deleteCustomVocabulary_botId' - The unique identifier of the bot to remove the custom vocabulary from.+--+-- 'botVersion', 'deleteCustomVocabulary_botVersion' - The version of the bot to remove the custom vocabulary from.+--+-- 'localeId', 'deleteCustomVocabulary_localeId' - The locale identifier for the locale that contains the custom vocabulary+-- to remove.+newDeleteCustomVocabulary ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  DeleteCustomVocabulary+newDeleteCustomVocabulary+  pBotId_+  pBotVersion_+  pLocaleId_ =+    DeleteCustomVocabulary'+      { botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_+      }++-- | The unique identifier of the bot to remove the custom vocabulary from.+deleteCustomVocabulary_botId :: Lens.Lens' DeleteCustomVocabulary Prelude.Text+deleteCustomVocabulary_botId = Lens.lens (\DeleteCustomVocabulary' {botId} -> botId) (\s@DeleteCustomVocabulary' {} a -> s {botId = a} :: DeleteCustomVocabulary)++-- | The version of the bot to remove the custom vocabulary from.+deleteCustomVocabulary_botVersion :: Lens.Lens' DeleteCustomVocabulary Prelude.Text+deleteCustomVocabulary_botVersion = Lens.lens (\DeleteCustomVocabulary' {botVersion} -> botVersion) (\s@DeleteCustomVocabulary' {} a -> s {botVersion = a} :: DeleteCustomVocabulary)++-- | The locale identifier for the locale that contains the custom vocabulary+-- to remove.+deleteCustomVocabulary_localeId :: Lens.Lens' DeleteCustomVocabulary Prelude.Text+deleteCustomVocabulary_localeId = Lens.lens (\DeleteCustomVocabulary' {localeId} -> localeId) (\s@DeleteCustomVocabulary' {} a -> s {localeId = a} :: DeleteCustomVocabulary)++instance Core.AWSRequest DeleteCustomVocabulary where+  type+    AWSResponse DeleteCustomVocabulary =+      DeleteCustomVocabularyResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteCustomVocabularyResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "customVocabularyStatus")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteCustomVocabulary where+  hashWithSalt _salt DeleteCustomVocabulary' {..} =+    _salt+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData DeleteCustomVocabulary where+  rnf DeleteCustomVocabulary' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders DeleteCustomVocabulary where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteCustomVocabulary where+  toPath DeleteCustomVocabulary' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/customvocabulary"+      ]++instance Data.ToQuery DeleteCustomVocabulary where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteCustomVocabularyResponse' smart constructor.+data DeleteCustomVocabularyResponse = DeleteCustomVocabularyResponse'+  { -- | The identifier of the bot that the custom vocabulary was removed from.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot that the custom vocabulary was removed from.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The status of removing the custom vocabulary.+    customVocabularyStatus :: Prelude.Maybe CustomVocabularyStatus,+    -- | The locale identifier for the locale that the custom vocabulary was+    -- removed from.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCustomVocabularyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'deleteCustomVocabularyResponse_botId' - The identifier of the bot that the custom vocabulary was removed from.+--+-- 'botVersion', 'deleteCustomVocabularyResponse_botVersion' - The version of the bot that the custom vocabulary was removed from.+--+-- 'customVocabularyStatus', 'deleteCustomVocabularyResponse_customVocabularyStatus' - The status of removing the custom vocabulary.+--+-- 'localeId', 'deleteCustomVocabularyResponse_localeId' - The locale identifier for the locale that the custom vocabulary was+-- removed from.+--+-- 'httpStatus', 'deleteCustomVocabularyResponse_httpStatus' - The response's http status code.+newDeleteCustomVocabularyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteCustomVocabularyResponse+newDeleteCustomVocabularyResponse pHttpStatus_ =+  DeleteCustomVocabularyResponse'+    { botId =+        Prelude.Nothing,+      botVersion = Prelude.Nothing,+      customVocabularyStatus = Prelude.Nothing,+      localeId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot that the custom vocabulary was removed from.+deleteCustomVocabularyResponse_botId :: Lens.Lens' DeleteCustomVocabularyResponse (Prelude.Maybe Prelude.Text)+deleteCustomVocabularyResponse_botId = Lens.lens (\DeleteCustomVocabularyResponse' {botId} -> botId) (\s@DeleteCustomVocabularyResponse' {} a -> s {botId = a} :: DeleteCustomVocabularyResponse)++-- | The version of the bot that the custom vocabulary was removed from.+deleteCustomVocabularyResponse_botVersion :: Lens.Lens' DeleteCustomVocabularyResponse (Prelude.Maybe Prelude.Text)+deleteCustomVocabularyResponse_botVersion = Lens.lens (\DeleteCustomVocabularyResponse' {botVersion} -> botVersion) (\s@DeleteCustomVocabularyResponse' {} a -> s {botVersion = a} :: DeleteCustomVocabularyResponse)++-- | The status of removing the custom vocabulary.+deleteCustomVocabularyResponse_customVocabularyStatus :: Lens.Lens' DeleteCustomVocabularyResponse (Prelude.Maybe CustomVocabularyStatus)+deleteCustomVocabularyResponse_customVocabularyStatus = Lens.lens (\DeleteCustomVocabularyResponse' {customVocabularyStatus} -> customVocabularyStatus) (\s@DeleteCustomVocabularyResponse' {} a -> s {customVocabularyStatus = a} :: DeleteCustomVocabularyResponse)++-- | The locale identifier for the locale that the custom vocabulary was+-- removed from.+deleteCustomVocabularyResponse_localeId :: Lens.Lens' DeleteCustomVocabularyResponse (Prelude.Maybe Prelude.Text)+deleteCustomVocabularyResponse_localeId = Lens.lens (\DeleteCustomVocabularyResponse' {localeId} -> localeId) (\s@DeleteCustomVocabularyResponse' {} a -> s {localeId = a} :: DeleteCustomVocabularyResponse)++-- | The response's http status code.+deleteCustomVocabularyResponse_httpStatus :: Lens.Lens' DeleteCustomVocabularyResponse Prelude.Int+deleteCustomVocabularyResponse_httpStatus = Lens.lens (\DeleteCustomVocabularyResponse' {httpStatus} -> httpStatus) (\s@DeleteCustomVocabularyResponse' {} a -> s {httpStatus = a} :: DeleteCustomVocabularyResponse)++instance+  Prelude.NFData+    DeleteCustomVocabularyResponse+  where+  rnf DeleteCustomVocabularyResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf customVocabularyStatus+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DeleteExport.hs view
@@ -0,0 +1,184 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DeleteExport+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes a previous export and the associated files stored in an S3+-- bucket.+module Amazonka.LexV2Models.DeleteExport+  ( -- * Creating a Request+    DeleteExport (..),+    newDeleteExport,++    -- * Request Lenses+    deleteExport_exportId,++    -- * Destructuring the Response+    DeleteExportResponse (..),+    newDeleteExportResponse,++    -- * Response Lenses+    deleteExportResponse_exportId,+    deleteExportResponse_exportStatus,+    deleteExportResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteExport' smart constructor.+data DeleteExport = DeleteExport'+  { -- | The unique identifier of the export to delete.+    exportId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteExport' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exportId', 'deleteExport_exportId' - The unique identifier of the export to delete.+newDeleteExport ::+  -- | 'exportId'+  Prelude.Text ->+  DeleteExport+newDeleteExport pExportId_ =+  DeleteExport' {exportId = pExportId_}++-- | The unique identifier of the export to delete.+deleteExport_exportId :: Lens.Lens' DeleteExport Prelude.Text+deleteExport_exportId = Lens.lens (\DeleteExport' {exportId} -> exportId) (\s@DeleteExport' {} a -> s {exportId = a} :: DeleteExport)++instance Core.AWSRequest DeleteExport where+  type AWSResponse DeleteExport = DeleteExportResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteExportResponse'+            Prelude.<$> (x Data..?> "exportId")+            Prelude.<*> (x Data..?> "exportStatus")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteExport where+  hashWithSalt _salt DeleteExport' {..} =+    _salt `Prelude.hashWithSalt` exportId++instance Prelude.NFData DeleteExport where+  rnf DeleteExport' {..} = Prelude.rnf exportId++instance Data.ToHeaders DeleteExport where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteExport where+  toPath DeleteExport' {..} =+    Prelude.mconcat+      ["/exports/", Data.toBS exportId, "/"]++instance Data.ToQuery DeleteExport where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteExportResponse' smart constructor.+data DeleteExportResponse = DeleteExportResponse'+  { -- | The unique identifier of the deleted export.+    exportId :: Prelude.Maybe Prelude.Text,+    -- | The current status of the deletion. When the deletion is complete, the+    -- export will no longer be returned by the+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/API_ListExports.html ListExports>+    -- operation and calls to the+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/API_DescribeExport.html DescribeExport>+    -- operation with the export identifier will fail.+    exportStatus :: Prelude.Maybe ExportStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteExportResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exportId', 'deleteExportResponse_exportId' - The unique identifier of the deleted export.+--+-- 'exportStatus', 'deleteExportResponse_exportStatus' - The current status of the deletion. When the deletion is complete, the+-- export will no longer be returned by the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_ListExports.html ListExports>+-- operation and calls to the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_DescribeExport.html DescribeExport>+-- operation with the export identifier will fail.+--+-- 'httpStatus', 'deleteExportResponse_httpStatus' - The response's http status code.+newDeleteExportResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteExportResponse+newDeleteExportResponse pHttpStatus_ =+  DeleteExportResponse'+    { exportId = Prelude.Nothing,+      exportStatus = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the deleted export.+deleteExportResponse_exportId :: Lens.Lens' DeleteExportResponse (Prelude.Maybe Prelude.Text)+deleteExportResponse_exportId = Lens.lens (\DeleteExportResponse' {exportId} -> exportId) (\s@DeleteExportResponse' {} a -> s {exportId = a} :: DeleteExportResponse)++-- | The current status of the deletion. When the deletion is complete, the+-- export will no longer be returned by the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_ListExports.html ListExports>+-- operation and calls to the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_DescribeExport.html DescribeExport>+-- operation with the export identifier will fail.+deleteExportResponse_exportStatus :: Lens.Lens' DeleteExportResponse (Prelude.Maybe ExportStatus)+deleteExportResponse_exportStatus = Lens.lens (\DeleteExportResponse' {exportStatus} -> exportStatus) (\s@DeleteExportResponse' {} a -> s {exportStatus = a} :: DeleteExportResponse)++-- | The response's http status code.+deleteExportResponse_httpStatus :: Lens.Lens' DeleteExportResponse Prelude.Int+deleteExportResponse_httpStatus = Lens.lens (\DeleteExportResponse' {httpStatus} -> httpStatus) (\s@DeleteExportResponse' {} a -> s {httpStatus = a} :: DeleteExportResponse)++instance Prelude.NFData DeleteExportResponse where+  rnf DeleteExportResponse' {..} =+    Prelude.rnf exportId+      `Prelude.seq` Prelude.rnf exportStatus+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DeleteImport.hs view
@@ -0,0 +1,184 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DeleteImport+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes a previous import and the associated file stored in an S3+-- bucket.+module Amazonka.LexV2Models.DeleteImport+  ( -- * Creating a Request+    DeleteImport (..),+    newDeleteImport,++    -- * Request Lenses+    deleteImport_importId,++    -- * Destructuring the Response+    DeleteImportResponse (..),+    newDeleteImportResponse,++    -- * Response Lenses+    deleteImportResponse_importId,+    deleteImportResponse_importStatus,+    deleteImportResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteImport' smart constructor.+data DeleteImport = DeleteImport'+  { -- | The unique identifier of the import to delete.+    importId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteImport' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'importId', 'deleteImport_importId' - The unique identifier of the import to delete.+newDeleteImport ::+  -- | 'importId'+  Prelude.Text ->+  DeleteImport+newDeleteImport pImportId_ =+  DeleteImport' {importId = pImportId_}++-- | The unique identifier of the import to delete.+deleteImport_importId :: Lens.Lens' DeleteImport Prelude.Text+deleteImport_importId = Lens.lens (\DeleteImport' {importId} -> importId) (\s@DeleteImport' {} a -> s {importId = a} :: DeleteImport)++instance Core.AWSRequest DeleteImport where+  type AWSResponse DeleteImport = DeleteImportResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteImportResponse'+            Prelude.<$> (x Data..?> "importId")+            Prelude.<*> (x Data..?> "importStatus")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteImport where+  hashWithSalt _salt DeleteImport' {..} =+    _salt `Prelude.hashWithSalt` importId++instance Prelude.NFData DeleteImport where+  rnf DeleteImport' {..} = Prelude.rnf importId++instance Data.ToHeaders DeleteImport where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteImport where+  toPath DeleteImport' {..} =+    Prelude.mconcat+      ["/imports/", Data.toBS importId, "/"]++instance Data.ToQuery DeleteImport where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteImportResponse' smart constructor.+data DeleteImportResponse = DeleteImportResponse'+  { -- | The unique identifier of the deleted import.+    importId :: Prelude.Maybe Prelude.Text,+    -- | The current status of the deletion. When the deletion is complete, the+    -- import will no longer be returned by the+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/API_ListImports.html ListImports>+    -- operation and calls to the+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/API_DescribeImport.html DescribeImport>+    -- operation with the import identifier will fail.+    importStatus :: Prelude.Maybe ImportStatus,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteImportResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'importId', 'deleteImportResponse_importId' - The unique identifier of the deleted import.+--+-- 'importStatus', 'deleteImportResponse_importStatus' - The current status of the deletion. When the deletion is complete, the+-- import will no longer be returned by the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_ListImports.html ListImports>+-- operation and calls to the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_DescribeImport.html DescribeImport>+-- operation with the import identifier will fail.+--+-- 'httpStatus', 'deleteImportResponse_httpStatus' - The response's http status code.+newDeleteImportResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteImportResponse+newDeleteImportResponse pHttpStatus_ =+  DeleteImportResponse'+    { importId = Prelude.Nothing,+      importStatus = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the deleted import.+deleteImportResponse_importId :: Lens.Lens' DeleteImportResponse (Prelude.Maybe Prelude.Text)+deleteImportResponse_importId = Lens.lens (\DeleteImportResponse' {importId} -> importId) (\s@DeleteImportResponse' {} a -> s {importId = a} :: DeleteImportResponse)++-- | The current status of the deletion. When the deletion is complete, the+-- import will no longer be returned by the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_ListImports.html ListImports>+-- operation and calls to the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_DescribeImport.html DescribeImport>+-- operation with the import identifier will fail.+deleteImportResponse_importStatus :: Lens.Lens' DeleteImportResponse (Prelude.Maybe ImportStatus)+deleteImportResponse_importStatus = Lens.lens (\DeleteImportResponse' {importStatus} -> importStatus) (\s@DeleteImportResponse' {} a -> s {importStatus = a} :: DeleteImportResponse)++-- | The response's http status code.+deleteImportResponse_httpStatus :: Lens.Lens' DeleteImportResponse Prelude.Int+deleteImportResponse_httpStatus = Lens.lens (\DeleteImportResponse' {httpStatus} -> httpStatus) (\s@DeleteImportResponse' {} a -> s {httpStatus = a} :: DeleteImportResponse)++instance Prelude.NFData DeleteImportResponse where+  rnf DeleteImportResponse' {..} =+    Prelude.rnf importId+      `Prelude.seq` Prelude.rnf importStatus+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DeleteIntent.hs view
@@ -0,0 +1,190 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DeleteIntent+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes the specified intent.+--+-- Deleting an intent also deletes the slots associated with the intent.+module Amazonka.LexV2Models.DeleteIntent+  ( -- * Creating a Request+    DeleteIntent (..),+    newDeleteIntent,++    -- * Request Lenses+    deleteIntent_intentId,+    deleteIntent_botId,+    deleteIntent_botVersion,+    deleteIntent_localeId,++    -- * Destructuring the Response+    DeleteIntentResponse (..),+    newDeleteIntentResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteIntent' smart constructor.+data DeleteIntent = DeleteIntent'+  { -- | The unique identifier of the intent to delete.+    intentId :: Prelude.Text,+    -- | The identifier of the bot associated with the intent.+    botId :: Prelude.Text,+    -- | The version of the bot associated with the intent.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale where the bot will be deleted.+    -- The string must match one of the supported locales. For more+    -- information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteIntent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'intentId', 'deleteIntent_intentId' - The unique identifier of the intent to delete.+--+-- 'botId', 'deleteIntent_botId' - The identifier of the bot associated with the intent.+--+-- 'botVersion', 'deleteIntent_botVersion' - The version of the bot associated with the intent.+--+-- 'localeId', 'deleteIntent_localeId' - The identifier of the language and locale where the bot will be deleted.+-- The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+newDeleteIntent ::+  -- | 'intentId'+  Prelude.Text ->+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  DeleteIntent+newDeleteIntent+  pIntentId_+  pBotId_+  pBotVersion_+  pLocaleId_ =+    DeleteIntent'+      { intentId = pIntentId_,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_+      }++-- | The unique identifier of the intent to delete.+deleteIntent_intentId :: Lens.Lens' DeleteIntent Prelude.Text+deleteIntent_intentId = Lens.lens (\DeleteIntent' {intentId} -> intentId) (\s@DeleteIntent' {} a -> s {intentId = a} :: DeleteIntent)++-- | The identifier of the bot associated with the intent.+deleteIntent_botId :: Lens.Lens' DeleteIntent Prelude.Text+deleteIntent_botId = Lens.lens (\DeleteIntent' {botId} -> botId) (\s@DeleteIntent' {} a -> s {botId = a} :: DeleteIntent)++-- | The version of the bot associated with the intent.+deleteIntent_botVersion :: Lens.Lens' DeleteIntent Prelude.Text+deleteIntent_botVersion = Lens.lens (\DeleteIntent' {botVersion} -> botVersion) (\s@DeleteIntent' {} a -> s {botVersion = a} :: DeleteIntent)++-- | The identifier of the language and locale where the bot will be deleted.+-- The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+deleteIntent_localeId :: Lens.Lens' DeleteIntent Prelude.Text+deleteIntent_localeId = Lens.lens (\DeleteIntent' {localeId} -> localeId) (\s@DeleteIntent' {} a -> s {localeId = a} :: DeleteIntent)++instance Core.AWSRequest DeleteIntent where+  type AWSResponse DeleteIntent = DeleteIntentResponse+  request overrides =+    Request.delete (overrides defaultService)+  response = Response.receiveNull DeleteIntentResponse'++instance Prelude.Hashable DeleteIntent where+  hashWithSalt _salt DeleteIntent' {..} =+    _salt+      `Prelude.hashWithSalt` intentId+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData DeleteIntent where+  rnf DeleteIntent' {..} =+    Prelude.rnf intentId+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders DeleteIntent where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteIntent where+  toPath DeleteIntent' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/intents/",+        Data.toBS intentId,+        "/"+      ]++instance Data.ToQuery DeleteIntent where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteIntentResponse' smart constructor.+data DeleteIntentResponse = DeleteIntentResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteIntentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteIntentResponse ::+  DeleteIntentResponse+newDeleteIntentResponse = DeleteIntentResponse'++instance Prelude.NFData DeleteIntentResponse where+  rnf _ = ()
+ gen/Amazonka/LexV2Models/DeleteResourcePolicy.hs view
@@ -0,0 +1,218 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DeleteResourcePolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes an existing policy from a bot or bot alias. If the resource+-- doesn\'t have a policy attached, Amazon Lex returns an exception.+module Amazonka.LexV2Models.DeleteResourcePolicy+  ( -- * Creating a Request+    DeleteResourcePolicy (..),+    newDeleteResourcePolicy,++    -- * Request Lenses+    deleteResourcePolicy_expectedRevisionId,+    deleteResourcePolicy_resourceArn,++    -- * Destructuring the Response+    DeleteResourcePolicyResponse (..),+    newDeleteResourcePolicyResponse,++    -- * Response Lenses+    deleteResourcePolicyResponse_resourceArn,+    deleteResourcePolicyResponse_revisionId,+    deleteResourcePolicyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteResourcePolicy' smart constructor.+data DeleteResourcePolicy = DeleteResourcePolicy'+  { -- | The identifier of the revision to edit. If this ID doesn\'t match the+    -- current revision number, Amazon Lex returns an exception+    --+    -- If you don\'t specify a revision ID, Amazon Lex will delete the current+    -- policy.+    expectedRevisionId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the bot or bot alias that has the+    -- resource policy attached.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteResourcePolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'expectedRevisionId', 'deleteResourcePolicy_expectedRevisionId' - The identifier of the revision to edit. If this ID doesn\'t match the+-- current revision number, Amazon Lex returns an exception+--+-- If you don\'t specify a revision ID, Amazon Lex will delete the current+-- policy.+--+-- 'resourceArn', 'deleteResourcePolicy_resourceArn' - The Amazon Resource Name (ARN) of the bot or bot alias that has the+-- resource policy attached.+newDeleteResourcePolicy ::+  -- | 'resourceArn'+  Prelude.Text ->+  DeleteResourcePolicy+newDeleteResourcePolicy pResourceArn_ =+  DeleteResourcePolicy'+    { expectedRevisionId =+        Prelude.Nothing,+      resourceArn = pResourceArn_+    }++-- | The identifier of the revision to edit. If this ID doesn\'t match the+-- current revision number, Amazon Lex returns an exception+--+-- If you don\'t specify a revision ID, Amazon Lex will delete the current+-- policy.+deleteResourcePolicy_expectedRevisionId :: Lens.Lens' DeleteResourcePolicy (Prelude.Maybe Prelude.Text)+deleteResourcePolicy_expectedRevisionId = Lens.lens (\DeleteResourcePolicy' {expectedRevisionId} -> expectedRevisionId) (\s@DeleteResourcePolicy' {} a -> s {expectedRevisionId = a} :: DeleteResourcePolicy)++-- | The Amazon Resource Name (ARN) of the bot or bot alias that has the+-- resource policy attached.+deleteResourcePolicy_resourceArn :: Lens.Lens' DeleteResourcePolicy Prelude.Text+deleteResourcePolicy_resourceArn = Lens.lens (\DeleteResourcePolicy' {resourceArn} -> resourceArn) (\s@DeleteResourcePolicy' {} a -> s {resourceArn = a} :: DeleteResourcePolicy)++instance Core.AWSRequest DeleteResourcePolicy where+  type+    AWSResponse DeleteResourcePolicy =+      DeleteResourcePolicyResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteResourcePolicyResponse'+            Prelude.<$> (x Data..?> "resourceArn")+            Prelude.<*> (x Data..?> "revisionId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteResourcePolicy where+  hashWithSalt _salt DeleteResourcePolicy' {..} =+    _salt+      `Prelude.hashWithSalt` expectedRevisionId+      `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData DeleteResourcePolicy where+  rnf DeleteResourcePolicy' {..} =+    Prelude.rnf expectedRevisionId+      `Prelude.seq` Prelude.rnf resourceArn++instance Data.ToHeaders DeleteResourcePolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteResourcePolicy where+  toPath DeleteResourcePolicy' {..} =+    Prelude.mconcat+      ["/policy/", Data.toBS resourceArn, "/"]++instance Data.ToQuery DeleteResourcePolicy where+  toQuery DeleteResourcePolicy' {..} =+    Prelude.mconcat+      ["expectedRevisionId" Data.=: expectedRevisionId]++-- | /See:/ 'newDeleteResourcePolicyResponse' smart constructor.+data DeleteResourcePolicyResponse = DeleteResourcePolicyResponse'+  { -- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+    -- policy was deleted from.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | The current revision of the resource policy. Use the revision ID to make+    -- sure that you are updating the most current version of a resource policy+    -- when you add a policy statement to a resource, delete a resource, or+    -- update a resource.+    revisionId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteResourcePolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'deleteResourcePolicyResponse_resourceArn' - The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy was deleted from.+--+-- 'revisionId', 'deleteResourcePolicyResponse_revisionId' - The current revision of the resource policy. Use the revision ID to make+-- sure that you are updating the most current version of a resource policy+-- when you add a policy statement to a resource, delete a resource, or+-- update a resource.+--+-- 'httpStatus', 'deleteResourcePolicyResponse_httpStatus' - The response's http status code.+newDeleteResourcePolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteResourcePolicyResponse+newDeleteResourcePolicyResponse pHttpStatus_ =+  DeleteResourcePolicyResponse'+    { resourceArn =+        Prelude.Nothing,+      revisionId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy was deleted from.+deleteResourcePolicyResponse_resourceArn :: Lens.Lens' DeleteResourcePolicyResponse (Prelude.Maybe Prelude.Text)+deleteResourcePolicyResponse_resourceArn = Lens.lens (\DeleteResourcePolicyResponse' {resourceArn} -> resourceArn) (\s@DeleteResourcePolicyResponse' {} a -> s {resourceArn = a} :: DeleteResourcePolicyResponse)++-- | The current revision of the resource policy. Use the revision ID to make+-- sure that you are updating the most current version of a resource policy+-- when you add a policy statement to a resource, delete a resource, or+-- update a resource.+deleteResourcePolicyResponse_revisionId :: Lens.Lens' DeleteResourcePolicyResponse (Prelude.Maybe Prelude.Text)+deleteResourcePolicyResponse_revisionId = Lens.lens (\DeleteResourcePolicyResponse' {revisionId} -> revisionId) (\s@DeleteResourcePolicyResponse' {} a -> s {revisionId = a} :: DeleteResourcePolicyResponse)++-- | The response's http status code.+deleteResourcePolicyResponse_httpStatus :: Lens.Lens' DeleteResourcePolicyResponse Prelude.Int+deleteResourcePolicyResponse_httpStatus = Lens.lens (\DeleteResourcePolicyResponse' {httpStatus} -> httpStatus) (\s@DeleteResourcePolicyResponse' {} a -> s {httpStatus = a} :: DeleteResourcePolicyResponse)++instance Prelude.NFData DeleteResourcePolicyResponse where+  rnf DeleteResourcePolicyResponse' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DeleteResourcePolicyStatement.hs view
@@ -0,0 +1,253 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DeleteResourcePolicyStatement+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a policy statement from a resource policy. If you delete the+-- last statement from a policy, the policy is deleted. If you specify a+-- statement ID that doesn\'t exist in the policy, or if the bot or bot+-- alias doesn\'t have a policy attached, Amazon Lex returns an exception.+module Amazonka.LexV2Models.DeleteResourcePolicyStatement+  ( -- * Creating a Request+    DeleteResourcePolicyStatement (..),+    newDeleteResourcePolicyStatement,++    -- * Request Lenses+    deleteResourcePolicyStatement_expectedRevisionId,+    deleteResourcePolicyStatement_resourceArn,+    deleteResourcePolicyStatement_statementId,++    -- * Destructuring the Response+    DeleteResourcePolicyStatementResponse (..),+    newDeleteResourcePolicyStatementResponse,++    -- * Response Lenses+    deleteResourcePolicyStatementResponse_resourceArn,+    deleteResourcePolicyStatementResponse_revisionId,+    deleteResourcePolicyStatementResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteResourcePolicyStatement' smart constructor.+data DeleteResourcePolicyStatement = DeleteResourcePolicyStatement'+  { -- | The identifier of the revision of the policy to delete the statement+    -- from. If this revision ID doesn\'t match the current revision ID, Amazon+    -- Lex throws an exception.+    --+    -- If you don\'t specify a revision, Amazon Lex removes the current+    -- contents of the statement.+    expectedRevisionId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+    -- policy is attached to.+    resourceArn :: Prelude.Text,+    -- | The name of the statement (SID) to delete from the policy.+    statementId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteResourcePolicyStatement' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'expectedRevisionId', 'deleteResourcePolicyStatement_expectedRevisionId' - The identifier of the revision of the policy to delete the statement+-- from. If this revision ID doesn\'t match the current revision ID, Amazon+-- Lex throws an exception.+--+-- If you don\'t specify a revision, Amazon Lex removes the current+-- contents of the statement.+--+-- 'resourceArn', 'deleteResourcePolicyStatement_resourceArn' - The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy is attached to.+--+-- 'statementId', 'deleteResourcePolicyStatement_statementId' - The name of the statement (SID) to delete from the policy.+newDeleteResourcePolicyStatement ::+  -- | 'resourceArn'+  Prelude.Text ->+  -- | 'statementId'+  Prelude.Text ->+  DeleteResourcePolicyStatement+newDeleteResourcePolicyStatement+  pResourceArn_+  pStatementId_ =+    DeleteResourcePolicyStatement'+      { expectedRevisionId =+          Prelude.Nothing,+        resourceArn = pResourceArn_,+        statementId = pStatementId_+      }++-- | The identifier of the revision of the policy to delete the statement+-- from. If this revision ID doesn\'t match the current revision ID, Amazon+-- Lex throws an exception.+--+-- If you don\'t specify a revision, Amazon Lex removes the current+-- contents of the statement.+deleteResourcePolicyStatement_expectedRevisionId :: Lens.Lens' DeleteResourcePolicyStatement (Prelude.Maybe Prelude.Text)+deleteResourcePolicyStatement_expectedRevisionId = Lens.lens (\DeleteResourcePolicyStatement' {expectedRevisionId} -> expectedRevisionId) (\s@DeleteResourcePolicyStatement' {} a -> s {expectedRevisionId = a} :: DeleteResourcePolicyStatement)++-- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy is attached to.+deleteResourcePolicyStatement_resourceArn :: Lens.Lens' DeleteResourcePolicyStatement Prelude.Text+deleteResourcePolicyStatement_resourceArn = Lens.lens (\DeleteResourcePolicyStatement' {resourceArn} -> resourceArn) (\s@DeleteResourcePolicyStatement' {} a -> s {resourceArn = a} :: DeleteResourcePolicyStatement)++-- | The name of the statement (SID) to delete from the policy.+deleteResourcePolicyStatement_statementId :: Lens.Lens' DeleteResourcePolicyStatement Prelude.Text+deleteResourcePolicyStatement_statementId = Lens.lens (\DeleteResourcePolicyStatement' {statementId} -> statementId) (\s@DeleteResourcePolicyStatement' {} a -> s {statementId = a} :: DeleteResourcePolicyStatement)++instance+  Core.AWSRequest+    DeleteResourcePolicyStatement+  where+  type+    AWSResponse DeleteResourcePolicyStatement =+      DeleteResourcePolicyStatementResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteResourcePolicyStatementResponse'+            Prelude.<$> (x Data..?> "resourceArn")+            Prelude.<*> (x Data..?> "revisionId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DeleteResourcePolicyStatement+  where+  hashWithSalt _salt DeleteResourcePolicyStatement' {..} =+    _salt+      `Prelude.hashWithSalt` expectedRevisionId+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` statementId++instance Prelude.NFData DeleteResourcePolicyStatement where+  rnf DeleteResourcePolicyStatement' {..} =+    Prelude.rnf expectedRevisionId+      `Prelude.seq` Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf statementId++instance Data.ToHeaders DeleteResourcePolicyStatement where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteResourcePolicyStatement where+  toPath DeleteResourcePolicyStatement' {..} =+    Prelude.mconcat+      [ "/policy/",+        Data.toBS resourceArn,+        "/statements/",+        Data.toBS statementId,+        "/"+      ]++instance Data.ToQuery DeleteResourcePolicyStatement where+  toQuery DeleteResourcePolicyStatement' {..} =+    Prelude.mconcat+      ["expectedRevisionId" Data.=: expectedRevisionId]++-- | /See:/ 'newDeleteResourcePolicyStatementResponse' smart constructor.+data DeleteResourcePolicyStatementResponse = DeleteResourcePolicyStatementResponse'+  { -- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+    -- policy statement was removed from.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | The current revision of the resource policy. Use the revision ID to make+    -- sure that you are updating the most current version of a resource policy+    -- when you add a policy statement to a resource, delete a resource, or+    -- update a resource.+    revisionId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteResourcePolicyStatementResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'deleteResourcePolicyStatementResponse_resourceArn' - The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy statement was removed from.+--+-- 'revisionId', 'deleteResourcePolicyStatementResponse_revisionId' - The current revision of the resource policy. Use the revision ID to make+-- sure that you are updating the most current version of a resource policy+-- when you add a policy statement to a resource, delete a resource, or+-- update a resource.+--+-- 'httpStatus', 'deleteResourcePolicyStatementResponse_httpStatus' - The response's http status code.+newDeleteResourcePolicyStatementResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteResourcePolicyStatementResponse+newDeleteResourcePolicyStatementResponse pHttpStatus_ =+  DeleteResourcePolicyStatementResponse'+    { resourceArn =+        Prelude.Nothing,+      revisionId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy statement was removed from.+deleteResourcePolicyStatementResponse_resourceArn :: Lens.Lens' DeleteResourcePolicyStatementResponse (Prelude.Maybe Prelude.Text)+deleteResourcePolicyStatementResponse_resourceArn = Lens.lens (\DeleteResourcePolicyStatementResponse' {resourceArn} -> resourceArn) (\s@DeleteResourcePolicyStatementResponse' {} a -> s {resourceArn = a} :: DeleteResourcePolicyStatementResponse)++-- | The current revision of the resource policy. Use the revision ID to make+-- sure that you are updating the most current version of a resource policy+-- when you add a policy statement to a resource, delete a resource, or+-- update a resource.+deleteResourcePolicyStatementResponse_revisionId :: Lens.Lens' DeleteResourcePolicyStatementResponse (Prelude.Maybe Prelude.Text)+deleteResourcePolicyStatementResponse_revisionId = Lens.lens (\DeleteResourcePolicyStatementResponse' {revisionId} -> revisionId) (\s@DeleteResourcePolicyStatementResponse' {} a -> s {revisionId = a} :: DeleteResourcePolicyStatementResponse)++-- | The response's http status code.+deleteResourcePolicyStatementResponse_httpStatus :: Lens.Lens' DeleteResourcePolicyStatementResponse Prelude.Int+deleteResourcePolicyStatementResponse_httpStatus = Lens.lens (\DeleteResourcePolicyStatementResponse' {httpStatus} -> httpStatus) (\s@DeleteResourcePolicyStatementResponse' {} a -> s {httpStatus = a} :: DeleteResourcePolicyStatementResponse)++instance+  Prelude.NFData+    DeleteResourcePolicyStatementResponse+  where+  rnf DeleteResourcePolicyStatementResponse' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DeleteSlot.hs view
@@ -0,0 +1,205 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DeleteSlot+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified slot from an intent.+module Amazonka.LexV2Models.DeleteSlot+  ( -- * Creating a Request+    DeleteSlot (..),+    newDeleteSlot,++    -- * Request Lenses+    deleteSlot_slotId,+    deleteSlot_botId,+    deleteSlot_botVersion,+    deleteSlot_localeId,+    deleteSlot_intentId,++    -- * Destructuring the Response+    DeleteSlotResponse (..),+    newDeleteSlotResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteSlot' smart constructor.+data DeleteSlot = DeleteSlot'+  { -- | The identifier of the slot to delete.+    slotId :: Prelude.Text,+    -- | The identifier of the bot associated with the slot to delete.+    botId :: Prelude.Text,+    -- | The version of the bot associated with the slot to delete.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale that the slot will be deleted+    -- from. The string must match one of the supported locales. For more+    -- information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text,+    -- | The identifier of the intent associated with the slot.+    intentId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSlot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'slotId', 'deleteSlot_slotId' - The identifier of the slot to delete.+--+-- 'botId', 'deleteSlot_botId' - The identifier of the bot associated with the slot to delete.+--+-- 'botVersion', 'deleteSlot_botVersion' - The version of the bot associated with the slot to delete.+--+-- 'localeId', 'deleteSlot_localeId' - The identifier of the language and locale that the slot will be deleted+-- from. The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+--+-- 'intentId', 'deleteSlot_intentId' - The identifier of the intent associated with the slot.+newDeleteSlot ::+  -- | 'slotId'+  Prelude.Text ->+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  -- | 'intentId'+  Prelude.Text ->+  DeleteSlot+newDeleteSlot+  pSlotId_+  pBotId_+  pBotVersion_+  pLocaleId_+  pIntentId_ =+    DeleteSlot'+      { slotId = pSlotId_,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_,+        intentId = pIntentId_+      }++-- | The identifier of the slot to delete.+deleteSlot_slotId :: Lens.Lens' DeleteSlot Prelude.Text+deleteSlot_slotId = Lens.lens (\DeleteSlot' {slotId} -> slotId) (\s@DeleteSlot' {} a -> s {slotId = a} :: DeleteSlot)++-- | The identifier of the bot associated with the slot to delete.+deleteSlot_botId :: Lens.Lens' DeleteSlot Prelude.Text+deleteSlot_botId = Lens.lens (\DeleteSlot' {botId} -> botId) (\s@DeleteSlot' {} a -> s {botId = a} :: DeleteSlot)++-- | The version of the bot associated with the slot to delete.+deleteSlot_botVersion :: Lens.Lens' DeleteSlot Prelude.Text+deleteSlot_botVersion = Lens.lens (\DeleteSlot' {botVersion} -> botVersion) (\s@DeleteSlot' {} a -> s {botVersion = a} :: DeleteSlot)++-- | The identifier of the language and locale that the slot will be deleted+-- from. The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+deleteSlot_localeId :: Lens.Lens' DeleteSlot Prelude.Text+deleteSlot_localeId = Lens.lens (\DeleteSlot' {localeId} -> localeId) (\s@DeleteSlot' {} a -> s {localeId = a} :: DeleteSlot)++-- | The identifier of the intent associated with the slot.+deleteSlot_intentId :: Lens.Lens' DeleteSlot Prelude.Text+deleteSlot_intentId = Lens.lens (\DeleteSlot' {intentId} -> intentId) (\s@DeleteSlot' {} a -> s {intentId = a} :: DeleteSlot)++instance Core.AWSRequest DeleteSlot where+  type AWSResponse DeleteSlot = DeleteSlotResponse+  request overrides =+    Request.delete (overrides defaultService)+  response = Response.receiveNull DeleteSlotResponse'++instance Prelude.Hashable DeleteSlot where+  hashWithSalt _salt DeleteSlot' {..} =+    _salt+      `Prelude.hashWithSalt` slotId+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` intentId++instance Prelude.NFData DeleteSlot where+  rnf DeleteSlot' {..} =+    Prelude.rnf slotId+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf intentId++instance Data.ToHeaders DeleteSlot where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteSlot where+  toPath DeleteSlot' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/intents/",+        Data.toBS intentId,+        "/slots/",+        Data.toBS slotId,+        "/"+      ]++instance Data.ToQuery DeleteSlot where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteSlotResponse' smart constructor.+data DeleteSlotResponse = DeleteSlotResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSlotResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteSlotResponse ::+  DeleteSlotResponse+newDeleteSlotResponse = DeleteSlotResponse'++instance Prelude.NFData DeleteSlotResponse where+  rnf _ = ()
+ gen/Amazonka/LexV2Models/DeleteSlotType.hs view
@@ -0,0 +1,221 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DeleteSlotType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a slot type from a bot locale.+--+-- If a slot is using the slot type, Amazon Lex throws a+-- @ResourceInUseException@ exception. To avoid the exception, set the+-- @skipResourceInUseCheck@ parameter to @true@.+module Amazonka.LexV2Models.DeleteSlotType+  ( -- * Creating a Request+    DeleteSlotType (..),+    newDeleteSlotType,++    -- * Request Lenses+    deleteSlotType_skipResourceInUseCheck,+    deleteSlotType_slotTypeId,+    deleteSlotType_botId,+    deleteSlotType_botVersion,+    deleteSlotType_localeId,++    -- * Destructuring the Response+    DeleteSlotTypeResponse (..),+    newDeleteSlotTypeResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteSlotType' smart constructor.+data DeleteSlotType = DeleteSlotType'+  { -- | By default, the @DeleteSlotType@ operations throws a+    -- @ResourceInUseException@ exception if you try to delete a slot type used+    -- by a slot. Set the @skipResourceInUseCheck@ parameter to @true@ to skip+    -- this check and remove the slot type even if a slot uses it.+    skipResourceInUseCheck :: Prelude.Maybe Prelude.Bool,+    -- | The identifier of the slot type to delete.+    slotTypeId :: Prelude.Text,+    -- | The identifier of the bot associated with the slot type.+    botId :: Prelude.Text,+    -- | The version of the bot associated with the slot type.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale that the slot type will be+    -- deleted from. The string must match one of the supported locales. For+    -- more information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSlotType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'skipResourceInUseCheck', 'deleteSlotType_skipResourceInUseCheck' - By default, the @DeleteSlotType@ operations throws a+-- @ResourceInUseException@ exception if you try to delete a slot type used+-- by a slot. Set the @skipResourceInUseCheck@ parameter to @true@ to skip+-- this check and remove the slot type even if a slot uses it.+--+-- 'slotTypeId', 'deleteSlotType_slotTypeId' - The identifier of the slot type to delete.+--+-- 'botId', 'deleteSlotType_botId' - The identifier of the bot associated with the slot type.+--+-- 'botVersion', 'deleteSlotType_botVersion' - The version of the bot associated with the slot type.+--+-- 'localeId', 'deleteSlotType_localeId' - The identifier of the language and locale that the slot type will be+-- deleted from. The string must match one of the supported locales. For+-- more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+newDeleteSlotType ::+  -- | 'slotTypeId'+  Prelude.Text ->+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  DeleteSlotType+newDeleteSlotType+  pSlotTypeId_+  pBotId_+  pBotVersion_+  pLocaleId_ =+    DeleteSlotType'+      { skipResourceInUseCheck =+          Prelude.Nothing,+        slotTypeId = pSlotTypeId_,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_+      }++-- | By default, the @DeleteSlotType@ operations throws a+-- @ResourceInUseException@ exception if you try to delete a slot type used+-- by a slot. Set the @skipResourceInUseCheck@ parameter to @true@ to skip+-- this check and remove the slot type even if a slot uses it.+deleteSlotType_skipResourceInUseCheck :: Lens.Lens' DeleteSlotType (Prelude.Maybe Prelude.Bool)+deleteSlotType_skipResourceInUseCheck = Lens.lens (\DeleteSlotType' {skipResourceInUseCheck} -> skipResourceInUseCheck) (\s@DeleteSlotType' {} a -> s {skipResourceInUseCheck = a} :: DeleteSlotType)++-- | The identifier of the slot type to delete.+deleteSlotType_slotTypeId :: Lens.Lens' DeleteSlotType Prelude.Text+deleteSlotType_slotTypeId = Lens.lens (\DeleteSlotType' {slotTypeId} -> slotTypeId) (\s@DeleteSlotType' {} a -> s {slotTypeId = a} :: DeleteSlotType)++-- | The identifier of the bot associated with the slot type.+deleteSlotType_botId :: Lens.Lens' DeleteSlotType Prelude.Text+deleteSlotType_botId = Lens.lens (\DeleteSlotType' {botId} -> botId) (\s@DeleteSlotType' {} a -> s {botId = a} :: DeleteSlotType)++-- | The version of the bot associated with the slot type.+deleteSlotType_botVersion :: Lens.Lens' DeleteSlotType Prelude.Text+deleteSlotType_botVersion = Lens.lens (\DeleteSlotType' {botVersion} -> botVersion) (\s@DeleteSlotType' {} a -> s {botVersion = a} :: DeleteSlotType)++-- | The identifier of the language and locale that the slot type will be+-- deleted from. The string must match one of the supported locales. For+-- more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+deleteSlotType_localeId :: Lens.Lens' DeleteSlotType Prelude.Text+deleteSlotType_localeId = Lens.lens (\DeleteSlotType' {localeId} -> localeId) (\s@DeleteSlotType' {} a -> s {localeId = a} :: DeleteSlotType)++instance Core.AWSRequest DeleteSlotType where+  type+    AWSResponse DeleteSlotType =+      DeleteSlotTypeResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveNull DeleteSlotTypeResponse'++instance Prelude.Hashable DeleteSlotType where+  hashWithSalt _salt DeleteSlotType' {..} =+    _salt+      `Prelude.hashWithSalt` skipResourceInUseCheck+      `Prelude.hashWithSalt` slotTypeId+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData DeleteSlotType where+  rnf DeleteSlotType' {..} =+    Prelude.rnf skipResourceInUseCheck+      `Prelude.seq` Prelude.rnf slotTypeId+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders DeleteSlotType where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteSlotType where+  toPath DeleteSlotType' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/slottypes/",+        Data.toBS slotTypeId,+        "/"+      ]++instance Data.ToQuery DeleteSlotType where+  toQuery DeleteSlotType' {..} =+    Prelude.mconcat+      [ "skipResourceInUseCheck"+          Data.=: skipResourceInUseCheck+      ]++-- | /See:/ 'newDeleteSlotTypeResponse' smart constructor.+data DeleteSlotTypeResponse = DeleteSlotTypeResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteSlotTypeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteSlotTypeResponse ::+  DeleteSlotTypeResponse+newDeleteSlotTypeResponse = DeleteSlotTypeResponse'++instance Prelude.NFData DeleteSlotTypeResponse where+  rnf _ = ()
+ gen/Amazonka/LexV2Models/DeleteUtterances.hs view
@@ -0,0 +1,215 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DeleteUtterances+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes stored utterances.+--+-- Amazon Lex stores the utterances that users send to your bot. Utterances+-- are stored for 15 days for use with the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_ListAggregatedUtterances.html ListAggregatedUtterances>+-- operation, and then stored indefinitely for use in improving the ability+-- of your bot to respond to user input..+--+-- Use the @DeleteUtterances@ operation to manually delete utterances for a+-- specific session. When you use the @DeleteUtterances@ operation,+-- utterances stored for improving your bot\'s ability to respond to user+-- input are deleted immediately. Utterances stored for use with the+-- @ListAggregatedUtterances@ operation are deleted after 15 days.+module Amazonka.LexV2Models.DeleteUtterances+  ( -- * Creating a Request+    DeleteUtterances (..),+    newDeleteUtterances,++    -- * Request Lenses+    deleteUtterances_localeId,+    deleteUtterances_sessionId,+    deleteUtterances_botId,++    -- * Destructuring the Response+    DeleteUtterancesResponse (..),+    newDeleteUtterancesResponse,++    -- * Response Lenses+    deleteUtterancesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteUtterances' smart constructor.+data DeleteUtterances = DeleteUtterances'+  { -- | The identifier of the language and locale where the utterances were+    -- collected. The string must match one of the supported locales. For more+    -- information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the session with the user. The ID is returned+    -- in the response from the+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_RecognizeText.html RecognizeText>+    -- and+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_RecognizeUtterance.html RecognizeUtterance>+    -- operations.+    sessionId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the bot that contains the utterances.+    botId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteUtterances' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'localeId', 'deleteUtterances_localeId' - The identifier of the language and locale where the utterances were+-- collected. The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+--+-- 'sessionId', 'deleteUtterances_sessionId' - The unique identifier of the session with the user. The ID is returned+-- in the response from the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_RecognizeText.html RecognizeText>+-- and+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_RecognizeUtterance.html RecognizeUtterance>+-- operations.+--+-- 'botId', 'deleteUtterances_botId' - The unique identifier of the bot that contains the utterances.+newDeleteUtterances ::+  -- | 'botId'+  Prelude.Text ->+  DeleteUtterances+newDeleteUtterances pBotId_ =+  DeleteUtterances'+    { localeId = Prelude.Nothing,+      sessionId = Prelude.Nothing,+      botId = pBotId_+    }++-- | The identifier of the language and locale where the utterances were+-- collected. The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+deleteUtterances_localeId :: Lens.Lens' DeleteUtterances (Prelude.Maybe Prelude.Text)+deleteUtterances_localeId = Lens.lens (\DeleteUtterances' {localeId} -> localeId) (\s@DeleteUtterances' {} a -> s {localeId = a} :: DeleteUtterances)++-- | The unique identifier of the session with the user. The ID is returned+-- in the response from the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_RecognizeText.html RecognizeText>+-- and+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_runtime_RecognizeUtterance.html RecognizeUtterance>+-- operations.+deleteUtterances_sessionId :: Lens.Lens' DeleteUtterances (Prelude.Maybe Prelude.Text)+deleteUtterances_sessionId = Lens.lens (\DeleteUtterances' {sessionId} -> sessionId) (\s@DeleteUtterances' {} a -> s {sessionId = a} :: DeleteUtterances)++-- | The unique identifier of the bot that contains the utterances.+deleteUtterances_botId :: Lens.Lens' DeleteUtterances Prelude.Text+deleteUtterances_botId = Lens.lens (\DeleteUtterances' {botId} -> botId) (\s@DeleteUtterances' {} a -> s {botId = a} :: DeleteUtterances)++instance Core.AWSRequest DeleteUtterances where+  type+    AWSResponse DeleteUtterances =+      DeleteUtterancesResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteUtterancesResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteUtterances where+  hashWithSalt _salt DeleteUtterances' {..} =+    _salt+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` sessionId+      `Prelude.hashWithSalt` botId++instance Prelude.NFData DeleteUtterances where+  rnf DeleteUtterances' {..} =+    Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf sessionId+      `Prelude.seq` Prelude.rnf botId++instance Data.ToHeaders DeleteUtterances where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DeleteUtterances where+  toPath DeleteUtterances' {..} =+    Prelude.mconcat+      ["/bots/", Data.toBS botId, "/utterances/"]++instance Data.ToQuery DeleteUtterances where+  toQuery DeleteUtterances' {..} =+    Prelude.mconcat+      [ "localeId" Data.=: localeId,+        "sessionId" Data.=: sessionId+      ]++-- | /See:/ 'newDeleteUtterancesResponse' smart constructor.+data DeleteUtterancesResponse = DeleteUtterancesResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteUtterancesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteUtterancesResponse_httpStatus' - The response's http status code.+newDeleteUtterancesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteUtterancesResponse+newDeleteUtterancesResponse pHttpStatus_ =+  DeleteUtterancesResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteUtterancesResponse_httpStatus :: Lens.Lens' DeleteUtterancesResponse Prelude.Int+deleteUtterancesResponse_httpStatus = Lens.lens (\DeleteUtterancesResponse' {httpStatus} -> httpStatus) (\s@DeleteUtterancesResponse' {} a -> s {httpStatus = a} :: DeleteUtterancesResponse)++instance Prelude.NFData DeleteUtterancesResponse where+  rnf DeleteUtterancesResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DescribeBot.hs view
@@ -0,0 +1,263 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DescribeBot+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Provides metadata information about a bot.+module Amazonka.LexV2Models.DescribeBot+  ( -- * Creating a Request+    DescribeBot (..),+    newDescribeBot,++    -- * Request Lenses+    describeBot_botId,++    -- * Destructuring the Response+    DescribeBotResponse (..),+    newDescribeBotResponse,++    -- * Response Lenses+    describeBotResponse_botId,+    describeBotResponse_botName,+    describeBotResponse_botStatus,+    describeBotResponse_creationDateTime,+    describeBotResponse_dataPrivacy,+    describeBotResponse_description,+    describeBotResponse_idleSessionTTLInSeconds,+    describeBotResponse_lastUpdatedDateTime,+    describeBotResponse_roleArn,+    describeBotResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeBot' smart constructor.+data DescribeBot = DescribeBot'+  { -- | The unique identifier of the bot to describe.+    botId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeBot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'describeBot_botId' - The unique identifier of the bot to describe.+newDescribeBot ::+  -- | 'botId'+  Prelude.Text ->+  DescribeBot+newDescribeBot pBotId_ =+  DescribeBot' {botId = pBotId_}++-- | The unique identifier of the bot to describe.+describeBot_botId :: Lens.Lens' DescribeBot Prelude.Text+describeBot_botId = Lens.lens (\DescribeBot' {botId} -> botId) (\s@DescribeBot' {} a -> s {botId = a} :: DescribeBot)++instance Core.AWSRequest DescribeBot where+  type AWSResponse DescribeBot = DescribeBotResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeBotResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botName")+            Prelude.<*> (x Data..?> "botStatus")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "dataPrivacy")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "idleSessionTTLInSeconds")+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "roleArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeBot where+  hashWithSalt _salt DescribeBot' {..} =+    _salt `Prelude.hashWithSalt` botId++instance Prelude.NFData DescribeBot where+  rnf DescribeBot' {..} = Prelude.rnf botId++instance Data.ToHeaders DescribeBot where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeBot where+  toPath DescribeBot' {..} =+    Prelude.mconcat ["/bots/", Data.toBS botId, "/"]++instance Data.ToQuery DescribeBot where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeBotResponse' smart constructor.+data DescribeBotResponse = DescribeBotResponse'+  { -- | The unique identifier of the bot.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The name of the bot.+    botName :: Prelude.Maybe Prelude.Text,+    -- | The current status of the bot. When the status is @Available@ the bot is+    -- ready to be used in conversations with users.+    botStatus :: Prelude.Maybe BotStatus,+    -- | A timestamp of the date and time that the bot was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | Settings for managing data privacy of the bot and its conversations with+    -- users.+    dataPrivacy :: Prelude.Maybe DataPrivacy,+    -- | The description of the bot.+    description :: Prelude.Maybe Prelude.Text,+    -- | The maximum time in seconds that Amazon Lex retains the data gathered in+    -- a conversation.+    idleSessionTTLInSeconds :: Prelude.Maybe Prelude.Natural,+    -- | A timestamp of the date and time that the bot was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of an IAM role that has permission to+    -- access the bot.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeBotResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'describeBotResponse_botId' - The unique identifier of the bot.+--+-- 'botName', 'describeBotResponse_botName' - The name of the bot.+--+-- 'botStatus', 'describeBotResponse_botStatus' - The current status of the bot. When the status is @Available@ the bot is+-- ready to be used in conversations with users.+--+-- 'creationDateTime', 'describeBotResponse_creationDateTime' - A timestamp of the date and time that the bot was created.+--+-- 'dataPrivacy', 'describeBotResponse_dataPrivacy' - Settings for managing data privacy of the bot and its conversations with+-- users.+--+-- 'description', 'describeBotResponse_description' - The description of the bot.+--+-- 'idleSessionTTLInSeconds', 'describeBotResponse_idleSessionTTLInSeconds' - The maximum time in seconds that Amazon Lex retains the data gathered in+-- a conversation.+--+-- 'lastUpdatedDateTime', 'describeBotResponse_lastUpdatedDateTime' - A timestamp of the date and time that the bot was last updated.+--+-- 'roleArn', 'describeBotResponse_roleArn' - The Amazon Resource Name (ARN) of an IAM role that has permission to+-- access the bot.+--+-- 'httpStatus', 'describeBotResponse_httpStatus' - The response's http status code.+newDescribeBotResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeBotResponse+newDescribeBotResponse pHttpStatus_ =+  DescribeBotResponse'+    { botId = Prelude.Nothing,+      botName = Prelude.Nothing,+      botStatus = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      dataPrivacy = Prelude.Nothing,+      description = Prelude.Nothing,+      idleSessionTTLInSeconds = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the bot.+describeBotResponse_botId :: Lens.Lens' DescribeBotResponse (Prelude.Maybe Prelude.Text)+describeBotResponse_botId = Lens.lens (\DescribeBotResponse' {botId} -> botId) (\s@DescribeBotResponse' {} a -> s {botId = a} :: DescribeBotResponse)++-- | The name of the bot.+describeBotResponse_botName :: Lens.Lens' DescribeBotResponse (Prelude.Maybe Prelude.Text)+describeBotResponse_botName = Lens.lens (\DescribeBotResponse' {botName} -> botName) (\s@DescribeBotResponse' {} a -> s {botName = a} :: DescribeBotResponse)++-- | The current status of the bot. When the status is @Available@ the bot is+-- ready to be used in conversations with users.+describeBotResponse_botStatus :: Lens.Lens' DescribeBotResponse (Prelude.Maybe BotStatus)+describeBotResponse_botStatus = Lens.lens (\DescribeBotResponse' {botStatus} -> botStatus) (\s@DescribeBotResponse' {} a -> s {botStatus = a} :: DescribeBotResponse)++-- | A timestamp of the date and time that the bot was created.+describeBotResponse_creationDateTime :: Lens.Lens' DescribeBotResponse (Prelude.Maybe Prelude.UTCTime)+describeBotResponse_creationDateTime = Lens.lens (\DescribeBotResponse' {creationDateTime} -> creationDateTime) (\s@DescribeBotResponse' {} a -> s {creationDateTime = a} :: DescribeBotResponse) Prelude.. Lens.mapping Data._Time++-- | Settings for managing data privacy of the bot and its conversations with+-- users.+describeBotResponse_dataPrivacy :: Lens.Lens' DescribeBotResponse (Prelude.Maybe DataPrivacy)+describeBotResponse_dataPrivacy = Lens.lens (\DescribeBotResponse' {dataPrivacy} -> dataPrivacy) (\s@DescribeBotResponse' {} a -> s {dataPrivacy = a} :: DescribeBotResponse)++-- | The description of the bot.+describeBotResponse_description :: Lens.Lens' DescribeBotResponse (Prelude.Maybe Prelude.Text)+describeBotResponse_description = Lens.lens (\DescribeBotResponse' {description} -> description) (\s@DescribeBotResponse' {} a -> s {description = a} :: DescribeBotResponse)++-- | The maximum time in seconds that Amazon Lex retains the data gathered in+-- a conversation.+describeBotResponse_idleSessionTTLInSeconds :: Lens.Lens' DescribeBotResponse (Prelude.Maybe Prelude.Natural)+describeBotResponse_idleSessionTTLInSeconds = Lens.lens (\DescribeBotResponse' {idleSessionTTLInSeconds} -> idleSessionTTLInSeconds) (\s@DescribeBotResponse' {} a -> s {idleSessionTTLInSeconds = a} :: DescribeBotResponse)++-- | A timestamp of the date and time that the bot was last updated.+describeBotResponse_lastUpdatedDateTime :: Lens.Lens' DescribeBotResponse (Prelude.Maybe Prelude.UTCTime)+describeBotResponse_lastUpdatedDateTime = Lens.lens (\DescribeBotResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DescribeBotResponse' {} a -> s {lastUpdatedDateTime = a} :: DescribeBotResponse) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of an IAM role that has permission to+-- access the bot.+describeBotResponse_roleArn :: Lens.Lens' DescribeBotResponse (Prelude.Maybe Prelude.Text)+describeBotResponse_roleArn = Lens.lens (\DescribeBotResponse' {roleArn} -> roleArn) (\s@DescribeBotResponse' {} a -> s {roleArn = a} :: DescribeBotResponse)++-- | The response's http status code.+describeBotResponse_httpStatus :: Lens.Lens' DescribeBotResponse Prelude.Int+describeBotResponse_httpStatus = Lens.lens (\DescribeBotResponse' {httpStatus} -> httpStatus) (\s@DescribeBotResponse' {} a -> s {httpStatus = a} :: DescribeBotResponse)++instance Prelude.NFData DescribeBotResponse where+  rnf DescribeBotResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botName+      `Prelude.seq` Prelude.rnf botStatus+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf dataPrivacy+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf idleSessionTTLInSeconds+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DescribeBotAlias.hs view
@@ -0,0 +1,328 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DescribeBotAlias+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get information about a specific bot alias.+module Amazonka.LexV2Models.DescribeBotAlias+  ( -- * Creating a Request+    DescribeBotAlias (..),+    newDescribeBotAlias,++    -- * Request Lenses+    describeBotAlias_botAliasId,+    describeBotAlias_botId,++    -- * Destructuring the Response+    DescribeBotAliasResponse (..),+    newDescribeBotAliasResponse,++    -- * Response Lenses+    describeBotAliasResponse_botAliasHistoryEvents,+    describeBotAliasResponse_botAliasId,+    describeBotAliasResponse_botAliasLocaleSettings,+    describeBotAliasResponse_botAliasName,+    describeBotAliasResponse_botAliasStatus,+    describeBotAliasResponse_botId,+    describeBotAliasResponse_botVersion,+    describeBotAliasResponse_conversationLogSettings,+    describeBotAliasResponse_creationDateTime,+    describeBotAliasResponse_description,+    describeBotAliasResponse_lastUpdatedDateTime,+    describeBotAliasResponse_sentimentAnalysisSettings,+    describeBotAliasResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeBotAlias' smart constructor.+data DescribeBotAlias = DescribeBotAlias'+  { -- | The identifier of the bot alias to describe.+    botAliasId :: Prelude.Text,+    -- | The identifier of the bot associated with the bot alias to describe.+    botId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeBotAlias' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botAliasId', 'describeBotAlias_botAliasId' - The identifier of the bot alias to describe.+--+-- 'botId', 'describeBotAlias_botId' - The identifier of the bot associated with the bot alias to describe.+newDescribeBotAlias ::+  -- | 'botAliasId'+  Prelude.Text ->+  -- | 'botId'+  Prelude.Text ->+  DescribeBotAlias+newDescribeBotAlias pBotAliasId_ pBotId_ =+  DescribeBotAlias'+    { botAliasId = pBotAliasId_,+      botId = pBotId_+    }++-- | The identifier of the bot alias to describe.+describeBotAlias_botAliasId :: Lens.Lens' DescribeBotAlias Prelude.Text+describeBotAlias_botAliasId = Lens.lens (\DescribeBotAlias' {botAliasId} -> botAliasId) (\s@DescribeBotAlias' {} a -> s {botAliasId = a} :: DescribeBotAlias)++-- | The identifier of the bot associated with the bot alias to describe.+describeBotAlias_botId :: Lens.Lens' DescribeBotAlias Prelude.Text+describeBotAlias_botId = Lens.lens (\DescribeBotAlias' {botId} -> botId) (\s@DescribeBotAlias' {} a -> s {botId = a} :: DescribeBotAlias)++instance Core.AWSRequest DescribeBotAlias where+  type+    AWSResponse DescribeBotAlias =+      DescribeBotAliasResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeBotAliasResponse'+            Prelude.<$> ( x+                            Data..?> "botAliasHistoryEvents"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "botAliasId")+            Prelude.<*> ( x+                            Data..?> "botAliasLocaleSettings"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "botAliasName")+            Prelude.<*> (x Data..?> "botAliasStatus")+            Prelude.<*> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "conversationLogSettings")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "sentimentAnalysisSettings")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeBotAlias where+  hashWithSalt _salt DescribeBotAlias' {..} =+    _salt+      `Prelude.hashWithSalt` botAliasId+      `Prelude.hashWithSalt` botId++instance Prelude.NFData DescribeBotAlias where+  rnf DescribeBotAlias' {..} =+    Prelude.rnf botAliasId+      `Prelude.seq` Prelude.rnf botId++instance Data.ToHeaders DescribeBotAlias where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeBotAlias where+  toPath DescribeBotAlias' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botaliases/",+        Data.toBS botAliasId,+        "/"+      ]++instance Data.ToQuery DescribeBotAlias where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeBotAliasResponse' smart constructor.+data DescribeBotAliasResponse = DescribeBotAliasResponse'+  { -- | A list of events that affect a bot alias. For example, an event is+    -- recorded when the version that the alias points to changes.+    botAliasHistoryEvents :: Prelude.Maybe [BotAliasHistoryEvent],+    -- | The identifier of the bot alias.+    botAliasId :: Prelude.Maybe Prelude.Text,+    -- | The locale settings that are unique to the alias.+    botAliasLocaleSettings :: Prelude.Maybe (Prelude.HashMap Prelude.Text BotAliasLocaleSettings),+    -- | The name of the bot alias.+    botAliasName :: Prelude.Maybe Prelude.Text,+    -- | The current status of the alias. When the alias is @Available@, the+    -- alias is ready for use with your bot.+    botAliasStatus :: Prelude.Maybe BotAliasStatus,+    -- | The identifier of the bot associated with the bot alias.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot associated with the bot alias.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | Specifics of how Amazon Lex logs text and audio conversations with the+    -- bot associated with the alias.+    conversationLogSettings :: Prelude.Maybe ConversationLogSettings,+    -- | A timestamp of the date and time that the alias was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The description of the bot alias.+    description :: Prelude.Maybe Prelude.Text,+    -- | A timestamp of the date and time that the alias was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    sentimentAnalysisSettings :: Prelude.Maybe SentimentAnalysisSettings,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeBotAliasResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botAliasHistoryEvents', 'describeBotAliasResponse_botAliasHistoryEvents' - A list of events that affect a bot alias. For example, an event is+-- recorded when the version that the alias points to changes.+--+-- 'botAliasId', 'describeBotAliasResponse_botAliasId' - The identifier of the bot alias.+--+-- 'botAliasLocaleSettings', 'describeBotAliasResponse_botAliasLocaleSettings' - The locale settings that are unique to the alias.+--+-- 'botAliasName', 'describeBotAliasResponse_botAliasName' - The name of the bot alias.+--+-- 'botAliasStatus', 'describeBotAliasResponse_botAliasStatus' - The current status of the alias. When the alias is @Available@, the+-- alias is ready for use with your bot.+--+-- 'botId', 'describeBotAliasResponse_botId' - The identifier of the bot associated with the bot alias.+--+-- 'botVersion', 'describeBotAliasResponse_botVersion' - The version of the bot associated with the bot alias.+--+-- 'conversationLogSettings', 'describeBotAliasResponse_conversationLogSettings' - Specifics of how Amazon Lex logs text and audio conversations with the+-- bot associated with the alias.+--+-- 'creationDateTime', 'describeBotAliasResponse_creationDateTime' - A timestamp of the date and time that the alias was created.+--+-- 'description', 'describeBotAliasResponse_description' - The description of the bot alias.+--+-- 'lastUpdatedDateTime', 'describeBotAliasResponse_lastUpdatedDateTime' - A timestamp of the date and time that the alias was last updated.+--+-- 'sentimentAnalysisSettings', 'describeBotAliasResponse_sentimentAnalysisSettings' - Undocumented member.+--+-- 'httpStatus', 'describeBotAliasResponse_httpStatus' - The response's http status code.+newDescribeBotAliasResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeBotAliasResponse+newDescribeBotAliasResponse pHttpStatus_ =+  DescribeBotAliasResponse'+    { botAliasHistoryEvents =+        Prelude.Nothing,+      botAliasId = Prelude.Nothing,+      botAliasLocaleSettings = Prelude.Nothing,+      botAliasName = Prelude.Nothing,+      botAliasStatus = Prelude.Nothing,+      botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      conversationLogSettings = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      sentimentAnalysisSettings = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of events that affect a bot alias. For example, an event is+-- recorded when the version that the alias points to changes.+describeBotAliasResponse_botAliasHistoryEvents :: Lens.Lens' DescribeBotAliasResponse (Prelude.Maybe [BotAliasHistoryEvent])+describeBotAliasResponse_botAliasHistoryEvents = Lens.lens (\DescribeBotAliasResponse' {botAliasHistoryEvents} -> botAliasHistoryEvents) (\s@DescribeBotAliasResponse' {} a -> s {botAliasHistoryEvents = a} :: DescribeBotAliasResponse) Prelude.. Lens.mapping Lens.coerced++-- | The identifier of the bot alias.+describeBotAliasResponse_botAliasId :: Lens.Lens' DescribeBotAliasResponse (Prelude.Maybe Prelude.Text)+describeBotAliasResponse_botAliasId = Lens.lens (\DescribeBotAliasResponse' {botAliasId} -> botAliasId) (\s@DescribeBotAliasResponse' {} a -> s {botAliasId = a} :: DescribeBotAliasResponse)++-- | The locale settings that are unique to the alias.+describeBotAliasResponse_botAliasLocaleSettings :: Lens.Lens' DescribeBotAliasResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text BotAliasLocaleSettings))+describeBotAliasResponse_botAliasLocaleSettings = Lens.lens (\DescribeBotAliasResponse' {botAliasLocaleSettings} -> botAliasLocaleSettings) (\s@DescribeBotAliasResponse' {} a -> s {botAliasLocaleSettings = a} :: DescribeBotAliasResponse) Prelude.. Lens.mapping Lens.coerced++-- | The name of the bot alias.+describeBotAliasResponse_botAliasName :: Lens.Lens' DescribeBotAliasResponse (Prelude.Maybe Prelude.Text)+describeBotAliasResponse_botAliasName = Lens.lens (\DescribeBotAliasResponse' {botAliasName} -> botAliasName) (\s@DescribeBotAliasResponse' {} a -> s {botAliasName = a} :: DescribeBotAliasResponse)++-- | The current status of the alias. When the alias is @Available@, the+-- alias is ready for use with your bot.+describeBotAliasResponse_botAliasStatus :: Lens.Lens' DescribeBotAliasResponse (Prelude.Maybe BotAliasStatus)+describeBotAliasResponse_botAliasStatus = Lens.lens (\DescribeBotAliasResponse' {botAliasStatus} -> botAliasStatus) (\s@DescribeBotAliasResponse' {} a -> s {botAliasStatus = a} :: DescribeBotAliasResponse)++-- | The identifier of the bot associated with the bot alias.+describeBotAliasResponse_botId :: Lens.Lens' DescribeBotAliasResponse (Prelude.Maybe Prelude.Text)+describeBotAliasResponse_botId = Lens.lens (\DescribeBotAliasResponse' {botId} -> botId) (\s@DescribeBotAliasResponse' {} a -> s {botId = a} :: DescribeBotAliasResponse)++-- | The version of the bot associated with the bot alias.+describeBotAliasResponse_botVersion :: Lens.Lens' DescribeBotAliasResponse (Prelude.Maybe Prelude.Text)+describeBotAliasResponse_botVersion = Lens.lens (\DescribeBotAliasResponse' {botVersion} -> botVersion) (\s@DescribeBotAliasResponse' {} a -> s {botVersion = a} :: DescribeBotAliasResponse)++-- | Specifics of how Amazon Lex logs text and audio conversations with the+-- bot associated with the alias.+describeBotAliasResponse_conversationLogSettings :: Lens.Lens' DescribeBotAliasResponse (Prelude.Maybe ConversationLogSettings)+describeBotAliasResponse_conversationLogSettings = Lens.lens (\DescribeBotAliasResponse' {conversationLogSettings} -> conversationLogSettings) (\s@DescribeBotAliasResponse' {} a -> s {conversationLogSettings = a} :: DescribeBotAliasResponse)++-- | A timestamp of the date and time that the alias was created.+describeBotAliasResponse_creationDateTime :: Lens.Lens' DescribeBotAliasResponse (Prelude.Maybe Prelude.UTCTime)+describeBotAliasResponse_creationDateTime = Lens.lens (\DescribeBotAliasResponse' {creationDateTime} -> creationDateTime) (\s@DescribeBotAliasResponse' {} a -> s {creationDateTime = a} :: DescribeBotAliasResponse) Prelude.. Lens.mapping Data._Time++-- | The description of the bot alias.+describeBotAliasResponse_description :: Lens.Lens' DescribeBotAliasResponse (Prelude.Maybe Prelude.Text)+describeBotAliasResponse_description = Lens.lens (\DescribeBotAliasResponse' {description} -> description) (\s@DescribeBotAliasResponse' {} a -> s {description = a} :: DescribeBotAliasResponse)++-- | A timestamp of the date and time that the alias was last updated.+describeBotAliasResponse_lastUpdatedDateTime :: Lens.Lens' DescribeBotAliasResponse (Prelude.Maybe Prelude.UTCTime)+describeBotAliasResponse_lastUpdatedDateTime = Lens.lens (\DescribeBotAliasResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DescribeBotAliasResponse' {} a -> s {lastUpdatedDateTime = a} :: DescribeBotAliasResponse) Prelude.. Lens.mapping Data._Time++-- | Undocumented member.+describeBotAliasResponse_sentimentAnalysisSettings :: Lens.Lens' DescribeBotAliasResponse (Prelude.Maybe SentimentAnalysisSettings)+describeBotAliasResponse_sentimentAnalysisSettings = Lens.lens (\DescribeBotAliasResponse' {sentimentAnalysisSettings} -> sentimentAnalysisSettings) (\s@DescribeBotAliasResponse' {} a -> s {sentimentAnalysisSettings = a} :: DescribeBotAliasResponse)++-- | The response's http status code.+describeBotAliasResponse_httpStatus :: Lens.Lens' DescribeBotAliasResponse Prelude.Int+describeBotAliasResponse_httpStatus = Lens.lens (\DescribeBotAliasResponse' {httpStatus} -> httpStatus) (\s@DescribeBotAliasResponse' {} a -> s {httpStatus = a} :: DescribeBotAliasResponse)++instance Prelude.NFData DescribeBotAliasResponse where+  rnf DescribeBotAliasResponse' {..} =+    Prelude.rnf botAliasHistoryEvents+      `Prelude.seq` Prelude.rnf botAliasId+      `Prelude.seq` Prelude.rnf botAliasLocaleSettings+      `Prelude.seq` Prelude.rnf botAliasName+      `Prelude.seq` Prelude.rnf botAliasStatus+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf conversationLogSettings+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf sentimentAnalysisSettings+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DescribeBotLocale.hs view
@@ -0,0 +1,410 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DescribeBotLocale+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the settings that a bot has for a specific locale.+module Amazonka.LexV2Models.DescribeBotLocale+  ( -- * Creating a Request+    DescribeBotLocale (..),+    newDescribeBotLocale,++    -- * Request Lenses+    describeBotLocale_botId,+    describeBotLocale_botVersion,+    describeBotLocale_localeId,++    -- * Destructuring the Response+    DescribeBotLocaleResponse (..),+    newDescribeBotLocaleResponse,++    -- * Response Lenses+    describeBotLocaleResponse_botId,+    describeBotLocaleResponse_botLocaleHistoryEvents,+    describeBotLocaleResponse_botLocaleStatus,+    describeBotLocaleResponse_botVersion,+    describeBotLocaleResponse_creationDateTime,+    describeBotLocaleResponse_description,+    describeBotLocaleResponse_failureReasons,+    describeBotLocaleResponse_intentsCount,+    describeBotLocaleResponse_lastBuildSubmittedDateTime,+    describeBotLocaleResponse_lastUpdatedDateTime,+    describeBotLocaleResponse_localeId,+    describeBotLocaleResponse_localeName,+    describeBotLocaleResponse_nluIntentConfidenceThreshold,+    describeBotLocaleResponse_recommendedActions,+    describeBotLocaleResponse_slotTypesCount,+    describeBotLocaleResponse_voiceSettings,+    describeBotLocaleResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeBotLocale' smart constructor.+data DescribeBotLocale = DescribeBotLocale'+  { -- | The identifier of the bot associated with the locale.+    botId :: Prelude.Text,+    -- | The identifier of the version of the bot associated with the locale.+    botVersion :: Prelude.Text,+    -- | The unique identifier of the locale to describe. The string must match+    -- one of the supported locales. For more information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeBotLocale' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'describeBotLocale_botId' - The identifier of the bot associated with the locale.+--+-- 'botVersion', 'describeBotLocale_botVersion' - The identifier of the version of the bot associated with the locale.+--+-- 'localeId', 'describeBotLocale_localeId' - The unique identifier of the locale to describe. The string must match+-- one of the supported locales. For more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+newDescribeBotLocale ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  DescribeBotLocale+newDescribeBotLocale pBotId_ pBotVersion_ pLocaleId_ =+  DescribeBotLocale'+    { botId = pBotId_,+      botVersion = pBotVersion_,+      localeId = pLocaleId_+    }++-- | The identifier of the bot associated with the locale.+describeBotLocale_botId :: Lens.Lens' DescribeBotLocale Prelude.Text+describeBotLocale_botId = Lens.lens (\DescribeBotLocale' {botId} -> botId) (\s@DescribeBotLocale' {} a -> s {botId = a} :: DescribeBotLocale)++-- | The identifier of the version of the bot associated with the locale.+describeBotLocale_botVersion :: Lens.Lens' DescribeBotLocale Prelude.Text+describeBotLocale_botVersion = Lens.lens (\DescribeBotLocale' {botVersion} -> botVersion) (\s@DescribeBotLocale' {} a -> s {botVersion = a} :: DescribeBotLocale)++-- | The unique identifier of the locale to describe. The string must match+-- one of the supported locales. For more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+describeBotLocale_localeId :: Lens.Lens' DescribeBotLocale Prelude.Text+describeBotLocale_localeId = Lens.lens (\DescribeBotLocale' {localeId} -> localeId) (\s@DescribeBotLocale' {} a -> s {localeId = a} :: DescribeBotLocale)++instance Core.AWSRequest DescribeBotLocale where+  type+    AWSResponse DescribeBotLocale =+      DescribeBotLocaleResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeBotLocaleResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> ( x+                            Data..?> "botLocaleHistoryEvents"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "botLocaleStatus")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "failureReasons" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "intentsCount")+            Prelude.<*> (x Data..?> "lastBuildSubmittedDateTime")+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "localeName")+            Prelude.<*> (x Data..?> "nluIntentConfidenceThreshold")+            Prelude.<*> ( x+                            Data..?> "recommendedActions"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "slotTypesCount")+            Prelude.<*> (x Data..?> "voiceSettings")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeBotLocale where+  hashWithSalt _salt DescribeBotLocale' {..} =+    _salt+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData DescribeBotLocale where+  rnf DescribeBotLocale' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders DescribeBotLocale where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeBotLocale where+  toPath DescribeBotLocale' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/"+      ]++instance Data.ToQuery DescribeBotLocale where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeBotLocaleResponse' smart constructor.+data DescribeBotLocaleResponse = DescribeBotLocaleResponse'+  { -- | The identifier of the bot associated with the locale.+    botId :: Prelude.Maybe Prelude.Text,+    -- | History of changes, such as when a locale is used in an alias, that have+    -- taken place for the locale.+    botLocaleHistoryEvents :: Prelude.Maybe [BotLocaleHistoryEvent],+    -- | The status of the bot. If the status is @Failed@, the reasons for the+    -- failure are listed in the @failureReasons@ field.+    botLocaleStatus :: Prelude.Maybe BotLocaleStatus,+    -- | The identifier of the version of the bot associated with the locale.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the locale was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The description of the locale.+    description :: Prelude.Maybe Prelude.Text,+    -- | if @botLocaleStatus@ is @Failed@, Amazon Lex explains why it failed to+    -- build the bot.+    failureReasons :: Prelude.Maybe [Prelude.Text],+    -- | The number of intents defined for the locale.+    intentsCount :: Prelude.Maybe Prelude.Int,+    -- | The date and time that the locale was last submitted for building.+    lastBuildSubmittedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The date and time that the locale was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The unique identifier of the described locale.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The name of the locale.+    localeName :: Prelude.Maybe Prelude.Text,+    -- | The confidence threshold where Amazon Lex inserts the+    -- @AMAZON.FallbackIntent@ and @AMAZON.KendraSearchIntent@ intents in the+    -- list of possible intents for an utterance.+    nluIntentConfidenceThreshold :: Prelude.Maybe Prelude.Double,+    -- | Recommended actions to take to resolve an error in the @failureReasons@+    -- field.+    recommendedActions :: Prelude.Maybe [Prelude.Text],+    -- | The number of slot types defined for the locale.+    slotTypesCount :: Prelude.Maybe Prelude.Int,+    -- | The Amazon Polly voice Amazon Lex uses for voice interaction with the+    -- user.+    voiceSettings :: Prelude.Maybe VoiceSettings,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeBotLocaleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'describeBotLocaleResponse_botId' - The identifier of the bot associated with the locale.+--+-- 'botLocaleHistoryEvents', 'describeBotLocaleResponse_botLocaleHistoryEvents' - History of changes, such as when a locale is used in an alias, that have+-- taken place for the locale.+--+-- 'botLocaleStatus', 'describeBotLocaleResponse_botLocaleStatus' - The status of the bot. If the status is @Failed@, the reasons for the+-- failure are listed in the @failureReasons@ field.+--+-- 'botVersion', 'describeBotLocaleResponse_botVersion' - The identifier of the version of the bot associated with the locale.+--+-- 'creationDateTime', 'describeBotLocaleResponse_creationDateTime' - The date and time that the locale was created.+--+-- 'description', 'describeBotLocaleResponse_description' - The description of the locale.+--+-- 'failureReasons', 'describeBotLocaleResponse_failureReasons' - if @botLocaleStatus@ is @Failed@, Amazon Lex explains why it failed to+-- build the bot.+--+-- 'intentsCount', 'describeBotLocaleResponse_intentsCount' - The number of intents defined for the locale.+--+-- 'lastBuildSubmittedDateTime', 'describeBotLocaleResponse_lastBuildSubmittedDateTime' - The date and time that the locale was last submitted for building.+--+-- 'lastUpdatedDateTime', 'describeBotLocaleResponse_lastUpdatedDateTime' - The date and time that the locale was last updated.+--+-- 'localeId', 'describeBotLocaleResponse_localeId' - The unique identifier of the described locale.+--+-- 'localeName', 'describeBotLocaleResponse_localeName' - The name of the locale.+--+-- 'nluIntentConfidenceThreshold', 'describeBotLocaleResponse_nluIntentConfidenceThreshold' - The confidence threshold where Amazon Lex inserts the+-- @AMAZON.FallbackIntent@ and @AMAZON.KendraSearchIntent@ intents in the+-- list of possible intents for an utterance.+--+-- 'recommendedActions', 'describeBotLocaleResponse_recommendedActions' - Recommended actions to take to resolve an error in the @failureReasons@+-- field.+--+-- 'slotTypesCount', 'describeBotLocaleResponse_slotTypesCount' - The number of slot types defined for the locale.+--+-- 'voiceSettings', 'describeBotLocaleResponse_voiceSettings' - The Amazon Polly voice Amazon Lex uses for voice interaction with the+-- user.+--+-- 'httpStatus', 'describeBotLocaleResponse_httpStatus' - The response's http status code.+newDescribeBotLocaleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeBotLocaleResponse+newDescribeBotLocaleResponse pHttpStatus_ =+  DescribeBotLocaleResponse'+    { botId = Prelude.Nothing,+      botLocaleHistoryEvents = Prelude.Nothing,+      botLocaleStatus = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      failureReasons = Prelude.Nothing,+      intentsCount = Prelude.Nothing,+      lastBuildSubmittedDateTime = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      localeId = Prelude.Nothing,+      localeName = Prelude.Nothing,+      nluIntentConfidenceThreshold = Prelude.Nothing,+      recommendedActions = Prelude.Nothing,+      slotTypesCount = Prelude.Nothing,+      voiceSettings = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot associated with the locale.+describeBotLocaleResponse_botId :: Lens.Lens' DescribeBotLocaleResponse (Prelude.Maybe Prelude.Text)+describeBotLocaleResponse_botId = Lens.lens (\DescribeBotLocaleResponse' {botId} -> botId) (\s@DescribeBotLocaleResponse' {} a -> s {botId = a} :: DescribeBotLocaleResponse)++-- | History of changes, such as when a locale is used in an alias, that have+-- taken place for the locale.+describeBotLocaleResponse_botLocaleHistoryEvents :: Lens.Lens' DescribeBotLocaleResponse (Prelude.Maybe [BotLocaleHistoryEvent])+describeBotLocaleResponse_botLocaleHistoryEvents = Lens.lens (\DescribeBotLocaleResponse' {botLocaleHistoryEvents} -> botLocaleHistoryEvents) (\s@DescribeBotLocaleResponse' {} a -> s {botLocaleHistoryEvents = a} :: DescribeBotLocaleResponse) Prelude.. Lens.mapping Lens.coerced++-- | The status of the bot. If the status is @Failed@, the reasons for the+-- failure are listed in the @failureReasons@ field.+describeBotLocaleResponse_botLocaleStatus :: Lens.Lens' DescribeBotLocaleResponse (Prelude.Maybe BotLocaleStatus)+describeBotLocaleResponse_botLocaleStatus = Lens.lens (\DescribeBotLocaleResponse' {botLocaleStatus} -> botLocaleStatus) (\s@DescribeBotLocaleResponse' {} a -> s {botLocaleStatus = a} :: DescribeBotLocaleResponse)++-- | The identifier of the version of the bot associated with the locale.+describeBotLocaleResponse_botVersion :: Lens.Lens' DescribeBotLocaleResponse (Prelude.Maybe Prelude.Text)+describeBotLocaleResponse_botVersion = Lens.lens (\DescribeBotLocaleResponse' {botVersion} -> botVersion) (\s@DescribeBotLocaleResponse' {} a -> s {botVersion = a} :: DescribeBotLocaleResponse)++-- | The date and time that the locale was created.+describeBotLocaleResponse_creationDateTime :: Lens.Lens' DescribeBotLocaleResponse (Prelude.Maybe Prelude.UTCTime)+describeBotLocaleResponse_creationDateTime = Lens.lens (\DescribeBotLocaleResponse' {creationDateTime} -> creationDateTime) (\s@DescribeBotLocaleResponse' {} a -> s {creationDateTime = a} :: DescribeBotLocaleResponse) Prelude.. Lens.mapping Data._Time++-- | The description of the locale.+describeBotLocaleResponse_description :: Lens.Lens' DescribeBotLocaleResponse (Prelude.Maybe Prelude.Text)+describeBotLocaleResponse_description = Lens.lens (\DescribeBotLocaleResponse' {description} -> description) (\s@DescribeBotLocaleResponse' {} a -> s {description = a} :: DescribeBotLocaleResponse)++-- | if @botLocaleStatus@ is @Failed@, Amazon Lex explains why it failed to+-- build the bot.+describeBotLocaleResponse_failureReasons :: Lens.Lens' DescribeBotLocaleResponse (Prelude.Maybe [Prelude.Text])+describeBotLocaleResponse_failureReasons = Lens.lens (\DescribeBotLocaleResponse' {failureReasons} -> failureReasons) (\s@DescribeBotLocaleResponse' {} a -> s {failureReasons = a} :: DescribeBotLocaleResponse) Prelude.. Lens.mapping Lens.coerced++-- | The number of intents defined for the locale.+describeBotLocaleResponse_intentsCount :: Lens.Lens' DescribeBotLocaleResponse (Prelude.Maybe Prelude.Int)+describeBotLocaleResponse_intentsCount = Lens.lens (\DescribeBotLocaleResponse' {intentsCount} -> intentsCount) (\s@DescribeBotLocaleResponse' {} a -> s {intentsCount = a} :: DescribeBotLocaleResponse)++-- | The date and time that the locale was last submitted for building.+describeBotLocaleResponse_lastBuildSubmittedDateTime :: Lens.Lens' DescribeBotLocaleResponse (Prelude.Maybe Prelude.UTCTime)+describeBotLocaleResponse_lastBuildSubmittedDateTime = Lens.lens (\DescribeBotLocaleResponse' {lastBuildSubmittedDateTime} -> lastBuildSubmittedDateTime) (\s@DescribeBotLocaleResponse' {} a -> s {lastBuildSubmittedDateTime = a} :: DescribeBotLocaleResponse) Prelude.. Lens.mapping Data._Time++-- | The date and time that the locale was last updated.+describeBotLocaleResponse_lastUpdatedDateTime :: Lens.Lens' DescribeBotLocaleResponse (Prelude.Maybe Prelude.UTCTime)+describeBotLocaleResponse_lastUpdatedDateTime = Lens.lens (\DescribeBotLocaleResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DescribeBotLocaleResponse' {} a -> s {lastUpdatedDateTime = a} :: DescribeBotLocaleResponse) Prelude.. Lens.mapping Data._Time++-- | The unique identifier of the described locale.+describeBotLocaleResponse_localeId :: Lens.Lens' DescribeBotLocaleResponse (Prelude.Maybe Prelude.Text)+describeBotLocaleResponse_localeId = Lens.lens (\DescribeBotLocaleResponse' {localeId} -> localeId) (\s@DescribeBotLocaleResponse' {} a -> s {localeId = a} :: DescribeBotLocaleResponse)++-- | The name of the locale.+describeBotLocaleResponse_localeName :: Lens.Lens' DescribeBotLocaleResponse (Prelude.Maybe Prelude.Text)+describeBotLocaleResponse_localeName = Lens.lens (\DescribeBotLocaleResponse' {localeName} -> localeName) (\s@DescribeBotLocaleResponse' {} a -> s {localeName = a} :: DescribeBotLocaleResponse)++-- | The confidence threshold where Amazon Lex inserts the+-- @AMAZON.FallbackIntent@ and @AMAZON.KendraSearchIntent@ intents in the+-- list of possible intents for an utterance.+describeBotLocaleResponse_nluIntentConfidenceThreshold :: Lens.Lens' DescribeBotLocaleResponse (Prelude.Maybe Prelude.Double)+describeBotLocaleResponse_nluIntentConfidenceThreshold = Lens.lens (\DescribeBotLocaleResponse' {nluIntentConfidenceThreshold} -> nluIntentConfidenceThreshold) (\s@DescribeBotLocaleResponse' {} a -> s {nluIntentConfidenceThreshold = a} :: DescribeBotLocaleResponse)++-- | Recommended actions to take to resolve an error in the @failureReasons@+-- field.+describeBotLocaleResponse_recommendedActions :: Lens.Lens' DescribeBotLocaleResponse (Prelude.Maybe [Prelude.Text])+describeBotLocaleResponse_recommendedActions = Lens.lens (\DescribeBotLocaleResponse' {recommendedActions} -> recommendedActions) (\s@DescribeBotLocaleResponse' {} a -> s {recommendedActions = a} :: DescribeBotLocaleResponse) Prelude.. Lens.mapping Lens.coerced++-- | The number of slot types defined for the locale.+describeBotLocaleResponse_slotTypesCount :: Lens.Lens' DescribeBotLocaleResponse (Prelude.Maybe Prelude.Int)+describeBotLocaleResponse_slotTypesCount = Lens.lens (\DescribeBotLocaleResponse' {slotTypesCount} -> slotTypesCount) (\s@DescribeBotLocaleResponse' {} a -> s {slotTypesCount = a} :: DescribeBotLocaleResponse)++-- | The Amazon Polly voice Amazon Lex uses for voice interaction with the+-- user.+describeBotLocaleResponse_voiceSettings :: Lens.Lens' DescribeBotLocaleResponse (Prelude.Maybe VoiceSettings)+describeBotLocaleResponse_voiceSettings = Lens.lens (\DescribeBotLocaleResponse' {voiceSettings} -> voiceSettings) (\s@DescribeBotLocaleResponse' {} a -> s {voiceSettings = a} :: DescribeBotLocaleResponse)++-- | The response's http status code.+describeBotLocaleResponse_httpStatus :: Lens.Lens' DescribeBotLocaleResponse Prelude.Int+describeBotLocaleResponse_httpStatus = Lens.lens (\DescribeBotLocaleResponse' {httpStatus} -> httpStatus) (\s@DescribeBotLocaleResponse' {} a -> s {httpStatus = a} :: DescribeBotLocaleResponse)++instance Prelude.NFData DescribeBotLocaleResponse where+  rnf DescribeBotLocaleResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botLocaleHistoryEvents+      `Prelude.seq` Prelude.rnf botLocaleStatus+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf failureReasons+      `Prelude.seq` Prelude.rnf intentsCount+      `Prelude.seq` Prelude.rnf lastBuildSubmittedDateTime+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf localeName+      `Prelude.seq` Prelude.rnf nluIntentConfidenceThreshold+      `Prelude.seq` Prelude.rnf recommendedActions+      `Prelude.seq` Prelude.rnf slotTypesCount+      `Prelude.seq` Prelude.rnf voiceSettings+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DescribeBotRecommendation.hs view
@@ -0,0 +1,377 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DescribeBotRecommendation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Provides metadata information about a bot recommendation. This+-- information will enable you to get a description on the request inputs,+-- to download associated transcripts after processing is complete, and to+-- download intents and slot-types generated by the bot recommendation.+module Amazonka.LexV2Models.DescribeBotRecommendation+  ( -- * Creating a Request+    DescribeBotRecommendation (..),+    newDescribeBotRecommendation,++    -- * Request Lenses+    describeBotRecommendation_botId,+    describeBotRecommendation_botVersion,+    describeBotRecommendation_localeId,+    describeBotRecommendation_botRecommendationId,++    -- * Destructuring the Response+    DescribeBotRecommendationResponse (..),+    newDescribeBotRecommendationResponse,++    -- * Response Lenses+    describeBotRecommendationResponse_botId,+    describeBotRecommendationResponse_botRecommendationId,+    describeBotRecommendationResponse_botRecommendationResults,+    describeBotRecommendationResponse_botRecommendationStatus,+    describeBotRecommendationResponse_botVersion,+    describeBotRecommendationResponse_creationDateTime,+    describeBotRecommendationResponse_encryptionSetting,+    describeBotRecommendationResponse_failureReasons,+    describeBotRecommendationResponse_lastUpdatedDateTime,+    describeBotRecommendationResponse_localeId,+    describeBotRecommendationResponse_transcriptSourceSetting,+    describeBotRecommendationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeBotRecommendation' smart constructor.+data DescribeBotRecommendation = DescribeBotRecommendation'+  { -- | The unique identifier of the bot associated with the bot recommendation.+    botId :: Prelude.Text,+    -- | The version of the bot associated with the bot recommendation.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale of the bot recommendation to+    -- describe. The string must match one of the supported locales. For more+    -- information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text,+    -- | The identifier of the bot recommendation to describe.+    botRecommendationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeBotRecommendation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'describeBotRecommendation_botId' - The unique identifier of the bot associated with the bot recommendation.+--+-- 'botVersion', 'describeBotRecommendation_botVersion' - The version of the bot associated with the bot recommendation.+--+-- 'localeId', 'describeBotRecommendation_localeId' - The identifier of the language and locale of the bot recommendation to+-- describe. The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+--+-- 'botRecommendationId', 'describeBotRecommendation_botRecommendationId' - The identifier of the bot recommendation to describe.+newDescribeBotRecommendation ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  -- | 'botRecommendationId'+  Prelude.Text ->+  DescribeBotRecommendation+newDescribeBotRecommendation+  pBotId_+  pBotVersion_+  pLocaleId_+  pBotRecommendationId_ =+    DescribeBotRecommendation'+      { botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_,+        botRecommendationId = pBotRecommendationId_+      }++-- | The unique identifier of the bot associated with the bot recommendation.+describeBotRecommendation_botId :: Lens.Lens' DescribeBotRecommendation Prelude.Text+describeBotRecommendation_botId = Lens.lens (\DescribeBotRecommendation' {botId} -> botId) (\s@DescribeBotRecommendation' {} a -> s {botId = a} :: DescribeBotRecommendation)++-- | The version of the bot associated with the bot recommendation.+describeBotRecommendation_botVersion :: Lens.Lens' DescribeBotRecommendation Prelude.Text+describeBotRecommendation_botVersion = Lens.lens (\DescribeBotRecommendation' {botVersion} -> botVersion) (\s@DescribeBotRecommendation' {} a -> s {botVersion = a} :: DescribeBotRecommendation)++-- | The identifier of the language and locale of the bot recommendation to+-- describe. The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+describeBotRecommendation_localeId :: Lens.Lens' DescribeBotRecommendation Prelude.Text+describeBotRecommendation_localeId = Lens.lens (\DescribeBotRecommendation' {localeId} -> localeId) (\s@DescribeBotRecommendation' {} a -> s {localeId = a} :: DescribeBotRecommendation)++-- | The identifier of the bot recommendation to describe.+describeBotRecommendation_botRecommendationId :: Lens.Lens' DescribeBotRecommendation Prelude.Text+describeBotRecommendation_botRecommendationId = Lens.lens (\DescribeBotRecommendation' {botRecommendationId} -> botRecommendationId) (\s@DescribeBotRecommendation' {} a -> s {botRecommendationId = a} :: DescribeBotRecommendation)++instance Core.AWSRequest DescribeBotRecommendation where+  type+    AWSResponse DescribeBotRecommendation =+      DescribeBotRecommendationResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeBotRecommendationResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botRecommendationId")+            Prelude.<*> (x Data..?> "botRecommendationResults")+            Prelude.<*> (x Data..?> "botRecommendationStatus")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "encryptionSetting")+            Prelude.<*> (x Data..?> "failureReasons" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "transcriptSourceSetting")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeBotRecommendation where+  hashWithSalt _salt DescribeBotRecommendation' {..} =+    _salt+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` botRecommendationId++instance Prelude.NFData DescribeBotRecommendation where+  rnf DescribeBotRecommendation' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf botRecommendationId++instance Data.ToHeaders DescribeBotRecommendation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeBotRecommendation where+  toPath DescribeBotRecommendation' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/botrecommendations/",+        Data.toBS botRecommendationId,+        "/"+      ]++instance Data.ToQuery DescribeBotRecommendation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeBotRecommendationResponse' smart constructor.+data DescribeBotRecommendationResponse = DescribeBotRecommendationResponse'+  { -- | The identifier of the bot associated with the bot recommendation.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the bot recommendation being described.+    botRecommendationId :: Prelude.Maybe Prelude.Text,+    -- | The object representing the URL of the bot definition, the URL of the+    -- associated transcript and a statistical summary of the bot+    -- recommendation results.+    botRecommendationResults :: Prelude.Maybe BotRecommendationResults,+    -- | The status of the bot recommendation. If the status is Failed, then the+    -- reasons for the failure are listed in the failureReasons field.+    botRecommendationStatus :: Prelude.Maybe BotRecommendationStatus,+    -- | The version of the bot associated with the bot recommendation.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the bot recommendation was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The object representing the passwords that were used to encrypt the data+    -- related to the bot recommendation results, as well as the KMS key ARN+    -- used to encrypt the associated metadata.+    encryptionSetting :: Prelude.Maybe EncryptionSetting,+    -- | If botRecommendationStatus is Failed, Amazon Lex explains why.+    failureReasons :: Prelude.Maybe [Prelude.Text],+    -- | The date and time that the bot recommendation was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The identifier of the language and locale of the bot recommendation to+    -- describe.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The object representing the Amazon S3 bucket containing the transcript,+    -- as well as the associated metadata.+    transcriptSourceSetting :: Prelude.Maybe TranscriptSourceSetting,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeBotRecommendationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'describeBotRecommendationResponse_botId' - The identifier of the bot associated with the bot recommendation.+--+-- 'botRecommendationId', 'describeBotRecommendationResponse_botRecommendationId' - The identifier of the bot recommendation being described.+--+-- 'botRecommendationResults', 'describeBotRecommendationResponse_botRecommendationResults' - The object representing the URL of the bot definition, the URL of the+-- associated transcript and a statistical summary of the bot+-- recommendation results.+--+-- 'botRecommendationStatus', 'describeBotRecommendationResponse_botRecommendationStatus' - The status of the bot recommendation. If the status is Failed, then the+-- reasons for the failure are listed in the failureReasons field.+--+-- 'botVersion', 'describeBotRecommendationResponse_botVersion' - The version of the bot associated with the bot recommendation.+--+-- 'creationDateTime', 'describeBotRecommendationResponse_creationDateTime' - The date and time that the bot recommendation was created.+--+-- 'encryptionSetting', 'describeBotRecommendationResponse_encryptionSetting' - The object representing the passwords that were used to encrypt the data+-- related to the bot recommendation results, as well as the KMS key ARN+-- used to encrypt the associated metadata.+--+-- 'failureReasons', 'describeBotRecommendationResponse_failureReasons' - If botRecommendationStatus is Failed, Amazon Lex explains why.+--+-- 'lastUpdatedDateTime', 'describeBotRecommendationResponse_lastUpdatedDateTime' - The date and time that the bot recommendation was last updated.+--+-- 'localeId', 'describeBotRecommendationResponse_localeId' - The identifier of the language and locale of the bot recommendation to+-- describe.+--+-- 'transcriptSourceSetting', 'describeBotRecommendationResponse_transcriptSourceSetting' - The object representing the Amazon S3 bucket containing the transcript,+-- as well as the associated metadata.+--+-- 'httpStatus', 'describeBotRecommendationResponse_httpStatus' - The response's http status code.+newDescribeBotRecommendationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeBotRecommendationResponse+newDescribeBotRecommendationResponse pHttpStatus_ =+  DescribeBotRecommendationResponse'+    { botId =+        Prelude.Nothing,+      botRecommendationId = Prelude.Nothing,+      botRecommendationResults =+        Prelude.Nothing,+      botRecommendationStatus =+        Prelude.Nothing,+      botVersion = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      encryptionSetting = Prelude.Nothing,+      failureReasons = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      localeId = Prelude.Nothing,+      transcriptSourceSetting =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot associated with the bot recommendation.+describeBotRecommendationResponse_botId :: Lens.Lens' DescribeBotRecommendationResponse (Prelude.Maybe Prelude.Text)+describeBotRecommendationResponse_botId = Lens.lens (\DescribeBotRecommendationResponse' {botId} -> botId) (\s@DescribeBotRecommendationResponse' {} a -> s {botId = a} :: DescribeBotRecommendationResponse)++-- | The identifier of the bot recommendation being described.+describeBotRecommendationResponse_botRecommendationId :: Lens.Lens' DescribeBotRecommendationResponse (Prelude.Maybe Prelude.Text)+describeBotRecommendationResponse_botRecommendationId = Lens.lens (\DescribeBotRecommendationResponse' {botRecommendationId} -> botRecommendationId) (\s@DescribeBotRecommendationResponse' {} a -> s {botRecommendationId = a} :: DescribeBotRecommendationResponse)++-- | The object representing the URL of the bot definition, the URL of the+-- associated transcript and a statistical summary of the bot+-- recommendation results.+describeBotRecommendationResponse_botRecommendationResults :: Lens.Lens' DescribeBotRecommendationResponse (Prelude.Maybe BotRecommendationResults)+describeBotRecommendationResponse_botRecommendationResults = Lens.lens (\DescribeBotRecommendationResponse' {botRecommendationResults} -> botRecommendationResults) (\s@DescribeBotRecommendationResponse' {} a -> s {botRecommendationResults = a} :: DescribeBotRecommendationResponse)++-- | The status of the bot recommendation. If the status is Failed, then the+-- reasons for the failure are listed in the failureReasons field.+describeBotRecommendationResponse_botRecommendationStatus :: Lens.Lens' DescribeBotRecommendationResponse (Prelude.Maybe BotRecommendationStatus)+describeBotRecommendationResponse_botRecommendationStatus = Lens.lens (\DescribeBotRecommendationResponse' {botRecommendationStatus} -> botRecommendationStatus) (\s@DescribeBotRecommendationResponse' {} a -> s {botRecommendationStatus = a} :: DescribeBotRecommendationResponse)++-- | The version of the bot associated with the bot recommendation.+describeBotRecommendationResponse_botVersion :: Lens.Lens' DescribeBotRecommendationResponse (Prelude.Maybe Prelude.Text)+describeBotRecommendationResponse_botVersion = Lens.lens (\DescribeBotRecommendationResponse' {botVersion} -> botVersion) (\s@DescribeBotRecommendationResponse' {} a -> s {botVersion = a} :: DescribeBotRecommendationResponse)++-- | The date and time that the bot recommendation was created.+describeBotRecommendationResponse_creationDateTime :: Lens.Lens' DescribeBotRecommendationResponse (Prelude.Maybe Prelude.UTCTime)+describeBotRecommendationResponse_creationDateTime = Lens.lens (\DescribeBotRecommendationResponse' {creationDateTime} -> creationDateTime) (\s@DescribeBotRecommendationResponse' {} a -> s {creationDateTime = a} :: DescribeBotRecommendationResponse) Prelude.. Lens.mapping Data._Time++-- | The object representing the passwords that were used to encrypt the data+-- related to the bot recommendation results, as well as the KMS key ARN+-- used to encrypt the associated metadata.+describeBotRecommendationResponse_encryptionSetting :: Lens.Lens' DescribeBotRecommendationResponse (Prelude.Maybe EncryptionSetting)+describeBotRecommendationResponse_encryptionSetting = Lens.lens (\DescribeBotRecommendationResponse' {encryptionSetting} -> encryptionSetting) (\s@DescribeBotRecommendationResponse' {} a -> s {encryptionSetting = a} :: DescribeBotRecommendationResponse)++-- | If botRecommendationStatus is Failed, Amazon Lex explains why.+describeBotRecommendationResponse_failureReasons :: Lens.Lens' DescribeBotRecommendationResponse (Prelude.Maybe [Prelude.Text])+describeBotRecommendationResponse_failureReasons = Lens.lens (\DescribeBotRecommendationResponse' {failureReasons} -> failureReasons) (\s@DescribeBotRecommendationResponse' {} a -> s {failureReasons = a} :: DescribeBotRecommendationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The date and time that the bot recommendation was last updated.+describeBotRecommendationResponse_lastUpdatedDateTime :: Lens.Lens' DescribeBotRecommendationResponse (Prelude.Maybe Prelude.UTCTime)+describeBotRecommendationResponse_lastUpdatedDateTime = Lens.lens (\DescribeBotRecommendationResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DescribeBotRecommendationResponse' {} a -> s {lastUpdatedDateTime = a} :: DescribeBotRecommendationResponse) Prelude.. Lens.mapping Data._Time++-- | The identifier of the language and locale of the bot recommendation to+-- describe.+describeBotRecommendationResponse_localeId :: Lens.Lens' DescribeBotRecommendationResponse (Prelude.Maybe Prelude.Text)+describeBotRecommendationResponse_localeId = Lens.lens (\DescribeBotRecommendationResponse' {localeId} -> localeId) (\s@DescribeBotRecommendationResponse' {} a -> s {localeId = a} :: DescribeBotRecommendationResponse)++-- | The object representing the Amazon S3 bucket containing the transcript,+-- as well as the associated metadata.+describeBotRecommendationResponse_transcriptSourceSetting :: Lens.Lens' DescribeBotRecommendationResponse (Prelude.Maybe TranscriptSourceSetting)+describeBotRecommendationResponse_transcriptSourceSetting = Lens.lens (\DescribeBotRecommendationResponse' {transcriptSourceSetting} -> transcriptSourceSetting) (\s@DescribeBotRecommendationResponse' {} a -> s {transcriptSourceSetting = a} :: DescribeBotRecommendationResponse)++-- | The response's http status code.+describeBotRecommendationResponse_httpStatus :: Lens.Lens' DescribeBotRecommendationResponse Prelude.Int+describeBotRecommendationResponse_httpStatus = Lens.lens (\DescribeBotRecommendationResponse' {httpStatus} -> httpStatus) (\s@DescribeBotRecommendationResponse' {} a -> s {httpStatus = a} :: DescribeBotRecommendationResponse)++instance+  Prelude.NFData+    DescribeBotRecommendationResponse+  where+  rnf DescribeBotRecommendationResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botRecommendationId+      `Prelude.seq` Prelude.rnf botRecommendationResults+      `Prelude.seq` Prelude.rnf botRecommendationStatus+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf encryptionSetting+      `Prelude.seq` Prelude.rnf failureReasons+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf transcriptSourceSetting+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DescribeBotVersion.hs view
@@ -0,0 +1,302 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DescribeBotVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Provides metadata about a version of a bot.+module Amazonka.LexV2Models.DescribeBotVersion+  ( -- * Creating a Request+    DescribeBotVersion (..),+    newDescribeBotVersion,++    -- * Request Lenses+    describeBotVersion_botId,+    describeBotVersion_botVersion,++    -- * Destructuring the Response+    DescribeBotVersionResponse (..),+    newDescribeBotVersionResponse,++    -- * Response Lenses+    describeBotVersionResponse_botId,+    describeBotVersionResponse_botName,+    describeBotVersionResponse_botStatus,+    describeBotVersionResponse_botVersion,+    describeBotVersionResponse_creationDateTime,+    describeBotVersionResponse_dataPrivacy,+    describeBotVersionResponse_description,+    describeBotVersionResponse_failureReasons,+    describeBotVersionResponse_idleSessionTTLInSeconds,+    describeBotVersionResponse_roleArn,+    describeBotVersionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeBotVersion' smart constructor.+data DescribeBotVersion = DescribeBotVersion'+  { -- | The identifier of the bot containing the version to return metadata for.+    botId :: Prelude.Text,+    -- | The version of the bot to return metadata for.+    botVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeBotVersion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'describeBotVersion_botId' - The identifier of the bot containing the version to return metadata for.+--+-- 'botVersion', 'describeBotVersion_botVersion' - The version of the bot to return metadata for.+newDescribeBotVersion ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  DescribeBotVersion+newDescribeBotVersion pBotId_ pBotVersion_ =+  DescribeBotVersion'+    { botId = pBotId_,+      botVersion = pBotVersion_+    }++-- | The identifier of the bot containing the version to return metadata for.+describeBotVersion_botId :: Lens.Lens' DescribeBotVersion Prelude.Text+describeBotVersion_botId = Lens.lens (\DescribeBotVersion' {botId} -> botId) (\s@DescribeBotVersion' {} a -> s {botId = a} :: DescribeBotVersion)++-- | The version of the bot to return metadata for.+describeBotVersion_botVersion :: Lens.Lens' DescribeBotVersion Prelude.Text+describeBotVersion_botVersion = Lens.lens (\DescribeBotVersion' {botVersion} -> botVersion) (\s@DescribeBotVersion' {} a -> s {botVersion = a} :: DescribeBotVersion)++instance Core.AWSRequest DescribeBotVersion where+  type+    AWSResponse DescribeBotVersion =+      DescribeBotVersionResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeBotVersionResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botName")+            Prelude.<*> (x Data..?> "botStatus")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "dataPrivacy")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "failureReasons" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "idleSessionTTLInSeconds")+            Prelude.<*> (x Data..?> "roleArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeBotVersion where+  hashWithSalt _salt DescribeBotVersion' {..} =+    _salt+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion++instance Prelude.NFData DescribeBotVersion where+  rnf DescribeBotVersion' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion++instance Data.ToHeaders DescribeBotVersion where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeBotVersion where+  toPath DescribeBotVersion' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/"+      ]++instance Data.ToQuery DescribeBotVersion where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeBotVersionResponse' smart constructor.+data DescribeBotVersionResponse = DescribeBotVersionResponse'+  { -- | The identifier of the bot that contains the version.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The name of the bot that contains the version.+    botName :: Prelude.Maybe Prelude.Text,+    -- | The current status of the bot. When the status is @Available@, the bot+    -- version is ready for use.+    botStatus :: Prelude.Maybe BotStatus,+    -- | The version of the bot to describe.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | A timestamp of the date and time that the bot version was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | Data privacy settings for the bot version.+    dataPrivacy :: Prelude.Maybe DataPrivacy,+    -- | The description specified for the bot.+    description :: Prelude.Maybe Prelude.Text,+    -- | If the @botStatus@ is @Failed@, this contains a list of reasons that the+    -- version couldn\'t be built.+    failureReasons :: Prelude.Maybe [Prelude.Text],+    -- | The number of seconds that a session with the bot remains active before+    -- it is discarded by Amazon Lex.+    idleSessionTTLInSeconds :: Prelude.Maybe Prelude.Natural,+    -- | The Amazon Resource Name (ARN) of an IAM role that has permission to+    -- access the bot version.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeBotVersionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'describeBotVersionResponse_botId' - The identifier of the bot that contains the version.+--+-- 'botName', 'describeBotVersionResponse_botName' - The name of the bot that contains the version.+--+-- 'botStatus', 'describeBotVersionResponse_botStatus' - The current status of the bot. When the status is @Available@, the bot+-- version is ready for use.+--+-- 'botVersion', 'describeBotVersionResponse_botVersion' - The version of the bot to describe.+--+-- 'creationDateTime', 'describeBotVersionResponse_creationDateTime' - A timestamp of the date and time that the bot version was created.+--+-- 'dataPrivacy', 'describeBotVersionResponse_dataPrivacy' - Data privacy settings for the bot version.+--+-- 'description', 'describeBotVersionResponse_description' - The description specified for the bot.+--+-- 'failureReasons', 'describeBotVersionResponse_failureReasons' - If the @botStatus@ is @Failed@, this contains a list of reasons that the+-- version couldn\'t be built.+--+-- 'idleSessionTTLInSeconds', 'describeBotVersionResponse_idleSessionTTLInSeconds' - The number of seconds that a session with the bot remains active before+-- it is discarded by Amazon Lex.+--+-- 'roleArn', 'describeBotVersionResponse_roleArn' - The Amazon Resource Name (ARN) of an IAM role that has permission to+-- access the bot version.+--+-- 'httpStatus', 'describeBotVersionResponse_httpStatus' - The response's http status code.+newDescribeBotVersionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeBotVersionResponse+newDescribeBotVersionResponse pHttpStatus_ =+  DescribeBotVersionResponse'+    { botId =+        Prelude.Nothing,+      botName = Prelude.Nothing,+      botStatus = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      dataPrivacy = Prelude.Nothing,+      description = Prelude.Nothing,+      failureReasons = Prelude.Nothing,+      idleSessionTTLInSeconds = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot that contains the version.+describeBotVersionResponse_botId :: Lens.Lens' DescribeBotVersionResponse (Prelude.Maybe Prelude.Text)+describeBotVersionResponse_botId = Lens.lens (\DescribeBotVersionResponse' {botId} -> botId) (\s@DescribeBotVersionResponse' {} a -> s {botId = a} :: DescribeBotVersionResponse)++-- | The name of the bot that contains the version.+describeBotVersionResponse_botName :: Lens.Lens' DescribeBotVersionResponse (Prelude.Maybe Prelude.Text)+describeBotVersionResponse_botName = Lens.lens (\DescribeBotVersionResponse' {botName} -> botName) (\s@DescribeBotVersionResponse' {} a -> s {botName = a} :: DescribeBotVersionResponse)++-- | The current status of the bot. When the status is @Available@, the bot+-- version is ready for use.+describeBotVersionResponse_botStatus :: Lens.Lens' DescribeBotVersionResponse (Prelude.Maybe BotStatus)+describeBotVersionResponse_botStatus = Lens.lens (\DescribeBotVersionResponse' {botStatus} -> botStatus) (\s@DescribeBotVersionResponse' {} a -> s {botStatus = a} :: DescribeBotVersionResponse)++-- | The version of the bot to describe.+describeBotVersionResponse_botVersion :: Lens.Lens' DescribeBotVersionResponse (Prelude.Maybe Prelude.Text)+describeBotVersionResponse_botVersion = Lens.lens (\DescribeBotVersionResponse' {botVersion} -> botVersion) (\s@DescribeBotVersionResponse' {} a -> s {botVersion = a} :: DescribeBotVersionResponse)++-- | A timestamp of the date and time that the bot version was created.+describeBotVersionResponse_creationDateTime :: Lens.Lens' DescribeBotVersionResponse (Prelude.Maybe Prelude.UTCTime)+describeBotVersionResponse_creationDateTime = Lens.lens (\DescribeBotVersionResponse' {creationDateTime} -> creationDateTime) (\s@DescribeBotVersionResponse' {} a -> s {creationDateTime = a} :: DescribeBotVersionResponse) Prelude.. Lens.mapping Data._Time++-- | Data privacy settings for the bot version.+describeBotVersionResponse_dataPrivacy :: Lens.Lens' DescribeBotVersionResponse (Prelude.Maybe DataPrivacy)+describeBotVersionResponse_dataPrivacy = Lens.lens (\DescribeBotVersionResponse' {dataPrivacy} -> dataPrivacy) (\s@DescribeBotVersionResponse' {} a -> s {dataPrivacy = a} :: DescribeBotVersionResponse)++-- | The description specified for the bot.+describeBotVersionResponse_description :: Lens.Lens' DescribeBotVersionResponse (Prelude.Maybe Prelude.Text)+describeBotVersionResponse_description = Lens.lens (\DescribeBotVersionResponse' {description} -> description) (\s@DescribeBotVersionResponse' {} a -> s {description = a} :: DescribeBotVersionResponse)++-- | If the @botStatus@ is @Failed@, this contains a list of reasons that the+-- version couldn\'t be built.+describeBotVersionResponse_failureReasons :: Lens.Lens' DescribeBotVersionResponse (Prelude.Maybe [Prelude.Text])+describeBotVersionResponse_failureReasons = Lens.lens (\DescribeBotVersionResponse' {failureReasons} -> failureReasons) (\s@DescribeBotVersionResponse' {} a -> s {failureReasons = a} :: DescribeBotVersionResponse) Prelude.. Lens.mapping Lens.coerced++-- | The number of seconds that a session with the bot remains active before+-- it is discarded by Amazon Lex.+describeBotVersionResponse_idleSessionTTLInSeconds :: Lens.Lens' DescribeBotVersionResponse (Prelude.Maybe Prelude.Natural)+describeBotVersionResponse_idleSessionTTLInSeconds = Lens.lens (\DescribeBotVersionResponse' {idleSessionTTLInSeconds} -> idleSessionTTLInSeconds) (\s@DescribeBotVersionResponse' {} a -> s {idleSessionTTLInSeconds = a} :: DescribeBotVersionResponse)++-- | The Amazon Resource Name (ARN) of an IAM role that has permission to+-- access the bot version.+describeBotVersionResponse_roleArn :: Lens.Lens' DescribeBotVersionResponse (Prelude.Maybe Prelude.Text)+describeBotVersionResponse_roleArn = Lens.lens (\DescribeBotVersionResponse' {roleArn} -> roleArn) (\s@DescribeBotVersionResponse' {} a -> s {roleArn = a} :: DescribeBotVersionResponse)++-- | The response's http status code.+describeBotVersionResponse_httpStatus :: Lens.Lens' DescribeBotVersionResponse Prelude.Int+describeBotVersionResponse_httpStatus = Lens.lens (\DescribeBotVersionResponse' {httpStatus} -> httpStatus) (\s@DescribeBotVersionResponse' {} a -> s {httpStatus = a} :: DescribeBotVersionResponse)++instance Prelude.NFData DescribeBotVersionResponse where+  rnf DescribeBotVersionResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botName+      `Prelude.seq` Prelude.rnf botStatus+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf dataPrivacy+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf failureReasons+      `Prelude.seq` Prelude.rnf idleSessionTTLInSeconds+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DescribeCustomVocabularyMetadata.hs view
@@ -0,0 +1,291 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DescribeCustomVocabularyMetadata+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Provides metadata information about a custom vocabulary.+module Amazonka.LexV2Models.DescribeCustomVocabularyMetadata+  ( -- * Creating a Request+    DescribeCustomVocabularyMetadata (..),+    newDescribeCustomVocabularyMetadata,++    -- * Request Lenses+    describeCustomVocabularyMetadata_botId,+    describeCustomVocabularyMetadata_botVersion,+    describeCustomVocabularyMetadata_localeId,++    -- * Destructuring the Response+    DescribeCustomVocabularyMetadataResponse (..),+    newDescribeCustomVocabularyMetadataResponse,++    -- * Response Lenses+    describeCustomVocabularyMetadataResponse_botId,+    describeCustomVocabularyMetadataResponse_botVersion,+    describeCustomVocabularyMetadataResponse_creationDateTime,+    describeCustomVocabularyMetadataResponse_customVocabularyStatus,+    describeCustomVocabularyMetadataResponse_lastUpdatedDateTime,+    describeCustomVocabularyMetadataResponse_localeId,+    describeCustomVocabularyMetadataResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeCustomVocabularyMetadata' smart constructor.+data DescribeCustomVocabularyMetadata = DescribeCustomVocabularyMetadata'+  { -- | The unique identifier of the bot that contains the custom vocabulary.+    botId :: Prelude.Text,+    -- | The bot version of the bot to return metadata for.+    botVersion :: Prelude.Text,+    -- | The locale to return the custom vocabulary information for. The locale+    -- must be @en_GB@.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCustomVocabularyMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'describeCustomVocabularyMetadata_botId' - The unique identifier of the bot that contains the custom vocabulary.+--+-- 'botVersion', 'describeCustomVocabularyMetadata_botVersion' - The bot version of the bot to return metadata for.+--+-- 'localeId', 'describeCustomVocabularyMetadata_localeId' - The locale to return the custom vocabulary information for. The locale+-- must be @en_GB@.+newDescribeCustomVocabularyMetadata ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  DescribeCustomVocabularyMetadata+newDescribeCustomVocabularyMetadata+  pBotId_+  pBotVersion_+  pLocaleId_ =+    DescribeCustomVocabularyMetadata'+      { botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_+      }++-- | The unique identifier of the bot that contains the custom vocabulary.+describeCustomVocabularyMetadata_botId :: Lens.Lens' DescribeCustomVocabularyMetadata Prelude.Text+describeCustomVocabularyMetadata_botId = Lens.lens (\DescribeCustomVocabularyMetadata' {botId} -> botId) (\s@DescribeCustomVocabularyMetadata' {} a -> s {botId = a} :: DescribeCustomVocabularyMetadata)++-- | The bot version of the bot to return metadata for.+describeCustomVocabularyMetadata_botVersion :: Lens.Lens' DescribeCustomVocabularyMetadata Prelude.Text+describeCustomVocabularyMetadata_botVersion = Lens.lens (\DescribeCustomVocabularyMetadata' {botVersion} -> botVersion) (\s@DescribeCustomVocabularyMetadata' {} a -> s {botVersion = a} :: DescribeCustomVocabularyMetadata)++-- | The locale to return the custom vocabulary information for. The locale+-- must be @en_GB@.+describeCustomVocabularyMetadata_localeId :: Lens.Lens' DescribeCustomVocabularyMetadata Prelude.Text+describeCustomVocabularyMetadata_localeId = Lens.lens (\DescribeCustomVocabularyMetadata' {localeId} -> localeId) (\s@DescribeCustomVocabularyMetadata' {} a -> s {localeId = a} :: DescribeCustomVocabularyMetadata)++instance+  Core.AWSRequest+    DescribeCustomVocabularyMetadata+  where+  type+    AWSResponse DescribeCustomVocabularyMetadata =+      DescribeCustomVocabularyMetadataResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeCustomVocabularyMetadataResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "customVocabularyStatus")+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeCustomVocabularyMetadata+  where+  hashWithSalt+    _salt+    DescribeCustomVocabularyMetadata' {..} =+      _salt+        `Prelude.hashWithSalt` botId+        `Prelude.hashWithSalt` botVersion+        `Prelude.hashWithSalt` localeId++instance+  Prelude.NFData+    DescribeCustomVocabularyMetadata+  where+  rnf DescribeCustomVocabularyMetadata' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance+  Data.ToHeaders+    DescribeCustomVocabularyMetadata+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeCustomVocabularyMetadata where+  toPath DescribeCustomVocabularyMetadata' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/customvocabulary/DEFAULT/metadata"+      ]++instance+  Data.ToQuery+    DescribeCustomVocabularyMetadata+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeCustomVocabularyMetadataResponse' smart constructor.+data DescribeCustomVocabularyMetadataResponse = DescribeCustomVocabularyMetadataResponse'+  { -- | The identifier of the bot that contains the custom vocabulary.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot that contains the custom vocabulary to describe.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the custom vocabulary was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The status of the custom vocabulary. If the status is @Ready@ the custom+    -- vocabulary is ready to use.+    customVocabularyStatus :: Prelude.Maybe CustomVocabularyStatus,+    -- | The date and time that the custom vocabulary was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The locale that contains the custom vocabulary to describe.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCustomVocabularyMetadataResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'describeCustomVocabularyMetadataResponse_botId' - The identifier of the bot that contains the custom vocabulary.+--+-- 'botVersion', 'describeCustomVocabularyMetadataResponse_botVersion' - The version of the bot that contains the custom vocabulary to describe.+--+-- 'creationDateTime', 'describeCustomVocabularyMetadataResponse_creationDateTime' - The date and time that the custom vocabulary was created.+--+-- 'customVocabularyStatus', 'describeCustomVocabularyMetadataResponse_customVocabularyStatus' - The status of the custom vocabulary. If the status is @Ready@ the custom+-- vocabulary is ready to use.+--+-- 'lastUpdatedDateTime', 'describeCustomVocabularyMetadataResponse_lastUpdatedDateTime' - The date and time that the custom vocabulary was last updated.+--+-- 'localeId', 'describeCustomVocabularyMetadataResponse_localeId' - The locale that contains the custom vocabulary to describe.+--+-- 'httpStatus', 'describeCustomVocabularyMetadataResponse_httpStatus' - The response's http status code.+newDescribeCustomVocabularyMetadataResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeCustomVocabularyMetadataResponse+newDescribeCustomVocabularyMetadataResponse+  pHttpStatus_ =+    DescribeCustomVocabularyMetadataResponse'+      { botId =+          Prelude.Nothing,+        botVersion = Prelude.Nothing,+        creationDateTime =+          Prelude.Nothing,+        customVocabularyStatus =+          Prelude.Nothing,+        lastUpdatedDateTime =+          Prelude.Nothing,+        localeId = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The identifier of the bot that contains the custom vocabulary.+describeCustomVocabularyMetadataResponse_botId :: Lens.Lens' DescribeCustomVocabularyMetadataResponse (Prelude.Maybe Prelude.Text)+describeCustomVocabularyMetadataResponse_botId = Lens.lens (\DescribeCustomVocabularyMetadataResponse' {botId} -> botId) (\s@DescribeCustomVocabularyMetadataResponse' {} a -> s {botId = a} :: DescribeCustomVocabularyMetadataResponse)++-- | The version of the bot that contains the custom vocabulary to describe.+describeCustomVocabularyMetadataResponse_botVersion :: Lens.Lens' DescribeCustomVocabularyMetadataResponse (Prelude.Maybe Prelude.Text)+describeCustomVocabularyMetadataResponse_botVersion = Lens.lens (\DescribeCustomVocabularyMetadataResponse' {botVersion} -> botVersion) (\s@DescribeCustomVocabularyMetadataResponse' {} a -> s {botVersion = a} :: DescribeCustomVocabularyMetadataResponse)++-- | The date and time that the custom vocabulary was created.+describeCustomVocabularyMetadataResponse_creationDateTime :: Lens.Lens' DescribeCustomVocabularyMetadataResponse (Prelude.Maybe Prelude.UTCTime)+describeCustomVocabularyMetadataResponse_creationDateTime = Lens.lens (\DescribeCustomVocabularyMetadataResponse' {creationDateTime} -> creationDateTime) (\s@DescribeCustomVocabularyMetadataResponse' {} a -> s {creationDateTime = a} :: DescribeCustomVocabularyMetadataResponse) Prelude.. Lens.mapping Data._Time++-- | The status of the custom vocabulary. If the status is @Ready@ the custom+-- vocabulary is ready to use.+describeCustomVocabularyMetadataResponse_customVocabularyStatus :: Lens.Lens' DescribeCustomVocabularyMetadataResponse (Prelude.Maybe CustomVocabularyStatus)+describeCustomVocabularyMetadataResponse_customVocabularyStatus = Lens.lens (\DescribeCustomVocabularyMetadataResponse' {customVocabularyStatus} -> customVocabularyStatus) (\s@DescribeCustomVocabularyMetadataResponse' {} a -> s {customVocabularyStatus = a} :: DescribeCustomVocabularyMetadataResponse)++-- | The date and time that the custom vocabulary was last updated.+describeCustomVocabularyMetadataResponse_lastUpdatedDateTime :: Lens.Lens' DescribeCustomVocabularyMetadataResponse (Prelude.Maybe Prelude.UTCTime)+describeCustomVocabularyMetadataResponse_lastUpdatedDateTime = Lens.lens (\DescribeCustomVocabularyMetadataResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DescribeCustomVocabularyMetadataResponse' {} a -> s {lastUpdatedDateTime = a} :: DescribeCustomVocabularyMetadataResponse) Prelude.. Lens.mapping Data._Time++-- | The locale that contains the custom vocabulary to describe.+describeCustomVocabularyMetadataResponse_localeId :: Lens.Lens' DescribeCustomVocabularyMetadataResponse (Prelude.Maybe Prelude.Text)+describeCustomVocabularyMetadataResponse_localeId = Lens.lens (\DescribeCustomVocabularyMetadataResponse' {localeId} -> localeId) (\s@DescribeCustomVocabularyMetadataResponse' {} a -> s {localeId = a} :: DescribeCustomVocabularyMetadataResponse)++-- | The response's http status code.+describeCustomVocabularyMetadataResponse_httpStatus :: Lens.Lens' DescribeCustomVocabularyMetadataResponse Prelude.Int+describeCustomVocabularyMetadataResponse_httpStatus = Lens.lens (\DescribeCustomVocabularyMetadataResponse' {httpStatus} -> httpStatus) (\s@DescribeCustomVocabularyMetadataResponse' {} a -> s {httpStatus = a} :: DescribeCustomVocabularyMetadataResponse)++instance+  Prelude.NFData+    DescribeCustomVocabularyMetadataResponse+  where+  rnf DescribeCustomVocabularyMetadataResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf customVocabularyStatus+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DescribeExport.hs view
@@ -0,0 +1,258 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DescribeExport+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets information about a specific export.+module Amazonka.LexV2Models.DescribeExport+  ( -- * Creating a Request+    DescribeExport (..),+    newDescribeExport,++    -- * Request Lenses+    describeExport_exportId,++    -- * Destructuring the Response+    DescribeExportResponse (..),+    newDescribeExportResponse,++    -- * Response Lenses+    describeExportResponse_creationDateTime,+    describeExportResponse_downloadUrl,+    describeExportResponse_exportId,+    describeExportResponse_exportStatus,+    describeExportResponse_failureReasons,+    describeExportResponse_fileFormat,+    describeExportResponse_lastUpdatedDateTime,+    describeExportResponse_resourceSpecification,+    describeExportResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeExport' smart constructor.+data DescribeExport = DescribeExport'+  { -- | The unique identifier of the export to describe.+    exportId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeExport' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exportId', 'describeExport_exportId' - The unique identifier of the export to describe.+newDescribeExport ::+  -- | 'exportId'+  Prelude.Text ->+  DescribeExport+newDescribeExport pExportId_ =+  DescribeExport' {exportId = pExportId_}++-- | The unique identifier of the export to describe.+describeExport_exportId :: Lens.Lens' DescribeExport Prelude.Text+describeExport_exportId = Lens.lens (\DescribeExport' {exportId} -> exportId) (\s@DescribeExport' {} a -> s {exportId = a} :: DescribeExport)++instance Core.AWSRequest DescribeExport where+  type+    AWSResponse DescribeExport =+      DescribeExportResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeExportResponse'+            Prelude.<$> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "downloadUrl")+            Prelude.<*> (x Data..?> "exportId")+            Prelude.<*> (x Data..?> "exportStatus")+            Prelude.<*> (x Data..?> "failureReasons" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "fileFormat")+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "resourceSpecification")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeExport where+  hashWithSalt _salt DescribeExport' {..} =+    _salt `Prelude.hashWithSalt` exportId++instance Prelude.NFData DescribeExport where+  rnf DescribeExport' {..} = Prelude.rnf exportId++instance Data.ToHeaders DescribeExport where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeExport where+  toPath DescribeExport' {..} =+    Prelude.mconcat+      ["/exports/", Data.toBS exportId, "/"]++instance Data.ToQuery DescribeExport where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeExportResponse' smart constructor.+data DescribeExportResponse = DescribeExportResponse'+  { -- | The date and time that the export was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | A pre-signed S3 URL that points to the bot or bot locale archive. The+    -- URL is only available for 5 minutes after calling the @DescribeExport@+    -- operation.+    downloadUrl :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the described export.+    exportId :: Prelude.Maybe Prelude.Text,+    -- | The status of the export. When the status is @Complete@ the export+    -- archive file is available for download.+    exportStatus :: Prelude.Maybe ExportStatus,+    -- | If the @exportStatus@ is failed, contains one or more reasons why the+    -- export could not be completed.+    failureReasons :: Prelude.Maybe [Prelude.Text],+    -- | The file format used in the files that describe the resource.+    fileFormat :: Prelude.Maybe ImportExportFileFormat,+    -- | The last date and time that the export was updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The bot, bot ID, and optional locale ID of the exported bot or bot+    -- locale.+    resourceSpecification :: Prelude.Maybe ExportResourceSpecification,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeExportResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'describeExportResponse_creationDateTime' - The date and time that the export was created.+--+-- 'downloadUrl', 'describeExportResponse_downloadUrl' - A pre-signed S3 URL that points to the bot or bot locale archive. The+-- URL is only available for 5 minutes after calling the @DescribeExport@+-- operation.+--+-- 'exportId', 'describeExportResponse_exportId' - The unique identifier of the described export.+--+-- 'exportStatus', 'describeExportResponse_exportStatus' - The status of the export. When the status is @Complete@ the export+-- archive file is available for download.+--+-- 'failureReasons', 'describeExportResponse_failureReasons' - If the @exportStatus@ is failed, contains one or more reasons why the+-- export could not be completed.+--+-- 'fileFormat', 'describeExportResponse_fileFormat' - The file format used in the files that describe the resource.+--+-- 'lastUpdatedDateTime', 'describeExportResponse_lastUpdatedDateTime' - The last date and time that the export was updated.+--+-- 'resourceSpecification', 'describeExportResponse_resourceSpecification' - The bot, bot ID, and optional locale ID of the exported bot or bot+-- locale.+--+-- 'httpStatus', 'describeExportResponse_httpStatus' - The response's http status code.+newDescribeExportResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeExportResponse+newDescribeExportResponse pHttpStatus_ =+  DescribeExportResponse'+    { creationDateTime =+        Prelude.Nothing,+      downloadUrl = Prelude.Nothing,+      exportId = Prelude.Nothing,+      exportStatus = Prelude.Nothing,+      failureReasons = Prelude.Nothing,+      fileFormat = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      resourceSpecification = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The date and time that the export was created.+describeExportResponse_creationDateTime :: Lens.Lens' DescribeExportResponse (Prelude.Maybe Prelude.UTCTime)+describeExportResponse_creationDateTime = Lens.lens (\DescribeExportResponse' {creationDateTime} -> creationDateTime) (\s@DescribeExportResponse' {} a -> s {creationDateTime = a} :: DescribeExportResponse) Prelude.. Lens.mapping Data._Time++-- | A pre-signed S3 URL that points to the bot or bot locale archive. The+-- URL is only available for 5 minutes after calling the @DescribeExport@+-- operation.+describeExportResponse_downloadUrl :: Lens.Lens' DescribeExportResponse (Prelude.Maybe Prelude.Text)+describeExportResponse_downloadUrl = Lens.lens (\DescribeExportResponse' {downloadUrl} -> downloadUrl) (\s@DescribeExportResponse' {} a -> s {downloadUrl = a} :: DescribeExportResponse)++-- | The unique identifier of the described export.+describeExportResponse_exportId :: Lens.Lens' DescribeExportResponse (Prelude.Maybe Prelude.Text)+describeExportResponse_exportId = Lens.lens (\DescribeExportResponse' {exportId} -> exportId) (\s@DescribeExportResponse' {} a -> s {exportId = a} :: DescribeExportResponse)++-- | The status of the export. When the status is @Complete@ the export+-- archive file is available for download.+describeExportResponse_exportStatus :: Lens.Lens' DescribeExportResponse (Prelude.Maybe ExportStatus)+describeExportResponse_exportStatus = Lens.lens (\DescribeExportResponse' {exportStatus} -> exportStatus) (\s@DescribeExportResponse' {} a -> s {exportStatus = a} :: DescribeExportResponse)++-- | If the @exportStatus@ is failed, contains one or more reasons why the+-- export could not be completed.+describeExportResponse_failureReasons :: Lens.Lens' DescribeExportResponse (Prelude.Maybe [Prelude.Text])+describeExportResponse_failureReasons = Lens.lens (\DescribeExportResponse' {failureReasons} -> failureReasons) (\s@DescribeExportResponse' {} a -> s {failureReasons = a} :: DescribeExportResponse) Prelude.. Lens.mapping Lens.coerced++-- | The file format used in the files that describe the resource.+describeExportResponse_fileFormat :: Lens.Lens' DescribeExportResponse (Prelude.Maybe ImportExportFileFormat)+describeExportResponse_fileFormat = Lens.lens (\DescribeExportResponse' {fileFormat} -> fileFormat) (\s@DescribeExportResponse' {} a -> s {fileFormat = a} :: DescribeExportResponse)++-- | The last date and time that the export was updated.+describeExportResponse_lastUpdatedDateTime :: Lens.Lens' DescribeExportResponse (Prelude.Maybe Prelude.UTCTime)+describeExportResponse_lastUpdatedDateTime = Lens.lens (\DescribeExportResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DescribeExportResponse' {} a -> s {lastUpdatedDateTime = a} :: DescribeExportResponse) Prelude.. Lens.mapping Data._Time++-- | The bot, bot ID, and optional locale ID of the exported bot or bot+-- locale.+describeExportResponse_resourceSpecification :: Lens.Lens' DescribeExportResponse (Prelude.Maybe ExportResourceSpecification)+describeExportResponse_resourceSpecification = Lens.lens (\DescribeExportResponse' {resourceSpecification} -> resourceSpecification) (\s@DescribeExportResponse' {} a -> s {resourceSpecification = a} :: DescribeExportResponse)++-- | The response's http status code.+describeExportResponse_httpStatus :: Lens.Lens' DescribeExportResponse Prelude.Int+describeExportResponse_httpStatus = Lens.lens (\DescribeExportResponse' {httpStatus} -> httpStatus) (\s@DescribeExportResponse' {} a -> s {httpStatus = a} :: DescribeExportResponse)++instance Prelude.NFData DescribeExportResponse where+  rnf DescribeExportResponse' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf downloadUrl+      `Prelude.seq` Prelude.rnf exportId+      `Prelude.seq` Prelude.rnf exportStatus+      `Prelude.seq` Prelude.rnf failureReasons+      `Prelude.seq` Prelude.rnf fileFormat+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf resourceSpecification+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DescribeImport.hs view
@@ -0,0 +1,276 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DescribeImport+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets information about a specific import.+module Amazonka.LexV2Models.DescribeImport+  ( -- * Creating a Request+    DescribeImport (..),+    newDescribeImport,++    -- * Request Lenses+    describeImport_importId,++    -- * Destructuring the Response+    DescribeImportResponse (..),+    newDescribeImportResponse,++    -- * Response Lenses+    describeImportResponse_creationDateTime,+    describeImportResponse_failureReasons,+    describeImportResponse_importId,+    describeImportResponse_importStatus,+    describeImportResponse_importedResourceId,+    describeImportResponse_importedResourceName,+    describeImportResponse_lastUpdatedDateTime,+    describeImportResponse_mergeStrategy,+    describeImportResponse_resourceSpecification,+    describeImportResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeImport' smart constructor.+data DescribeImport = DescribeImport'+  { -- | The unique identifier of the import to describe.+    importId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeImport' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'importId', 'describeImport_importId' - The unique identifier of the import to describe.+newDescribeImport ::+  -- | 'importId'+  Prelude.Text ->+  DescribeImport+newDescribeImport pImportId_ =+  DescribeImport' {importId = pImportId_}++-- | The unique identifier of the import to describe.+describeImport_importId :: Lens.Lens' DescribeImport Prelude.Text+describeImport_importId = Lens.lens (\DescribeImport' {importId} -> importId) (\s@DescribeImport' {} a -> s {importId = a} :: DescribeImport)++instance Core.AWSRequest DescribeImport where+  type+    AWSResponse DescribeImport =+      DescribeImportResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeImportResponse'+            Prelude.<$> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "failureReasons" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "importId")+            Prelude.<*> (x Data..?> "importStatus")+            Prelude.<*> (x Data..?> "importedResourceId")+            Prelude.<*> (x Data..?> "importedResourceName")+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "mergeStrategy")+            Prelude.<*> (x Data..?> "resourceSpecification")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeImport where+  hashWithSalt _salt DescribeImport' {..} =+    _salt `Prelude.hashWithSalt` importId++instance Prelude.NFData DescribeImport where+  rnf DescribeImport' {..} = Prelude.rnf importId++instance Data.ToHeaders DescribeImport where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeImport where+  toPath DescribeImport' {..} =+    Prelude.mconcat+      ["/imports/", Data.toBS importId, "/"]++instance Data.ToQuery DescribeImport where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeImportResponse' smart constructor.+data DescribeImportResponse = DescribeImportResponse'+  { -- | The date and time that the import was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | If the @importStatus@ field is @Failed@, this provides one or more+    -- reasons for the failure.+    failureReasons :: Prelude.Maybe [Prelude.Text],+    -- | The unique identifier of the described import.+    importId :: Prelude.Maybe Prelude.Text,+    -- | The status of the import process. When the status is @Completed@ the+    -- resource is imported and ready for use.+    importStatus :: Prelude.Maybe ImportStatus,+    -- | The unique identifier that Amazon Lex assigned to the resource created+    -- by the import.+    importedResourceId :: Prelude.Maybe Prelude.Text,+    -- | The name of the imported resource.+    importedResourceName :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the import was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The strategy used when there was a name conflict between the imported+    -- resource and an existing resource. When the merge strategy is+    -- @FailOnConflict@ existing resources are not overwritten and the import+    -- fails.+    mergeStrategy :: Prelude.Maybe MergeStrategy,+    -- | The specifications of the imported bot, bot locale, or custom+    -- vocabulary.+    resourceSpecification :: Prelude.Maybe ImportResourceSpecification,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeImportResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'describeImportResponse_creationDateTime' - The date and time that the import was created.+--+-- 'failureReasons', 'describeImportResponse_failureReasons' - If the @importStatus@ field is @Failed@, this provides one or more+-- reasons for the failure.+--+-- 'importId', 'describeImportResponse_importId' - The unique identifier of the described import.+--+-- 'importStatus', 'describeImportResponse_importStatus' - The status of the import process. When the status is @Completed@ the+-- resource is imported and ready for use.+--+-- 'importedResourceId', 'describeImportResponse_importedResourceId' - The unique identifier that Amazon Lex assigned to the resource created+-- by the import.+--+-- 'importedResourceName', 'describeImportResponse_importedResourceName' - The name of the imported resource.+--+-- 'lastUpdatedDateTime', 'describeImportResponse_lastUpdatedDateTime' - The date and time that the import was last updated.+--+-- 'mergeStrategy', 'describeImportResponse_mergeStrategy' - The strategy used when there was a name conflict between the imported+-- resource and an existing resource. When the merge strategy is+-- @FailOnConflict@ existing resources are not overwritten and the import+-- fails.+--+-- 'resourceSpecification', 'describeImportResponse_resourceSpecification' - The specifications of the imported bot, bot locale, or custom+-- vocabulary.+--+-- 'httpStatus', 'describeImportResponse_httpStatus' - The response's http status code.+newDescribeImportResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeImportResponse+newDescribeImportResponse pHttpStatus_ =+  DescribeImportResponse'+    { creationDateTime =+        Prelude.Nothing,+      failureReasons = Prelude.Nothing,+      importId = Prelude.Nothing,+      importStatus = Prelude.Nothing,+      importedResourceId = Prelude.Nothing,+      importedResourceName = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      mergeStrategy = Prelude.Nothing,+      resourceSpecification = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The date and time that the import was created.+describeImportResponse_creationDateTime :: Lens.Lens' DescribeImportResponse (Prelude.Maybe Prelude.UTCTime)+describeImportResponse_creationDateTime = Lens.lens (\DescribeImportResponse' {creationDateTime} -> creationDateTime) (\s@DescribeImportResponse' {} a -> s {creationDateTime = a} :: DescribeImportResponse) Prelude.. Lens.mapping Data._Time++-- | If the @importStatus@ field is @Failed@, this provides one or more+-- reasons for the failure.+describeImportResponse_failureReasons :: Lens.Lens' DescribeImportResponse (Prelude.Maybe [Prelude.Text])+describeImportResponse_failureReasons = Lens.lens (\DescribeImportResponse' {failureReasons} -> failureReasons) (\s@DescribeImportResponse' {} a -> s {failureReasons = a} :: DescribeImportResponse) Prelude.. Lens.mapping Lens.coerced++-- | The unique identifier of the described import.+describeImportResponse_importId :: Lens.Lens' DescribeImportResponse (Prelude.Maybe Prelude.Text)+describeImportResponse_importId = Lens.lens (\DescribeImportResponse' {importId} -> importId) (\s@DescribeImportResponse' {} a -> s {importId = a} :: DescribeImportResponse)++-- | The status of the import process. When the status is @Completed@ the+-- resource is imported and ready for use.+describeImportResponse_importStatus :: Lens.Lens' DescribeImportResponse (Prelude.Maybe ImportStatus)+describeImportResponse_importStatus = Lens.lens (\DescribeImportResponse' {importStatus} -> importStatus) (\s@DescribeImportResponse' {} a -> s {importStatus = a} :: DescribeImportResponse)++-- | The unique identifier that Amazon Lex assigned to the resource created+-- by the import.+describeImportResponse_importedResourceId :: Lens.Lens' DescribeImportResponse (Prelude.Maybe Prelude.Text)+describeImportResponse_importedResourceId = Lens.lens (\DescribeImportResponse' {importedResourceId} -> importedResourceId) (\s@DescribeImportResponse' {} a -> s {importedResourceId = a} :: DescribeImportResponse)++-- | The name of the imported resource.+describeImportResponse_importedResourceName :: Lens.Lens' DescribeImportResponse (Prelude.Maybe Prelude.Text)+describeImportResponse_importedResourceName = Lens.lens (\DescribeImportResponse' {importedResourceName} -> importedResourceName) (\s@DescribeImportResponse' {} a -> s {importedResourceName = a} :: DescribeImportResponse)++-- | The date and time that the import was last updated.+describeImportResponse_lastUpdatedDateTime :: Lens.Lens' DescribeImportResponse (Prelude.Maybe Prelude.UTCTime)+describeImportResponse_lastUpdatedDateTime = Lens.lens (\DescribeImportResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DescribeImportResponse' {} a -> s {lastUpdatedDateTime = a} :: DescribeImportResponse) Prelude.. Lens.mapping Data._Time++-- | The strategy used when there was a name conflict between the imported+-- resource and an existing resource. When the merge strategy is+-- @FailOnConflict@ existing resources are not overwritten and the import+-- fails.+describeImportResponse_mergeStrategy :: Lens.Lens' DescribeImportResponse (Prelude.Maybe MergeStrategy)+describeImportResponse_mergeStrategy = Lens.lens (\DescribeImportResponse' {mergeStrategy} -> mergeStrategy) (\s@DescribeImportResponse' {} a -> s {mergeStrategy = a} :: DescribeImportResponse)++-- | The specifications of the imported bot, bot locale, or custom+-- vocabulary.+describeImportResponse_resourceSpecification :: Lens.Lens' DescribeImportResponse (Prelude.Maybe ImportResourceSpecification)+describeImportResponse_resourceSpecification = Lens.lens (\DescribeImportResponse' {resourceSpecification} -> resourceSpecification) (\s@DescribeImportResponse' {} a -> s {resourceSpecification = a} :: DescribeImportResponse)++-- | The response's http status code.+describeImportResponse_httpStatus :: Lens.Lens' DescribeImportResponse Prelude.Int+describeImportResponse_httpStatus = Lens.lens (\DescribeImportResponse' {httpStatus} -> httpStatus) (\s@DescribeImportResponse' {} a -> s {httpStatus = a} :: DescribeImportResponse)++instance Prelude.NFData DescribeImportResponse where+  rnf DescribeImportResponse' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf failureReasons+      `Prelude.seq` Prelude.rnf importId+      `Prelude.seq` Prelude.rnf importStatus+      `Prelude.seq` Prelude.rnf importedResourceId+      `Prelude.seq` Prelude.rnf importedResourceName+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf mergeStrategy+      `Prelude.seq` Prelude.rnf resourceSpecification+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DescribeIntent.hs view
@@ -0,0 +1,464 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DescribeIntent+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns metadata about an intent.+module Amazonka.LexV2Models.DescribeIntent+  ( -- * Creating a Request+    DescribeIntent (..),+    newDescribeIntent,++    -- * Request Lenses+    describeIntent_intentId,+    describeIntent_botId,+    describeIntent_botVersion,+    describeIntent_localeId,++    -- * Destructuring the Response+    DescribeIntentResponse (..),+    newDescribeIntentResponse,++    -- * Response Lenses+    describeIntentResponse_botId,+    describeIntentResponse_botVersion,+    describeIntentResponse_creationDateTime,+    describeIntentResponse_description,+    describeIntentResponse_dialogCodeHook,+    describeIntentResponse_fulfillmentCodeHook,+    describeIntentResponse_initialResponseSetting,+    describeIntentResponse_inputContexts,+    describeIntentResponse_intentClosingSetting,+    describeIntentResponse_intentConfirmationSetting,+    describeIntentResponse_intentId,+    describeIntentResponse_intentName,+    describeIntentResponse_kendraConfiguration,+    describeIntentResponse_lastUpdatedDateTime,+    describeIntentResponse_localeId,+    describeIntentResponse_outputContexts,+    describeIntentResponse_parentIntentSignature,+    describeIntentResponse_sampleUtterances,+    describeIntentResponse_slotPriorities,+    describeIntentResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeIntent' smart constructor.+data DescribeIntent = DescribeIntent'+  { -- | The identifier of the intent to describe.+    intentId :: Prelude.Text,+    -- | The identifier of the bot associated with the intent.+    botId :: Prelude.Text,+    -- | The version of the bot associated with the intent.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale of the intent to describe. The+    -- string must match one of the supported locales. For more information,+    -- see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeIntent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'intentId', 'describeIntent_intentId' - The identifier of the intent to describe.+--+-- 'botId', 'describeIntent_botId' - The identifier of the bot associated with the intent.+--+-- 'botVersion', 'describeIntent_botVersion' - The version of the bot associated with the intent.+--+-- 'localeId', 'describeIntent_localeId' - The identifier of the language and locale of the intent to describe. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+newDescribeIntent ::+  -- | 'intentId'+  Prelude.Text ->+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  DescribeIntent+newDescribeIntent+  pIntentId_+  pBotId_+  pBotVersion_+  pLocaleId_ =+    DescribeIntent'+      { intentId = pIntentId_,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_+      }++-- | The identifier of the intent to describe.+describeIntent_intentId :: Lens.Lens' DescribeIntent Prelude.Text+describeIntent_intentId = Lens.lens (\DescribeIntent' {intentId} -> intentId) (\s@DescribeIntent' {} a -> s {intentId = a} :: DescribeIntent)++-- | The identifier of the bot associated with the intent.+describeIntent_botId :: Lens.Lens' DescribeIntent Prelude.Text+describeIntent_botId = Lens.lens (\DescribeIntent' {botId} -> botId) (\s@DescribeIntent' {} a -> s {botId = a} :: DescribeIntent)++-- | The version of the bot associated with the intent.+describeIntent_botVersion :: Lens.Lens' DescribeIntent Prelude.Text+describeIntent_botVersion = Lens.lens (\DescribeIntent' {botVersion} -> botVersion) (\s@DescribeIntent' {} a -> s {botVersion = a} :: DescribeIntent)++-- | The identifier of the language and locale of the intent to describe. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+describeIntent_localeId :: Lens.Lens' DescribeIntent Prelude.Text+describeIntent_localeId = Lens.lens (\DescribeIntent' {localeId} -> localeId) (\s@DescribeIntent' {} a -> s {localeId = a} :: DescribeIntent)++instance Core.AWSRequest DescribeIntent where+  type+    AWSResponse DescribeIntent =+      DescribeIntentResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeIntentResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "dialogCodeHook")+            Prelude.<*> (x Data..?> "fulfillmentCodeHook")+            Prelude.<*> (x Data..?> "initialResponseSetting")+            Prelude.<*> (x Data..?> "inputContexts" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "intentClosingSetting")+            Prelude.<*> (x Data..?> "intentConfirmationSetting")+            Prelude.<*> (x Data..?> "intentId")+            Prelude.<*> (x Data..?> "intentName")+            Prelude.<*> (x Data..?> "kendraConfiguration")+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "outputContexts" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "parentIntentSignature")+            Prelude.<*> ( x+                            Data..?> "sampleUtterances"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "slotPriorities" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeIntent where+  hashWithSalt _salt DescribeIntent' {..} =+    _salt+      `Prelude.hashWithSalt` intentId+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData DescribeIntent where+  rnf DescribeIntent' {..} =+    Prelude.rnf intentId+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders DescribeIntent where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeIntent where+  toPath DescribeIntent' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/intents/",+        Data.toBS intentId,+        "/"+      ]++instance Data.ToQuery DescribeIntent where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeIntentResponse' smart constructor.+data DescribeIntentResponse = DescribeIntentResponse'+  { -- | The identifier of the bot associated with the intent.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot associated with the intent.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | A timestamp of the date and time that the intent was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The description of the intent.+    description :: Prelude.Maybe Prelude.Text,+    -- | The Lambda function called during each turn of a conversation with the+    -- intent.+    dialogCodeHook :: Prelude.Maybe DialogCodeHookSettings,+    -- | The Lambda function called when the intent is complete and ready for+    -- fulfillment.+    fulfillmentCodeHook :: Prelude.Maybe FulfillmentCodeHookSettings,+    initialResponseSetting :: Prelude.Maybe InitialResponseSetting,+    -- | A list of contexts that must be active for the intent to be considered+    -- for sending to the user.+    inputContexts :: Prelude.Maybe [InputContext],+    -- | The response that Amazon Lex sends to when the intent is closed.+    intentClosingSetting :: Prelude.Maybe IntentClosingSetting,+    -- | Prompts that Amazon Lex sends to the user to confirm completion of an+    -- intent.+    intentConfirmationSetting :: Prelude.Maybe IntentConfirmationSetting,+    -- | The unique identifier assigned to the intent when it was created.+    intentId :: Prelude.Maybe Prelude.Text,+    -- | The name specified for the intent.+    intentName :: Prelude.Maybe Prelude.Text,+    -- | Configuration information required to use the+    -- @AMAZON.KendraSearchIntent@ intent.+    kendraConfiguration :: Prelude.Maybe KendraConfiguration,+    -- | A timestamp of the date and time that the intent was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The language and locale specified for the intent.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | A list of contexts that are activated when the intent is fulfilled.+    outputContexts :: Prelude.Maybe [OutputContext],+    -- | The identifier of the built-in intent that this intent is derived from,+    -- if any.+    parentIntentSignature :: Prelude.Maybe Prelude.Text,+    -- | User utterances that trigger this intent.+    sampleUtterances :: Prelude.Maybe [SampleUtterance],+    -- | The list that determines the priority that slots should be elicited from+    -- the user.+    slotPriorities :: Prelude.Maybe [SlotPriority],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeIntentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'describeIntentResponse_botId' - The identifier of the bot associated with the intent.+--+-- 'botVersion', 'describeIntentResponse_botVersion' - The version of the bot associated with the intent.+--+-- 'creationDateTime', 'describeIntentResponse_creationDateTime' - A timestamp of the date and time that the intent was created.+--+-- 'description', 'describeIntentResponse_description' - The description of the intent.+--+-- 'dialogCodeHook', 'describeIntentResponse_dialogCodeHook' - The Lambda function called during each turn of a conversation with the+-- intent.+--+-- 'fulfillmentCodeHook', 'describeIntentResponse_fulfillmentCodeHook' - The Lambda function called when the intent is complete and ready for+-- fulfillment.+--+-- 'initialResponseSetting', 'describeIntentResponse_initialResponseSetting' -+--+-- 'inputContexts', 'describeIntentResponse_inputContexts' - A list of contexts that must be active for the intent to be considered+-- for sending to the user.+--+-- 'intentClosingSetting', 'describeIntentResponse_intentClosingSetting' - The response that Amazon Lex sends to when the intent is closed.+--+-- 'intentConfirmationSetting', 'describeIntentResponse_intentConfirmationSetting' - Prompts that Amazon Lex sends to the user to confirm completion of an+-- intent.+--+-- 'intentId', 'describeIntentResponse_intentId' - The unique identifier assigned to the intent when it was created.+--+-- 'intentName', 'describeIntentResponse_intentName' - The name specified for the intent.+--+-- 'kendraConfiguration', 'describeIntentResponse_kendraConfiguration' - Configuration information required to use the+-- @AMAZON.KendraSearchIntent@ intent.+--+-- 'lastUpdatedDateTime', 'describeIntentResponse_lastUpdatedDateTime' - A timestamp of the date and time that the intent was last updated.+--+-- 'localeId', 'describeIntentResponse_localeId' - The language and locale specified for the intent.+--+-- 'outputContexts', 'describeIntentResponse_outputContexts' - A list of contexts that are activated when the intent is fulfilled.+--+-- 'parentIntentSignature', 'describeIntentResponse_parentIntentSignature' - The identifier of the built-in intent that this intent is derived from,+-- if any.+--+-- 'sampleUtterances', 'describeIntentResponse_sampleUtterances' - User utterances that trigger this intent.+--+-- 'slotPriorities', 'describeIntentResponse_slotPriorities' - The list that determines the priority that slots should be elicited from+-- the user.+--+-- 'httpStatus', 'describeIntentResponse_httpStatus' - The response's http status code.+newDescribeIntentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeIntentResponse+newDescribeIntentResponse pHttpStatus_ =+  DescribeIntentResponse'+    { botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      dialogCodeHook = Prelude.Nothing,+      fulfillmentCodeHook = Prelude.Nothing,+      initialResponseSetting = Prelude.Nothing,+      inputContexts = Prelude.Nothing,+      intentClosingSetting = Prelude.Nothing,+      intentConfirmationSetting = Prelude.Nothing,+      intentId = Prelude.Nothing,+      intentName = Prelude.Nothing,+      kendraConfiguration = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      localeId = Prelude.Nothing,+      outputContexts = Prelude.Nothing,+      parentIntentSignature = Prelude.Nothing,+      sampleUtterances = Prelude.Nothing,+      slotPriorities = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot associated with the intent.+describeIntentResponse_botId :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe Prelude.Text)+describeIntentResponse_botId = Lens.lens (\DescribeIntentResponse' {botId} -> botId) (\s@DescribeIntentResponse' {} a -> s {botId = a} :: DescribeIntentResponse)++-- | The version of the bot associated with the intent.+describeIntentResponse_botVersion :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe Prelude.Text)+describeIntentResponse_botVersion = Lens.lens (\DescribeIntentResponse' {botVersion} -> botVersion) (\s@DescribeIntentResponse' {} a -> s {botVersion = a} :: DescribeIntentResponse)++-- | A timestamp of the date and time that the intent was created.+describeIntentResponse_creationDateTime :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe Prelude.UTCTime)+describeIntentResponse_creationDateTime = Lens.lens (\DescribeIntentResponse' {creationDateTime} -> creationDateTime) (\s@DescribeIntentResponse' {} a -> s {creationDateTime = a} :: DescribeIntentResponse) Prelude.. Lens.mapping Data._Time++-- | The description of the intent.+describeIntentResponse_description :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe Prelude.Text)+describeIntentResponse_description = Lens.lens (\DescribeIntentResponse' {description} -> description) (\s@DescribeIntentResponse' {} a -> s {description = a} :: DescribeIntentResponse)++-- | The Lambda function called during each turn of a conversation with the+-- intent.+describeIntentResponse_dialogCodeHook :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe DialogCodeHookSettings)+describeIntentResponse_dialogCodeHook = Lens.lens (\DescribeIntentResponse' {dialogCodeHook} -> dialogCodeHook) (\s@DescribeIntentResponse' {} a -> s {dialogCodeHook = a} :: DescribeIntentResponse)++-- | The Lambda function called when the intent is complete and ready for+-- fulfillment.+describeIntentResponse_fulfillmentCodeHook :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe FulfillmentCodeHookSettings)+describeIntentResponse_fulfillmentCodeHook = Lens.lens (\DescribeIntentResponse' {fulfillmentCodeHook} -> fulfillmentCodeHook) (\s@DescribeIntentResponse' {} a -> s {fulfillmentCodeHook = a} :: DescribeIntentResponse)++describeIntentResponse_initialResponseSetting :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe InitialResponseSetting)+describeIntentResponse_initialResponseSetting = Lens.lens (\DescribeIntentResponse' {initialResponseSetting} -> initialResponseSetting) (\s@DescribeIntentResponse' {} a -> s {initialResponseSetting = a} :: DescribeIntentResponse)++-- | A list of contexts that must be active for the intent to be considered+-- for sending to the user.+describeIntentResponse_inputContexts :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe [InputContext])+describeIntentResponse_inputContexts = Lens.lens (\DescribeIntentResponse' {inputContexts} -> inputContexts) (\s@DescribeIntentResponse' {} a -> s {inputContexts = a} :: DescribeIntentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response that Amazon Lex sends to when the intent is closed.+describeIntentResponse_intentClosingSetting :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe IntentClosingSetting)+describeIntentResponse_intentClosingSetting = Lens.lens (\DescribeIntentResponse' {intentClosingSetting} -> intentClosingSetting) (\s@DescribeIntentResponse' {} a -> s {intentClosingSetting = a} :: DescribeIntentResponse)++-- | Prompts that Amazon Lex sends to the user to confirm completion of an+-- intent.+describeIntentResponse_intentConfirmationSetting :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe IntentConfirmationSetting)+describeIntentResponse_intentConfirmationSetting = Lens.lens (\DescribeIntentResponse' {intentConfirmationSetting} -> intentConfirmationSetting) (\s@DescribeIntentResponse' {} a -> s {intentConfirmationSetting = a} :: DescribeIntentResponse)++-- | The unique identifier assigned to the intent when it was created.+describeIntentResponse_intentId :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe Prelude.Text)+describeIntentResponse_intentId = Lens.lens (\DescribeIntentResponse' {intentId} -> intentId) (\s@DescribeIntentResponse' {} a -> s {intentId = a} :: DescribeIntentResponse)++-- | The name specified for the intent.+describeIntentResponse_intentName :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe Prelude.Text)+describeIntentResponse_intentName = Lens.lens (\DescribeIntentResponse' {intentName} -> intentName) (\s@DescribeIntentResponse' {} a -> s {intentName = a} :: DescribeIntentResponse)++-- | Configuration information required to use the+-- @AMAZON.KendraSearchIntent@ intent.+describeIntentResponse_kendraConfiguration :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe KendraConfiguration)+describeIntentResponse_kendraConfiguration = Lens.lens (\DescribeIntentResponse' {kendraConfiguration} -> kendraConfiguration) (\s@DescribeIntentResponse' {} a -> s {kendraConfiguration = a} :: DescribeIntentResponse)++-- | A timestamp of the date and time that the intent was last updated.+describeIntentResponse_lastUpdatedDateTime :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe Prelude.UTCTime)+describeIntentResponse_lastUpdatedDateTime = Lens.lens (\DescribeIntentResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DescribeIntentResponse' {} a -> s {lastUpdatedDateTime = a} :: DescribeIntentResponse) Prelude.. Lens.mapping Data._Time++-- | The language and locale specified for the intent.+describeIntentResponse_localeId :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe Prelude.Text)+describeIntentResponse_localeId = Lens.lens (\DescribeIntentResponse' {localeId} -> localeId) (\s@DescribeIntentResponse' {} a -> s {localeId = a} :: DescribeIntentResponse)++-- | A list of contexts that are activated when the intent is fulfilled.+describeIntentResponse_outputContexts :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe [OutputContext])+describeIntentResponse_outputContexts = Lens.lens (\DescribeIntentResponse' {outputContexts} -> outputContexts) (\s@DescribeIntentResponse' {} a -> s {outputContexts = a} :: DescribeIntentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The identifier of the built-in intent that this intent is derived from,+-- if any.+describeIntentResponse_parentIntentSignature :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe Prelude.Text)+describeIntentResponse_parentIntentSignature = Lens.lens (\DescribeIntentResponse' {parentIntentSignature} -> parentIntentSignature) (\s@DescribeIntentResponse' {} a -> s {parentIntentSignature = a} :: DescribeIntentResponse)++-- | User utterances that trigger this intent.+describeIntentResponse_sampleUtterances :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe [SampleUtterance])+describeIntentResponse_sampleUtterances = Lens.lens (\DescribeIntentResponse' {sampleUtterances} -> sampleUtterances) (\s@DescribeIntentResponse' {} a -> s {sampleUtterances = a} :: DescribeIntentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The list that determines the priority that slots should be elicited from+-- the user.+describeIntentResponse_slotPriorities :: Lens.Lens' DescribeIntentResponse (Prelude.Maybe [SlotPriority])+describeIntentResponse_slotPriorities = Lens.lens (\DescribeIntentResponse' {slotPriorities} -> slotPriorities) (\s@DescribeIntentResponse' {} a -> s {slotPriorities = a} :: DescribeIntentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeIntentResponse_httpStatus :: Lens.Lens' DescribeIntentResponse Prelude.Int+describeIntentResponse_httpStatus = Lens.lens (\DescribeIntentResponse' {httpStatus} -> httpStatus) (\s@DescribeIntentResponse' {} a -> s {httpStatus = a} :: DescribeIntentResponse)++instance Prelude.NFData DescribeIntentResponse where+  rnf DescribeIntentResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf dialogCodeHook+      `Prelude.seq` Prelude.rnf fulfillmentCodeHook+      `Prelude.seq` Prelude.rnf initialResponseSetting+      `Prelude.seq` Prelude.rnf inputContexts+      `Prelude.seq` Prelude.rnf intentClosingSetting+      `Prelude.seq` Prelude.rnf intentConfirmationSetting+      `Prelude.seq` Prelude.rnf intentId+      `Prelude.seq` Prelude.rnf intentName+      `Prelude.seq` Prelude.rnf kendraConfiguration+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf outputContexts+      `Prelude.seq` Prelude.rnf parentIntentSignature+      `Prelude.seq` Prelude.rnf sampleUtterances+      `Prelude.seq` Prelude.rnf slotPriorities+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DescribeResourcePolicy.hs view
@@ -0,0 +1,214 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DescribeResourcePolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the resource policy and policy revision for a bot or bot alias.+module Amazonka.LexV2Models.DescribeResourcePolicy+  ( -- * Creating a Request+    DescribeResourcePolicy (..),+    newDescribeResourcePolicy,++    -- * Request Lenses+    describeResourcePolicy_resourceArn,++    -- * Destructuring the Response+    DescribeResourcePolicyResponse (..),+    newDescribeResourcePolicyResponse,++    -- * Response Lenses+    describeResourcePolicyResponse_policy,+    describeResourcePolicyResponse_resourceArn,+    describeResourcePolicyResponse_revisionId,+    describeResourcePolicyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeResourcePolicy' smart constructor.+data DescribeResourcePolicy = DescribeResourcePolicy'+  { -- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+    -- policy is attached to.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeResourcePolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'describeResourcePolicy_resourceArn' - The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy is attached to.+newDescribeResourcePolicy ::+  -- | 'resourceArn'+  Prelude.Text ->+  DescribeResourcePolicy+newDescribeResourcePolicy pResourceArn_ =+  DescribeResourcePolicy'+    { resourceArn =+        pResourceArn_+    }++-- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy is attached to.+describeResourcePolicy_resourceArn :: Lens.Lens' DescribeResourcePolicy Prelude.Text+describeResourcePolicy_resourceArn = Lens.lens (\DescribeResourcePolicy' {resourceArn} -> resourceArn) (\s@DescribeResourcePolicy' {} a -> s {resourceArn = a} :: DescribeResourcePolicy)++instance Core.AWSRequest DescribeResourcePolicy where+  type+    AWSResponse DescribeResourcePolicy =+      DescribeResourcePolicyResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeResourcePolicyResponse'+            Prelude.<$> (x Data..?> "policy")+            Prelude.<*> (x Data..?> "resourceArn")+            Prelude.<*> (x Data..?> "revisionId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeResourcePolicy where+  hashWithSalt _salt DescribeResourcePolicy' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData DescribeResourcePolicy where+  rnf DescribeResourcePolicy' {..} =+    Prelude.rnf resourceArn++instance Data.ToHeaders DescribeResourcePolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeResourcePolicy where+  toPath DescribeResourcePolicy' {..} =+    Prelude.mconcat+      ["/policy/", Data.toBS resourceArn, "/"]++instance Data.ToQuery DescribeResourcePolicy where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeResourcePolicyResponse' smart constructor.+data DescribeResourcePolicyResponse = DescribeResourcePolicyResponse'+  { -- | The JSON structure that contains the resource policy. For more+    -- information about the contents of a JSON policy document, see+    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html IAM JSON policy reference>+    -- .+    policy :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+    -- policy is attached to.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | The current revision of the resource policy. Use the revision ID to make+    -- sure that you are updating the most current version of a resource policy+    -- when you add a policy statement to a resource, delete a resource, or+    -- update a resource.+    revisionId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeResourcePolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'policy', 'describeResourcePolicyResponse_policy' - The JSON structure that contains the resource policy. For more+-- information about the contents of a JSON policy document, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html IAM JSON policy reference>+-- .+--+-- 'resourceArn', 'describeResourcePolicyResponse_resourceArn' - The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy is attached to.+--+-- 'revisionId', 'describeResourcePolicyResponse_revisionId' - The current revision of the resource policy. Use the revision ID to make+-- sure that you are updating the most current version of a resource policy+-- when you add a policy statement to a resource, delete a resource, or+-- update a resource.+--+-- 'httpStatus', 'describeResourcePolicyResponse_httpStatus' - The response's http status code.+newDescribeResourcePolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeResourcePolicyResponse+newDescribeResourcePolicyResponse pHttpStatus_ =+  DescribeResourcePolicyResponse'+    { policy =+        Prelude.Nothing,+      resourceArn = Prelude.Nothing,+      revisionId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The JSON structure that contains the resource policy. For more+-- information about the contents of a JSON policy document, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html IAM JSON policy reference>+-- .+describeResourcePolicyResponse_policy :: Lens.Lens' DescribeResourcePolicyResponse (Prelude.Maybe Prelude.Text)+describeResourcePolicyResponse_policy = Lens.lens (\DescribeResourcePolicyResponse' {policy} -> policy) (\s@DescribeResourcePolicyResponse' {} a -> s {policy = a} :: DescribeResourcePolicyResponse)++-- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy is attached to.+describeResourcePolicyResponse_resourceArn :: Lens.Lens' DescribeResourcePolicyResponse (Prelude.Maybe Prelude.Text)+describeResourcePolicyResponse_resourceArn = Lens.lens (\DescribeResourcePolicyResponse' {resourceArn} -> resourceArn) (\s@DescribeResourcePolicyResponse' {} a -> s {resourceArn = a} :: DescribeResourcePolicyResponse)++-- | The current revision of the resource policy. Use the revision ID to make+-- sure that you are updating the most current version of a resource policy+-- when you add a policy statement to a resource, delete a resource, or+-- update a resource.+describeResourcePolicyResponse_revisionId :: Lens.Lens' DescribeResourcePolicyResponse (Prelude.Maybe Prelude.Text)+describeResourcePolicyResponse_revisionId = Lens.lens (\DescribeResourcePolicyResponse' {revisionId} -> revisionId) (\s@DescribeResourcePolicyResponse' {} a -> s {revisionId = a} :: DescribeResourcePolicyResponse)++-- | The response's http status code.+describeResourcePolicyResponse_httpStatus :: Lens.Lens' DescribeResourcePolicyResponse Prelude.Int+describeResourcePolicyResponse_httpStatus = Lens.lens (\DescribeResourcePolicyResponse' {httpStatus} -> httpStatus) (\s@DescribeResourcePolicyResponse' {} a -> s {httpStatus = a} :: DescribeResourcePolicyResponse)++instance+  Prelude.NFData+    DescribeResourcePolicyResponse+  where+  rnf DescribeResourcePolicyResponse' {..} =+    Prelude.rnf policy+      `Prelude.seq` Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DescribeSlot.hs view
@@ -0,0 +1,415 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DescribeSlot+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets metadata information about a slot.+module Amazonka.LexV2Models.DescribeSlot+  ( -- * Creating a Request+    DescribeSlot (..),+    newDescribeSlot,++    -- * Request Lenses+    describeSlot_slotId,+    describeSlot_botId,+    describeSlot_botVersion,+    describeSlot_localeId,+    describeSlot_intentId,++    -- * Destructuring the Response+    DescribeSlotResponse (..),+    newDescribeSlotResponse,++    -- * Response Lenses+    describeSlotResponse_botId,+    describeSlotResponse_botVersion,+    describeSlotResponse_creationDateTime,+    describeSlotResponse_description,+    describeSlotResponse_intentId,+    describeSlotResponse_lastUpdatedDateTime,+    describeSlotResponse_localeId,+    describeSlotResponse_multipleValuesSetting,+    describeSlotResponse_obfuscationSetting,+    describeSlotResponse_slotId,+    describeSlotResponse_slotName,+    describeSlotResponse_slotTypeId,+    describeSlotResponse_subSlotSetting,+    describeSlotResponse_valueElicitationSetting,+    describeSlotResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeSlot' smart constructor.+data DescribeSlot = DescribeSlot'+  { -- | The unique identifier for the slot.+    slotId :: Prelude.Text,+    -- | The identifier of the bot associated with the slot.+    botId :: Prelude.Text,+    -- | The version of the bot associated with the slot.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale of the slot to describe. The+    -- string must match one of the supported locales. For more information,+    -- see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text,+    -- | The identifier of the intent that contains the slot.+    intentId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSlot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'slotId', 'describeSlot_slotId' - The unique identifier for the slot.+--+-- 'botId', 'describeSlot_botId' - The identifier of the bot associated with the slot.+--+-- 'botVersion', 'describeSlot_botVersion' - The version of the bot associated with the slot.+--+-- 'localeId', 'describeSlot_localeId' - The identifier of the language and locale of the slot to describe. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+--+-- 'intentId', 'describeSlot_intentId' - The identifier of the intent that contains the slot.+newDescribeSlot ::+  -- | 'slotId'+  Prelude.Text ->+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  -- | 'intentId'+  Prelude.Text ->+  DescribeSlot+newDescribeSlot+  pSlotId_+  pBotId_+  pBotVersion_+  pLocaleId_+  pIntentId_ =+    DescribeSlot'+      { slotId = pSlotId_,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_,+        intentId = pIntentId_+      }++-- | The unique identifier for the slot.+describeSlot_slotId :: Lens.Lens' DescribeSlot Prelude.Text+describeSlot_slotId = Lens.lens (\DescribeSlot' {slotId} -> slotId) (\s@DescribeSlot' {} a -> s {slotId = a} :: DescribeSlot)++-- | The identifier of the bot associated with the slot.+describeSlot_botId :: Lens.Lens' DescribeSlot Prelude.Text+describeSlot_botId = Lens.lens (\DescribeSlot' {botId} -> botId) (\s@DescribeSlot' {} a -> s {botId = a} :: DescribeSlot)++-- | The version of the bot associated with the slot.+describeSlot_botVersion :: Lens.Lens' DescribeSlot Prelude.Text+describeSlot_botVersion = Lens.lens (\DescribeSlot' {botVersion} -> botVersion) (\s@DescribeSlot' {} a -> s {botVersion = a} :: DescribeSlot)++-- | The identifier of the language and locale of the slot to describe. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+describeSlot_localeId :: Lens.Lens' DescribeSlot Prelude.Text+describeSlot_localeId = Lens.lens (\DescribeSlot' {localeId} -> localeId) (\s@DescribeSlot' {} a -> s {localeId = a} :: DescribeSlot)++-- | The identifier of the intent that contains the slot.+describeSlot_intentId :: Lens.Lens' DescribeSlot Prelude.Text+describeSlot_intentId = Lens.lens (\DescribeSlot' {intentId} -> intentId) (\s@DescribeSlot' {} a -> s {intentId = a} :: DescribeSlot)++instance Core.AWSRequest DescribeSlot where+  type AWSResponse DescribeSlot = DescribeSlotResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeSlotResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "intentId")+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "multipleValuesSetting")+            Prelude.<*> (x Data..?> "obfuscationSetting")+            Prelude.<*> (x Data..?> "slotId")+            Prelude.<*> (x Data..?> "slotName")+            Prelude.<*> (x Data..?> "slotTypeId")+            Prelude.<*> (x Data..?> "subSlotSetting")+            Prelude.<*> (x Data..?> "valueElicitationSetting")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeSlot where+  hashWithSalt _salt DescribeSlot' {..} =+    _salt+      `Prelude.hashWithSalt` slotId+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` intentId++instance Prelude.NFData DescribeSlot where+  rnf DescribeSlot' {..} =+    Prelude.rnf slotId+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf intentId++instance Data.ToHeaders DescribeSlot where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeSlot where+  toPath DescribeSlot' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/intents/",+        Data.toBS intentId,+        "/slots/",+        Data.toBS slotId,+        "/"+      ]++instance Data.ToQuery DescribeSlot where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeSlotResponse' smart constructor.+data DescribeSlotResponse = DescribeSlotResponse'+  { -- | The identifier of the bot associated with the slot.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot associated with the slot.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | A timestamp of the date and time that the slot was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The description specified for the slot.+    description :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the intent associated with the slot.+    intentId :: Prelude.Maybe Prelude.Text,+    -- | A timestamp of the date and time that the slot was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The language and locale specified for the slot.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | Indicates whether the slot accepts multiple values in a single+    -- utterance.+    --+    -- If the @multipleValuesSetting@ is not set, the default value is @false@.+    multipleValuesSetting :: Prelude.Maybe MultipleValuesSetting,+    -- | Whether slot values are shown in Amazon CloudWatch logs. If the value is+    -- @None@, the actual value of the slot is shown in logs.+    obfuscationSetting :: Prelude.Maybe ObfuscationSetting,+    -- | The unique identifier generated for the slot.+    slotId :: Prelude.Maybe Prelude.Text,+    -- | The name specified for the slot.+    slotName :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the slot type that determines the values entered into+    -- the slot.+    slotTypeId :: Prelude.Maybe Prelude.Text,+    -- | Specifications for the constituent sub slots and the expression for the+    -- composite slot.+    subSlotSetting :: Prelude.Maybe SubSlotSetting,+    -- | Prompts that Amazon Lex uses to elicit a value for the slot.+    valueElicitationSetting :: Prelude.Maybe SlotValueElicitationSetting,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSlotResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'describeSlotResponse_botId' - The identifier of the bot associated with the slot.+--+-- 'botVersion', 'describeSlotResponse_botVersion' - The version of the bot associated with the slot.+--+-- 'creationDateTime', 'describeSlotResponse_creationDateTime' - A timestamp of the date and time that the slot was created.+--+-- 'description', 'describeSlotResponse_description' - The description specified for the slot.+--+-- 'intentId', 'describeSlotResponse_intentId' - The identifier of the intent associated with the slot.+--+-- 'lastUpdatedDateTime', 'describeSlotResponse_lastUpdatedDateTime' - A timestamp of the date and time that the slot was last updated.+--+-- 'localeId', 'describeSlotResponse_localeId' - The language and locale specified for the slot.+--+-- 'multipleValuesSetting', 'describeSlotResponse_multipleValuesSetting' - Indicates whether the slot accepts multiple values in a single+-- utterance.+--+-- If the @multipleValuesSetting@ is not set, the default value is @false@.+--+-- 'obfuscationSetting', 'describeSlotResponse_obfuscationSetting' - Whether slot values are shown in Amazon CloudWatch logs. If the value is+-- @None@, the actual value of the slot is shown in logs.+--+-- 'slotId', 'describeSlotResponse_slotId' - The unique identifier generated for the slot.+--+-- 'slotName', 'describeSlotResponse_slotName' - The name specified for the slot.+--+-- 'slotTypeId', 'describeSlotResponse_slotTypeId' - The identifier of the slot type that determines the values entered into+-- the slot.+--+-- 'subSlotSetting', 'describeSlotResponse_subSlotSetting' - Specifications for the constituent sub slots and the expression for the+-- composite slot.+--+-- 'valueElicitationSetting', 'describeSlotResponse_valueElicitationSetting' - Prompts that Amazon Lex uses to elicit a value for the slot.+--+-- 'httpStatus', 'describeSlotResponse_httpStatus' - The response's http status code.+newDescribeSlotResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeSlotResponse+newDescribeSlotResponse pHttpStatus_ =+  DescribeSlotResponse'+    { botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      intentId = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      localeId = Prelude.Nothing,+      multipleValuesSetting = Prelude.Nothing,+      obfuscationSetting = Prelude.Nothing,+      slotId = Prelude.Nothing,+      slotName = Prelude.Nothing,+      slotTypeId = Prelude.Nothing,+      subSlotSetting = Prelude.Nothing,+      valueElicitationSetting = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot associated with the slot.+describeSlotResponse_botId :: Lens.Lens' DescribeSlotResponse (Prelude.Maybe Prelude.Text)+describeSlotResponse_botId = Lens.lens (\DescribeSlotResponse' {botId} -> botId) (\s@DescribeSlotResponse' {} a -> s {botId = a} :: DescribeSlotResponse)++-- | The version of the bot associated with the slot.+describeSlotResponse_botVersion :: Lens.Lens' DescribeSlotResponse (Prelude.Maybe Prelude.Text)+describeSlotResponse_botVersion = Lens.lens (\DescribeSlotResponse' {botVersion} -> botVersion) (\s@DescribeSlotResponse' {} a -> s {botVersion = a} :: DescribeSlotResponse)++-- | A timestamp of the date and time that the slot was created.+describeSlotResponse_creationDateTime :: Lens.Lens' DescribeSlotResponse (Prelude.Maybe Prelude.UTCTime)+describeSlotResponse_creationDateTime = Lens.lens (\DescribeSlotResponse' {creationDateTime} -> creationDateTime) (\s@DescribeSlotResponse' {} a -> s {creationDateTime = a} :: DescribeSlotResponse) Prelude.. Lens.mapping Data._Time++-- | The description specified for the slot.+describeSlotResponse_description :: Lens.Lens' DescribeSlotResponse (Prelude.Maybe Prelude.Text)+describeSlotResponse_description = Lens.lens (\DescribeSlotResponse' {description} -> description) (\s@DescribeSlotResponse' {} a -> s {description = a} :: DescribeSlotResponse)++-- | The identifier of the intent associated with the slot.+describeSlotResponse_intentId :: Lens.Lens' DescribeSlotResponse (Prelude.Maybe Prelude.Text)+describeSlotResponse_intentId = Lens.lens (\DescribeSlotResponse' {intentId} -> intentId) (\s@DescribeSlotResponse' {} a -> s {intentId = a} :: DescribeSlotResponse)++-- | A timestamp of the date and time that the slot was last updated.+describeSlotResponse_lastUpdatedDateTime :: Lens.Lens' DescribeSlotResponse (Prelude.Maybe Prelude.UTCTime)+describeSlotResponse_lastUpdatedDateTime = Lens.lens (\DescribeSlotResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DescribeSlotResponse' {} a -> s {lastUpdatedDateTime = a} :: DescribeSlotResponse) Prelude.. Lens.mapping Data._Time++-- | The language and locale specified for the slot.+describeSlotResponse_localeId :: Lens.Lens' DescribeSlotResponse (Prelude.Maybe Prelude.Text)+describeSlotResponse_localeId = Lens.lens (\DescribeSlotResponse' {localeId} -> localeId) (\s@DescribeSlotResponse' {} a -> s {localeId = a} :: DescribeSlotResponse)++-- | Indicates whether the slot accepts multiple values in a single+-- utterance.+--+-- If the @multipleValuesSetting@ is not set, the default value is @false@.+describeSlotResponse_multipleValuesSetting :: Lens.Lens' DescribeSlotResponse (Prelude.Maybe MultipleValuesSetting)+describeSlotResponse_multipleValuesSetting = Lens.lens (\DescribeSlotResponse' {multipleValuesSetting} -> multipleValuesSetting) (\s@DescribeSlotResponse' {} a -> s {multipleValuesSetting = a} :: DescribeSlotResponse)++-- | Whether slot values are shown in Amazon CloudWatch logs. If the value is+-- @None@, the actual value of the slot is shown in logs.+describeSlotResponse_obfuscationSetting :: Lens.Lens' DescribeSlotResponse (Prelude.Maybe ObfuscationSetting)+describeSlotResponse_obfuscationSetting = Lens.lens (\DescribeSlotResponse' {obfuscationSetting} -> obfuscationSetting) (\s@DescribeSlotResponse' {} a -> s {obfuscationSetting = a} :: DescribeSlotResponse)++-- | The unique identifier generated for the slot.+describeSlotResponse_slotId :: Lens.Lens' DescribeSlotResponse (Prelude.Maybe Prelude.Text)+describeSlotResponse_slotId = Lens.lens (\DescribeSlotResponse' {slotId} -> slotId) (\s@DescribeSlotResponse' {} a -> s {slotId = a} :: DescribeSlotResponse)++-- | The name specified for the slot.+describeSlotResponse_slotName :: Lens.Lens' DescribeSlotResponse (Prelude.Maybe Prelude.Text)+describeSlotResponse_slotName = Lens.lens (\DescribeSlotResponse' {slotName} -> slotName) (\s@DescribeSlotResponse' {} a -> s {slotName = a} :: DescribeSlotResponse)++-- | The identifier of the slot type that determines the values entered into+-- the slot.+describeSlotResponse_slotTypeId :: Lens.Lens' DescribeSlotResponse (Prelude.Maybe Prelude.Text)+describeSlotResponse_slotTypeId = Lens.lens (\DescribeSlotResponse' {slotTypeId} -> slotTypeId) (\s@DescribeSlotResponse' {} a -> s {slotTypeId = a} :: DescribeSlotResponse)++-- | Specifications for the constituent sub slots and the expression for the+-- composite slot.+describeSlotResponse_subSlotSetting :: Lens.Lens' DescribeSlotResponse (Prelude.Maybe SubSlotSetting)+describeSlotResponse_subSlotSetting = Lens.lens (\DescribeSlotResponse' {subSlotSetting} -> subSlotSetting) (\s@DescribeSlotResponse' {} a -> s {subSlotSetting = a} :: DescribeSlotResponse)++-- | Prompts that Amazon Lex uses to elicit a value for the slot.+describeSlotResponse_valueElicitationSetting :: Lens.Lens' DescribeSlotResponse (Prelude.Maybe SlotValueElicitationSetting)+describeSlotResponse_valueElicitationSetting = Lens.lens (\DescribeSlotResponse' {valueElicitationSetting} -> valueElicitationSetting) (\s@DescribeSlotResponse' {} a -> s {valueElicitationSetting = a} :: DescribeSlotResponse)++-- | The response's http status code.+describeSlotResponse_httpStatus :: Lens.Lens' DescribeSlotResponse Prelude.Int+describeSlotResponse_httpStatus = Lens.lens (\DescribeSlotResponse' {httpStatus} -> httpStatus) (\s@DescribeSlotResponse' {} a -> s {httpStatus = a} :: DescribeSlotResponse)++instance Prelude.NFData DescribeSlotResponse where+  rnf DescribeSlotResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf intentId+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf multipleValuesSetting+      `Prelude.seq` Prelude.rnf obfuscationSetting+      `Prelude.seq` Prelude.rnf slotId+      `Prelude.seq` Prelude.rnf slotName+      `Prelude.seq` Prelude.rnf slotTypeId+      `Prelude.seq` Prelude.rnf subSlotSetting+      `Prelude.seq` Prelude.rnf valueElicitationSetting+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/DescribeSlotType.hs view
@@ -0,0 +1,375 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.DescribeSlotType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets metadata information about a slot type.+module Amazonka.LexV2Models.DescribeSlotType+  ( -- * Creating a Request+    DescribeSlotType (..),+    newDescribeSlotType,++    -- * Request Lenses+    describeSlotType_slotTypeId,+    describeSlotType_botId,+    describeSlotType_botVersion,+    describeSlotType_localeId,++    -- * Destructuring the Response+    DescribeSlotTypeResponse (..),+    newDescribeSlotTypeResponse,++    -- * Response Lenses+    describeSlotTypeResponse_botId,+    describeSlotTypeResponse_botVersion,+    describeSlotTypeResponse_compositeSlotTypeSetting,+    describeSlotTypeResponse_creationDateTime,+    describeSlotTypeResponse_description,+    describeSlotTypeResponse_externalSourceSetting,+    describeSlotTypeResponse_lastUpdatedDateTime,+    describeSlotTypeResponse_localeId,+    describeSlotTypeResponse_parentSlotTypeSignature,+    describeSlotTypeResponse_slotTypeId,+    describeSlotTypeResponse_slotTypeName,+    describeSlotTypeResponse_slotTypeValues,+    describeSlotTypeResponse_valueSelectionSetting,+    describeSlotTypeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeSlotType' smart constructor.+data DescribeSlotType = DescribeSlotType'+  { -- | The identifier of the slot type.+    slotTypeId :: Prelude.Text,+    -- | The identifier of the bot associated with the slot type.+    botId :: Prelude.Text,+    -- | The version of the bot associated with the slot type.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale of the slot type to describe.+    -- The string must match one of the supported locales. For more+    -- information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSlotType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'slotTypeId', 'describeSlotType_slotTypeId' - The identifier of the slot type.+--+-- 'botId', 'describeSlotType_botId' - The identifier of the bot associated with the slot type.+--+-- 'botVersion', 'describeSlotType_botVersion' - The version of the bot associated with the slot type.+--+-- 'localeId', 'describeSlotType_localeId' - The identifier of the language and locale of the slot type to describe.+-- The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+newDescribeSlotType ::+  -- | 'slotTypeId'+  Prelude.Text ->+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  DescribeSlotType+newDescribeSlotType+  pSlotTypeId_+  pBotId_+  pBotVersion_+  pLocaleId_ =+    DescribeSlotType'+      { slotTypeId = pSlotTypeId_,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_+      }++-- | The identifier of the slot type.+describeSlotType_slotTypeId :: Lens.Lens' DescribeSlotType Prelude.Text+describeSlotType_slotTypeId = Lens.lens (\DescribeSlotType' {slotTypeId} -> slotTypeId) (\s@DescribeSlotType' {} a -> s {slotTypeId = a} :: DescribeSlotType)++-- | The identifier of the bot associated with the slot type.+describeSlotType_botId :: Lens.Lens' DescribeSlotType Prelude.Text+describeSlotType_botId = Lens.lens (\DescribeSlotType' {botId} -> botId) (\s@DescribeSlotType' {} a -> s {botId = a} :: DescribeSlotType)++-- | The version of the bot associated with the slot type.+describeSlotType_botVersion :: Lens.Lens' DescribeSlotType Prelude.Text+describeSlotType_botVersion = Lens.lens (\DescribeSlotType' {botVersion} -> botVersion) (\s@DescribeSlotType' {} a -> s {botVersion = a} :: DescribeSlotType)++-- | The identifier of the language and locale of the slot type to describe.+-- The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+describeSlotType_localeId :: Lens.Lens' DescribeSlotType Prelude.Text+describeSlotType_localeId = Lens.lens (\DescribeSlotType' {localeId} -> localeId) (\s@DescribeSlotType' {} a -> s {localeId = a} :: DescribeSlotType)++instance Core.AWSRequest DescribeSlotType where+  type+    AWSResponse DescribeSlotType =+      DescribeSlotTypeResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeSlotTypeResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "compositeSlotTypeSetting")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "externalSourceSetting")+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "parentSlotTypeSignature")+            Prelude.<*> (x Data..?> "slotTypeId")+            Prelude.<*> (x Data..?> "slotTypeName")+            Prelude.<*> (x Data..?> "slotTypeValues")+            Prelude.<*> (x Data..?> "valueSelectionSetting")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeSlotType where+  hashWithSalt _salt DescribeSlotType' {..} =+    _salt+      `Prelude.hashWithSalt` slotTypeId+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData DescribeSlotType where+  rnf DescribeSlotType' {..} =+    Prelude.rnf slotTypeId+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders DescribeSlotType where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath DescribeSlotType where+  toPath DescribeSlotType' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/slottypes/",+        Data.toBS slotTypeId,+        "/"+      ]++instance Data.ToQuery DescribeSlotType where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeSlotTypeResponse' smart constructor.+data DescribeSlotTypeResponse = DescribeSlotTypeResponse'+  { -- | The identifier of the bot associated with the slot type.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot associated with the slot type.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | Specifications for a composite slot type.+    compositeSlotTypeSetting :: Prelude.Maybe CompositeSlotTypeSetting,+    -- | A timestamp of the date and time that the slot type was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The description specified for the slot type.+    description :: Prelude.Maybe Prelude.Text,+    externalSourceSetting :: Prelude.Maybe ExternalSourceSetting,+    -- | A timestamp of the date and time that the slot type was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The language and locale specified for the slot type.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The built in slot type used as a parent to this slot type.+    parentSlotTypeSignature :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the slot type.+    slotTypeId :: Prelude.Maybe Prelude.Text,+    -- | The name specified for the slot type.+    slotTypeName :: Prelude.Maybe Prelude.Text,+    -- | The values that the slot type can take. Includes any synonyms for the+    -- slot type values.+    slotTypeValues :: Prelude.Maybe (Prelude.NonEmpty SlotTypeValue),+    -- | The strategy that Amazon Lex uses to choose a value from a list of+    -- possible values.+    valueSelectionSetting :: Prelude.Maybe SlotValueSelectionSetting,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeSlotTypeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'describeSlotTypeResponse_botId' - The identifier of the bot associated with the slot type.+--+-- 'botVersion', 'describeSlotTypeResponse_botVersion' - The version of the bot associated with the slot type.+--+-- 'compositeSlotTypeSetting', 'describeSlotTypeResponse_compositeSlotTypeSetting' - Specifications for a composite slot type.+--+-- 'creationDateTime', 'describeSlotTypeResponse_creationDateTime' - A timestamp of the date and time that the slot type was created.+--+-- 'description', 'describeSlotTypeResponse_description' - The description specified for the slot type.+--+-- 'externalSourceSetting', 'describeSlotTypeResponse_externalSourceSetting' - Undocumented member.+--+-- 'lastUpdatedDateTime', 'describeSlotTypeResponse_lastUpdatedDateTime' - A timestamp of the date and time that the slot type was last updated.+--+-- 'localeId', 'describeSlotTypeResponse_localeId' - The language and locale specified for the slot type.+--+-- 'parentSlotTypeSignature', 'describeSlotTypeResponse_parentSlotTypeSignature' - The built in slot type used as a parent to this slot type.+--+-- 'slotTypeId', 'describeSlotTypeResponse_slotTypeId' - The unique identifier for the slot type.+--+-- 'slotTypeName', 'describeSlotTypeResponse_slotTypeName' - The name specified for the slot type.+--+-- 'slotTypeValues', 'describeSlotTypeResponse_slotTypeValues' - The values that the slot type can take. Includes any synonyms for the+-- slot type values.+--+-- 'valueSelectionSetting', 'describeSlotTypeResponse_valueSelectionSetting' - The strategy that Amazon Lex uses to choose a value from a list of+-- possible values.+--+-- 'httpStatus', 'describeSlotTypeResponse_httpStatus' - The response's http status code.+newDescribeSlotTypeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeSlotTypeResponse+newDescribeSlotTypeResponse pHttpStatus_ =+  DescribeSlotTypeResponse'+    { botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      compositeSlotTypeSetting = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      externalSourceSetting = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      localeId = Prelude.Nothing,+      parentSlotTypeSignature = Prelude.Nothing,+      slotTypeId = Prelude.Nothing,+      slotTypeName = Prelude.Nothing,+      slotTypeValues = Prelude.Nothing,+      valueSelectionSetting = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot associated with the slot type.+describeSlotTypeResponse_botId :: Lens.Lens' DescribeSlotTypeResponse (Prelude.Maybe Prelude.Text)+describeSlotTypeResponse_botId = Lens.lens (\DescribeSlotTypeResponse' {botId} -> botId) (\s@DescribeSlotTypeResponse' {} a -> s {botId = a} :: DescribeSlotTypeResponse)++-- | The version of the bot associated with the slot type.+describeSlotTypeResponse_botVersion :: Lens.Lens' DescribeSlotTypeResponse (Prelude.Maybe Prelude.Text)+describeSlotTypeResponse_botVersion = Lens.lens (\DescribeSlotTypeResponse' {botVersion} -> botVersion) (\s@DescribeSlotTypeResponse' {} a -> s {botVersion = a} :: DescribeSlotTypeResponse)++-- | Specifications for a composite slot type.+describeSlotTypeResponse_compositeSlotTypeSetting :: Lens.Lens' DescribeSlotTypeResponse (Prelude.Maybe CompositeSlotTypeSetting)+describeSlotTypeResponse_compositeSlotTypeSetting = Lens.lens (\DescribeSlotTypeResponse' {compositeSlotTypeSetting} -> compositeSlotTypeSetting) (\s@DescribeSlotTypeResponse' {} a -> s {compositeSlotTypeSetting = a} :: DescribeSlotTypeResponse)++-- | A timestamp of the date and time that the slot type was created.+describeSlotTypeResponse_creationDateTime :: Lens.Lens' DescribeSlotTypeResponse (Prelude.Maybe Prelude.UTCTime)+describeSlotTypeResponse_creationDateTime = Lens.lens (\DescribeSlotTypeResponse' {creationDateTime} -> creationDateTime) (\s@DescribeSlotTypeResponse' {} a -> s {creationDateTime = a} :: DescribeSlotTypeResponse) Prelude.. Lens.mapping Data._Time++-- | The description specified for the slot type.+describeSlotTypeResponse_description :: Lens.Lens' DescribeSlotTypeResponse (Prelude.Maybe Prelude.Text)+describeSlotTypeResponse_description = Lens.lens (\DescribeSlotTypeResponse' {description} -> description) (\s@DescribeSlotTypeResponse' {} a -> s {description = a} :: DescribeSlotTypeResponse)++-- | Undocumented member.+describeSlotTypeResponse_externalSourceSetting :: Lens.Lens' DescribeSlotTypeResponse (Prelude.Maybe ExternalSourceSetting)+describeSlotTypeResponse_externalSourceSetting = Lens.lens (\DescribeSlotTypeResponse' {externalSourceSetting} -> externalSourceSetting) (\s@DescribeSlotTypeResponse' {} a -> s {externalSourceSetting = a} :: DescribeSlotTypeResponse)++-- | A timestamp of the date and time that the slot type was last updated.+describeSlotTypeResponse_lastUpdatedDateTime :: Lens.Lens' DescribeSlotTypeResponse (Prelude.Maybe Prelude.UTCTime)+describeSlotTypeResponse_lastUpdatedDateTime = Lens.lens (\DescribeSlotTypeResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@DescribeSlotTypeResponse' {} a -> s {lastUpdatedDateTime = a} :: DescribeSlotTypeResponse) Prelude.. Lens.mapping Data._Time++-- | The language and locale specified for the slot type.+describeSlotTypeResponse_localeId :: Lens.Lens' DescribeSlotTypeResponse (Prelude.Maybe Prelude.Text)+describeSlotTypeResponse_localeId = Lens.lens (\DescribeSlotTypeResponse' {localeId} -> localeId) (\s@DescribeSlotTypeResponse' {} a -> s {localeId = a} :: DescribeSlotTypeResponse)++-- | The built in slot type used as a parent to this slot type.+describeSlotTypeResponse_parentSlotTypeSignature :: Lens.Lens' DescribeSlotTypeResponse (Prelude.Maybe Prelude.Text)+describeSlotTypeResponse_parentSlotTypeSignature = Lens.lens (\DescribeSlotTypeResponse' {parentSlotTypeSignature} -> parentSlotTypeSignature) (\s@DescribeSlotTypeResponse' {} a -> s {parentSlotTypeSignature = a} :: DescribeSlotTypeResponse)++-- | The unique identifier for the slot type.+describeSlotTypeResponse_slotTypeId :: Lens.Lens' DescribeSlotTypeResponse (Prelude.Maybe Prelude.Text)+describeSlotTypeResponse_slotTypeId = Lens.lens (\DescribeSlotTypeResponse' {slotTypeId} -> slotTypeId) (\s@DescribeSlotTypeResponse' {} a -> s {slotTypeId = a} :: DescribeSlotTypeResponse)++-- | The name specified for the slot type.+describeSlotTypeResponse_slotTypeName :: Lens.Lens' DescribeSlotTypeResponse (Prelude.Maybe Prelude.Text)+describeSlotTypeResponse_slotTypeName = Lens.lens (\DescribeSlotTypeResponse' {slotTypeName} -> slotTypeName) (\s@DescribeSlotTypeResponse' {} a -> s {slotTypeName = a} :: DescribeSlotTypeResponse)++-- | The values that the slot type can take. Includes any synonyms for the+-- slot type values.+describeSlotTypeResponse_slotTypeValues :: Lens.Lens' DescribeSlotTypeResponse (Prelude.Maybe (Prelude.NonEmpty SlotTypeValue))+describeSlotTypeResponse_slotTypeValues = Lens.lens (\DescribeSlotTypeResponse' {slotTypeValues} -> slotTypeValues) (\s@DescribeSlotTypeResponse' {} a -> s {slotTypeValues = a} :: DescribeSlotTypeResponse) Prelude.. Lens.mapping Lens.coerced++-- | The strategy that Amazon Lex uses to choose a value from a list of+-- possible values.+describeSlotTypeResponse_valueSelectionSetting :: Lens.Lens' DescribeSlotTypeResponse (Prelude.Maybe SlotValueSelectionSetting)+describeSlotTypeResponse_valueSelectionSetting = Lens.lens (\DescribeSlotTypeResponse' {valueSelectionSetting} -> valueSelectionSetting) (\s@DescribeSlotTypeResponse' {} a -> s {valueSelectionSetting = a} :: DescribeSlotTypeResponse)++-- | The response's http status code.+describeSlotTypeResponse_httpStatus :: Lens.Lens' DescribeSlotTypeResponse Prelude.Int+describeSlotTypeResponse_httpStatus = Lens.lens (\DescribeSlotTypeResponse' {httpStatus} -> httpStatus) (\s@DescribeSlotTypeResponse' {} a -> s {httpStatus = a} :: DescribeSlotTypeResponse)++instance Prelude.NFData DescribeSlotTypeResponse where+  rnf DescribeSlotTypeResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf compositeSlotTypeSetting+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf externalSourceSetting+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf parentSlotTypeSignature+      `Prelude.seq` Prelude.rnf slotTypeId+      `Prelude.seq` Prelude.rnf slotTypeName+      `Prelude.seq` Prelude.rnf slotTypeValues+      `Prelude.seq` Prelude.rnf valueSelectionSetting+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/Lens.hs view
@@ -0,0 +1,1907 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Lens+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Lens+  ( -- * Operations++    -- ** BatchCreateCustomVocabularyItem+    batchCreateCustomVocabularyItem_botId,+    batchCreateCustomVocabularyItem_botVersion,+    batchCreateCustomVocabularyItem_localeId,+    batchCreateCustomVocabularyItem_customVocabularyItemList,+    batchCreateCustomVocabularyItemResponse_botId,+    batchCreateCustomVocabularyItemResponse_botVersion,+    batchCreateCustomVocabularyItemResponse_errors,+    batchCreateCustomVocabularyItemResponse_localeId,+    batchCreateCustomVocabularyItemResponse_resources,+    batchCreateCustomVocabularyItemResponse_httpStatus,++    -- ** BatchDeleteCustomVocabularyItem+    batchDeleteCustomVocabularyItem_botId,+    batchDeleteCustomVocabularyItem_botVersion,+    batchDeleteCustomVocabularyItem_localeId,+    batchDeleteCustomVocabularyItem_customVocabularyItemList,+    batchDeleteCustomVocabularyItemResponse_botId,+    batchDeleteCustomVocabularyItemResponse_botVersion,+    batchDeleteCustomVocabularyItemResponse_errors,+    batchDeleteCustomVocabularyItemResponse_localeId,+    batchDeleteCustomVocabularyItemResponse_resources,+    batchDeleteCustomVocabularyItemResponse_httpStatus,++    -- ** BatchUpdateCustomVocabularyItem+    batchUpdateCustomVocabularyItem_botId,+    batchUpdateCustomVocabularyItem_botVersion,+    batchUpdateCustomVocabularyItem_localeId,+    batchUpdateCustomVocabularyItem_customVocabularyItemList,+    batchUpdateCustomVocabularyItemResponse_botId,+    batchUpdateCustomVocabularyItemResponse_botVersion,+    batchUpdateCustomVocabularyItemResponse_errors,+    batchUpdateCustomVocabularyItemResponse_localeId,+    batchUpdateCustomVocabularyItemResponse_resources,+    batchUpdateCustomVocabularyItemResponse_httpStatus,++    -- ** BuildBotLocale+    buildBotLocale_botId,+    buildBotLocale_botVersion,+    buildBotLocale_localeId,+    buildBotLocaleResponse_botId,+    buildBotLocaleResponse_botLocaleStatus,+    buildBotLocaleResponse_botVersion,+    buildBotLocaleResponse_lastBuildSubmittedDateTime,+    buildBotLocaleResponse_localeId,+    buildBotLocaleResponse_httpStatus,++    -- ** CreateBot+    createBot_botTags,+    createBot_description,+    createBot_testBotAliasTags,+    createBot_botName,+    createBot_roleArn,+    createBot_dataPrivacy,+    createBot_idleSessionTTLInSeconds,+    createBotResponse_botId,+    createBotResponse_botName,+    createBotResponse_botStatus,+    createBotResponse_botTags,+    createBotResponse_creationDateTime,+    createBotResponse_dataPrivacy,+    createBotResponse_description,+    createBotResponse_idleSessionTTLInSeconds,+    createBotResponse_roleArn,+    createBotResponse_testBotAliasTags,+    createBotResponse_httpStatus,++    -- ** CreateBotAlias+    createBotAlias_botAliasLocaleSettings,+    createBotAlias_botVersion,+    createBotAlias_conversationLogSettings,+    createBotAlias_description,+    createBotAlias_sentimentAnalysisSettings,+    createBotAlias_tags,+    createBotAlias_botAliasName,+    createBotAlias_botId,+    createBotAliasResponse_botAliasId,+    createBotAliasResponse_botAliasLocaleSettings,+    createBotAliasResponse_botAliasName,+    createBotAliasResponse_botAliasStatus,+    createBotAliasResponse_botId,+    createBotAliasResponse_botVersion,+    createBotAliasResponse_conversationLogSettings,+    createBotAliasResponse_creationDateTime,+    createBotAliasResponse_description,+    createBotAliasResponse_sentimentAnalysisSettings,+    createBotAliasResponse_tags,+    createBotAliasResponse_httpStatus,++    -- ** CreateBotLocale+    createBotLocale_description,+    createBotLocale_voiceSettings,+    createBotLocale_botId,+    createBotLocale_botVersion,+    createBotLocale_localeId,+    createBotLocale_nluIntentConfidenceThreshold,+    createBotLocaleResponse_botId,+    createBotLocaleResponse_botLocaleStatus,+    createBotLocaleResponse_botVersion,+    createBotLocaleResponse_creationDateTime,+    createBotLocaleResponse_description,+    createBotLocaleResponse_localeId,+    createBotLocaleResponse_localeName,+    createBotLocaleResponse_nluIntentConfidenceThreshold,+    createBotLocaleResponse_voiceSettings,+    createBotLocaleResponse_httpStatus,++    -- ** CreateBotVersion+    createBotVersion_description,+    createBotVersion_botId,+    createBotVersion_botVersionLocaleSpecification,+    createBotVersionResponse_botId,+    createBotVersionResponse_botStatus,+    createBotVersionResponse_botVersion,+    createBotVersionResponse_botVersionLocaleSpecification,+    createBotVersionResponse_creationDateTime,+    createBotVersionResponse_description,+    createBotVersionResponse_httpStatus,++    -- ** CreateExport+    createExport_filePassword,+    createExport_resourceSpecification,+    createExport_fileFormat,+    createExportResponse_creationDateTime,+    createExportResponse_exportId,+    createExportResponse_exportStatus,+    createExportResponse_fileFormat,+    createExportResponse_resourceSpecification,+    createExportResponse_httpStatus,++    -- ** CreateIntent+    createIntent_description,+    createIntent_dialogCodeHook,+    createIntent_fulfillmentCodeHook,+    createIntent_initialResponseSetting,+    createIntent_inputContexts,+    createIntent_intentClosingSetting,+    createIntent_intentConfirmationSetting,+    createIntent_kendraConfiguration,+    createIntent_outputContexts,+    createIntent_parentIntentSignature,+    createIntent_sampleUtterances,+    createIntent_intentName,+    createIntent_botId,+    createIntent_botVersion,+    createIntent_localeId,+    createIntentResponse_botId,+    createIntentResponse_botVersion,+    createIntentResponse_creationDateTime,+    createIntentResponse_description,+    createIntentResponse_dialogCodeHook,+    createIntentResponse_fulfillmentCodeHook,+    createIntentResponse_initialResponseSetting,+    createIntentResponse_inputContexts,+    createIntentResponse_intentClosingSetting,+    createIntentResponse_intentConfirmationSetting,+    createIntentResponse_intentId,+    createIntentResponse_intentName,+    createIntentResponse_kendraConfiguration,+    createIntentResponse_localeId,+    createIntentResponse_outputContexts,+    createIntentResponse_parentIntentSignature,+    createIntentResponse_sampleUtterances,+    createIntentResponse_httpStatus,++    -- ** CreateResourcePolicy+    createResourcePolicy_resourceArn,+    createResourcePolicy_policy,+    createResourcePolicyResponse_resourceArn,+    createResourcePolicyResponse_revisionId,+    createResourcePolicyResponse_httpStatus,++    -- ** CreateResourcePolicyStatement+    createResourcePolicyStatement_condition,+    createResourcePolicyStatement_expectedRevisionId,+    createResourcePolicyStatement_resourceArn,+    createResourcePolicyStatement_statementId,+    createResourcePolicyStatement_effect,+    createResourcePolicyStatement_principal,+    createResourcePolicyStatement_action,+    createResourcePolicyStatementResponse_resourceArn,+    createResourcePolicyStatementResponse_revisionId,+    createResourcePolicyStatementResponse_httpStatus,++    -- ** CreateSlot+    createSlot_description,+    createSlot_multipleValuesSetting,+    createSlot_obfuscationSetting,+    createSlot_slotTypeId,+    createSlot_subSlotSetting,+    createSlot_slotName,+    createSlot_valueElicitationSetting,+    createSlot_botId,+    createSlot_botVersion,+    createSlot_localeId,+    createSlot_intentId,+    createSlotResponse_botId,+    createSlotResponse_botVersion,+    createSlotResponse_creationDateTime,+    createSlotResponse_description,+    createSlotResponse_intentId,+    createSlotResponse_localeId,+    createSlotResponse_multipleValuesSetting,+    createSlotResponse_obfuscationSetting,+    createSlotResponse_slotId,+    createSlotResponse_slotName,+    createSlotResponse_slotTypeId,+    createSlotResponse_subSlotSetting,+    createSlotResponse_valueElicitationSetting,+    createSlotResponse_httpStatus,++    -- ** CreateSlotType+    createSlotType_compositeSlotTypeSetting,+    createSlotType_description,+    createSlotType_externalSourceSetting,+    createSlotType_parentSlotTypeSignature,+    createSlotType_slotTypeValues,+    createSlotType_valueSelectionSetting,+    createSlotType_slotTypeName,+    createSlotType_botId,+    createSlotType_botVersion,+    createSlotType_localeId,+    createSlotTypeResponse_botId,+    createSlotTypeResponse_botVersion,+    createSlotTypeResponse_compositeSlotTypeSetting,+    createSlotTypeResponse_creationDateTime,+    createSlotTypeResponse_description,+    createSlotTypeResponse_externalSourceSetting,+    createSlotTypeResponse_localeId,+    createSlotTypeResponse_parentSlotTypeSignature,+    createSlotTypeResponse_slotTypeId,+    createSlotTypeResponse_slotTypeName,+    createSlotTypeResponse_slotTypeValues,+    createSlotTypeResponse_valueSelectionSetting,+    createSlotTypeResponse_httpStatus,++    -- ** CreateUploadUrl+    createUploadUrlResponse_importId,+    createUploadUrlResponse_uploadUrl,+    createUploadUrlResponse_httpStatus,++    -- ** DeleteBot+    deleteBot_skipResourceInUseCheck,+    deleteBot_botId,+    deleteBotResponse_botId,+    deleteBotResponse_botStatus,+    deleteBotResponse_httpStatus,++    -- ** DeleteBotAlias+    deleteBotAlias_skipResourceInUseCheck,+    deleteBotAlias_botAliasId,+    deleteBotAlias_botId,+    deleteBotAliasResponse_botAliasId,+    deleteBotAliasResponse_botAliasStatus,+    deleteBotAliasResponse_botId,+    deleteBotAliasResponse_httpStatus,++    -- ** DeleteBotLocale+    deleteBotLocale_botId,+    deleteBotLocale_botVersion,+    deleteBotLocale_localeId,+    deleteBotLocaleResponse_botId,+    deleteBotLocaleResponse_botLocaleStatus,+    deleteBotLocaleResponse_botVersion,+    deleteBotLocaleResponse_localeId,+    deleteBotLocaleResponse_httpStatus,++    -- ** DeleteBotVersion+    deleteBotVersion_skipResourceInUseCheck,+    deleteBotVersion_botId,+    deleteBotVersion_botVersion,+    deleteBotVersionResponse_botId,+    deleteBotVersionResponse_botStatus,+    deleteBotVersionResponse_botVersion,+    deleteBotVersionResponse_httpStatus,++    -- ** DeleteCustomVocabulary+    deleteCustomVocabulary_botId,+    deleteCustomVocabulary_botVersion,+    deleteCustomVocabulary_localeId,+    deleteCustomVocabularyResponse_botId,+    deleteCustomVocabularyResponse_botVersion,+    deleteCustomVocabularyResponse_customVocabularyStatus,+    deleteCustomVocabularyResponse_localeId,+    deleteCustomVocabularyResponse_httpStatus,++    -- ** DeleteExport+    deleteExport_exportId,+    deleteExportResponse_exportId,+    deleteExportResponse_exportStatus,+    deleteExportResponse_httpStatus,++    -- ** DeleteImport+    deleteImport_importId,+    deleteImportResponse_importId,+    deleteImportResponse_importStatus,+    deleteImportResponse_httpStatus,++    -- ** DeleteIntent+    deleteIntent_intentId,+    deleteIntent_botId,+    deleteIntent_botVersion,+    deleteIntent_localeId,++    -- ** DeleteResourcePolicy+    deleteResourcePolicy_expectedRevisionId,+    deleteResourcePolicy_resourceArn,+    deleteResourcePolicyResponse_resourceArn,+    deleteResourcePolicyResponse_revisionId,+    deleteResourcePolicyResponse_httpStatus,++    -- ** DeleteResourcePolicyStatement+    deleteResourcePolicyStatement_expectedRevisionId,+    deleteResourcePolicyStatement_resourceArn,+    deleteResourcePolicyStatement_statementId,+    deleteResourcePolicyStatementResponse_resourceArn,+    deleteResourcePolicyStatementResponse_revisionId,+    deleteResourcePolicyStatementResponse_httpStatus,++    -- ** DeleteSlot+    deleteSlot_slotId,+    deleteSlot_botId,+    deleteSlot_botVersion,+    deleteSlot_localeId,+    deleteSlot_intentId,++    -- ** DeleteSlotType+    deleteSlotType_skipResourceInUseCheck,+    deleteSlotType_slotTypeId,+    deleteSlotType_botId,+    deleteSlotType_botVersion,+    deleteSlotType_localeId,++    -- ** DeleteUtterances+    deleteUtterances_localeId,+    deleteUtterances_sessionId,+    deleteUtterances_botId,+    deleteUtterancesResponse_httpStatus,++    -- ** DescribeBot+    describeBot_botId,+    describeBotResponse_botId,+    describeBotResponse_botName,+    describeBotResponse_botStatus,+    describeBotResponse_creationDateTime,+    describeBotResponse_dataPrivacy,+    describeBotResponse_description,+    describeBotResponse_idleSessionTTLInSeconds,+    describeBotResponse_lastUpdatedDateTime,+    describeBotResponse_roleArn,+    describeBotResponse_httpStatus,++    -- ** DescribeBotAlias+    describeBotAlias_botAliasId,+    describeBotAlias_botId,+    describeBotAliasResponse_botAliasHistoryEvents,+    describeBotAliasResponse_botAliasId,+    describeBotAliasResponse_botAliasLocaleSettings,+    describeBotAliasResponse_botAliasName,+    describeBotAliasResponse_botAliasStatus,+    describeBotAliasResponse_botId,+    describeBotAliasResponse_botVersion,+    describeBotAliasResponse_conversationLogSettings,+    describeBotAliasResponse_creationDateTime,+    describeBotAliasResponse_description,+    describeBotAliasResponse_lastUpdatedDateTime,+    describeBotAliasResponse_sentimentAnalysisSettings,+    describeBotAliasResponse_httpStatus,++    -- ** DescribeBotLocale+    describeBotLocale_botId,+    describeBotLocale_botVersion,+    describeBotLocale_localeId,+    describeBotLocaleResponse_botId,+    describeBotLocaleResponse_botLocaleHistoryEvents,+    describeBotLocaleResponse_botLocaleStatus,+    describeBotLocaleResponse_botVersion,+    describeBotLocaleResponse_creationDateTime,+    describeBotLocaleResponse_description,+    describeBotLocaleResponse_failureReasons,+    describeBotLocaleResponse_intentsCount,+    describeBotLocaleResponse_lastBuildSubmittedDateTime,+    describeBotLocaleResponse_lastUpdatedDateTime,+    describeBotLocaleResponse_localeId,+    describeBotLocaleResponse_localeName,+    describeBotLocaleResponse_nluIntentConfidenceThreshold,+    describeBotLocaleResponse_recommendedActions,+    describeBotLocaleResponse_slotTypesCount,+    describeBotLocaleResponse_voiceSettings,+    describeBotLocaleResponse_httpStatus,++    -- ** DescribeBotRecommendation+    describeBotRecommendation_botId,+    describeBotRecommendation_botVersion,+    describeBotRecommendation_localeId,+    describeBotRecommendation_botRecommendationId,+    describeBotRecommendationResponse_botId,+    describeBotRecommendationResponse_botRecommendationId,+    describeBotRecommendationResponse_botRecommendationResults,+    describeBotRecommendationResponse_botRecommendationStatus,+    describeBotRecommendationResponse_botVersion,+    describeBotRecommendationResponse_creationDateTime,+    describeBotRecommendationResponse_encryptionSetting,+    describeBotRecommendationResponse_failureReasons,+    describeBotRecommendationResponse_lastUpdatedDateTime,+    describeBotRecommendationResponse_localeId,+    describeBotRecommendationResponse_transcriptSourceSetting,+    describeBotRecommendationResponse_httpStatus,++    -- ** DescribeBotVersion+    describeBotVersion_botId,+    describeBotVersion_botVersion,+    describeBotVersionResponse_botId,+    describeBotVersionResponse_botName,+    describeBotVersionResponse_botStatus,+    describeBotVersionResponse_botVersion,+    describeBotVersionResponse_creationDateTime,+    describeBotVersionResponse_dataPrivacy,+    describeBotVersionResponse_description,+    describeBotVersionResponse_failureReasons,+    describeBotVersionResponse_idleSessionTTLInSeconds,+    describeBotVersionResponse_roleArn,+    describeBotVersionResponse_httpStatus,++    -- ** DescribeCustomVocabularyMetadata+    describeCustomVocabularyMetadata_botId,+    describeCustomVocabularyMetadata_botVersion,+    describeCustomVocabularyMetadata_localeId,+    describeCustomVocabularyMetadataResponse_botId,+    describeCustomVocabularyMetadataResponse_botVersion,+    describeCustomVocabularyMetadataResponse_creationDateTime,+    describeCustomVocabularyMetadataResponse_customVocabularyStatus,+    describeCustomVocabularyMetadataResponse_lastUpdatedDateTime,+    describeCustomVocabularyMetadataResponse_localeId,+    describeCustomVocabularyMetadataResponse_httpStatus,++    -- ** DescribeExport+    describeExport_exportId,+    describeExportResponse_creationDateTime,+    describeExportResponse_downloadUrl,+    describeExportResponse_exportId,+    describeExportResponse_exportStatus,+    describeExportResponse_failureReasons,+    describeExportResponse_fileFormat,+    describeExportResponse_lastUpdatedDateTime,+    describeExportResponse_resourceSpecification,+    describeExportResponse_httpStatus,++    -- ** DescribeImport+    describeImport_importId,+    describeImportResponse_creationDateTime,+    describeImportResponse_failureReasons,+    describeImportResponse_importId,+    describeImportResponse_importStatus,+    describeImportResponse_importedResourceId,+    describeImportResponse_importedResourceName,+    describeImportResponse_lastUpdatedDateTime,+    describeImportResponse_mergeStrategy,+    describeImportResponse_resourceSpecification,+    describeImportResponse_httpStatus,++    -- ** DescribeIntent+    describeIntent_intentId,+    describeIntent_botId,+    describeIntent_botVersion,+    describeIntent_localeId,+    describeIntentResponse_botId,+    describeIntentResponse_botVersion,+    describeIntentResponse_creationDateTime,+    describeIntentResponse_description,+    describeIntentResponse_dialogCodeHook,+    describeIntentResponse_fulfillmentCodeHook,+    describeIntentResponse_initialResponseSetting,+    describeIntentResponse_inputContexts,+    describeIntentResponse_intentClosingSetting,+    describeIntentResponse_intentConfirmationSetting,+    describeIntentResponse_intentId,+    describeIntentResponse_intentName,+    describeIntentResponse_kendraConfiguration,+    describeIntentResponse_lastUpdatedDateTime,+    describeIntentResponse_localeId,+    describeIntentResponse_outputContexts,+    describeIntentResponse_parentIntentSignature,+    describeIntentResponse_sampleUtterances,+    describeIntentResponse_slotPriorities,+    describeIntentResponse_httpStatus,++    -- ** DescribeResourcePolicy+    describeResourcePolicy_resourceArn,+    describeResourcePolicyResponse_policy,+    describeResourcePolicyResponse_resourceArn,+    describeResourcePolicyResponse_revisionId,+    describeResourcePolicyResponse_httpStatus,++    -- ** DescribeSlot+    describeSlot_slotId,+    describeSlot_botId,+    describeSlot_botVersion,+    describeSlot_localeId,+    describeSlot_intentId,+    describeSlotResponse_botId,+    describeSlotResponse_botVersion,+    describeSlotResponse_creationDateTime,+    describeSlotResponse_description,+    describeSlotResponse_intentId,+    describeSlotResponse_lastUpdatedDateTime,+    describeSlotResponse_localeId,+    describeSlotResponse_multipleValuesSetting,+    describeSlotResponse_obfuscationSetting,+    describeSlotResponse_slotId,+    describeSlotResponse_slotName,+    describeSlotResponse_slotTypeId,+    describeSlotResponse_subSlotSetting,+    describeSlotResponse_valueElicitationSetting,+    describeSlotResponse_httpStatus,++    -- ** DescribeSlotType+    describeSlotType_slotTypeId,+    describeSlotType_botId,+    describeSlotType_botVersion,+    describeSlotType_localeId,+    describeSlotTypeResponse_botId,+    describeSlotTypeResponse_botVersion,+    describeSlotTypeResponse_compositeSlotTypeSetting,+    describeSlotTypeResponse_creationDateTime,+    describeSlotTypeResponse_description,+    describeSlotTypeResponse_externalSourceSetting,+    describeSlotTypeResponse_lastUpdatedDateTime,+    describeSlotTypeResponse_localeId,+    describeSlotTypeResponse_parentSlotTypeSignature,+    describeSlotTypeResponse_slotTypeId,+    describeSlotTypeResponse_slotTypeName,+    describeSlotTypeResponse_slotTypeValues,+    describeSlotTypeResponse_valueSelectionSetting,+    describeSlotTypeResponse_httpStatus,++    -- ** ListAggregatedUtterances+    listAggregatedUtterances_botAliasId,+    listAggregatedUtterances_botVersion,+    listAggregatedUtterances_filters,+    listAggregatedUtterances_maxResults,+    listAggregatedUtterances_nextToken,+    listAggregatedUtterances_sortBy,+    listAggregatedUtterances_botId,+    listAggregatedUtterances_localeId,+    listAggregatedUtterances_aggregationDuration,+    listAggregatedUtterancesResponse_aggregatedUtterancesSummaries,+    listAggregatedUtterancesResponse_aggregationDuration,+    listAggregatedUtterancesResponse_aggregationLastRefreshedDateTime,+    listAggregatedUtterancesResponse_aggregationWindowEndTime,+    listAggregatedUtterancesResponse_aggregationWindowStartTime,+    listAggregatedUtterancesResponse_botAliasId,+    listAggregatedUtterancesResponse_botId,+    listAggregatedUtterancesResponse_botVersion,+    listAggregatedUtterancesResponse_localeId,+    listAggregatedUtterancesResponse_nextToken,+    listAggregatedUtterancesResponse_httpStatus,++    -- ** ListBotAliases+    listBotAliases_maxResults,+    listBotAliases_nextToken,+    listBotAliases_botId,+    listBotAliasesResponse_botAliasSummaries,+    listBotAliasesResponse_botId,+    listBotAliasesResponse_nextToken,+    listBotAliasesResponse_httpStatus,++    -- ** ListBotLocales+    listBotLocales_filters,+    listBotLocales_maxResults,+    listBotLocales_nextToken,+    listBotLocales_sortBy,+    listBotLocales_botId,+    listBotLocales_botVersion,+    listBotLocalesResponse_botId,+    listBotLocalesResponse_botLocaleSummaries,+    listBotLocalesResponse_botVersion,+    listBotLocalesResponse_nextToken,+    listBotLocalesResponse_httpStatus,++    -- ** ListBotRecommendations+    listBotRecommendations_maxResults,+    listBotRecommendations_nextToken,+    listBotRecommendations_botId,+    listBotRecommendations_botVersion,+    listBotRecommendations_localeId,+    listBotRecommendationsResponse_botId,+    listBotRecommendationsResponse_botRecommendationSummaries,+    listBotRecommendationsResponse_botVersion,+    listBotRecommendationsResponse_localeId,+    listBotRecommendationsResponse_nextToken,+    listBotRecommendationsResponse_httpStatus,++    -- ** ListBotVersions+    listBotVersions_maxResults,+    listBotVersions_nextToken,+    listBotVersions_sortBy,+    listBotVersions_botId,+    listBotVersionsResponse_botId,+    listBotVersionsResponse_botVersionSummaries,+    listBotVersionsResponse_nextToken,+    listBotVersionsResponse_httpStatus,++    -- ** ListBots+    listBots_filters,+    listBots_maxResults,+    listBots_nextToken,+    listBots_sortBy,+    listBotsResponse_botSummaries,+    listBotsResponse_nextToken,+    listBotsResponse_httpStatus,++    -- ** ListBuiltInIntents+    listBuiltInIntents_maxResults,+    listBuiltInIntents_nextToken,+    listBuiltInIntents_sortBy,+    listBuiltInIntents_localeId,+    listBuiltInIntentsResponse_builtInIntentSummaries,+    listBuiltInIntentsResponse_localeId,+    listBuiltInIntentsResponse_nextToken,+    listBuiltInIntentsResponse_httpStatus,++    -- ** ListBuiltInSlotTypes+    listBuiltInSlotTypes_maxResults,+    listBuiltInSlotTypes_nextToken,+    listBuiltInSlotTypes_sortBy,+    listBuiltInSlotTypes_localeId,+    listBuiltInSlotTypesResponse_builtInSlotTypeSummaries,+    listBuiltInSlotTypesResponse_localeId,+    listBuiltInSlotTypesResponse_nextToken,+    listBuiltInSlotTypesResponse_httpStatus,++    -- ** ListCustomVocabularyItems+    listCustomVocabularyItems_maxResults,+    listCustomVocabularyItems_nextToken,+    listCustomVocabularyItems_botId,+    listCustomVocabularyItems_botVersion,+    listCustomVocabularyItems_localeId,+    listCustomVocabularyItemsResponse_botId,+    listCustomVocabularyItemsResponse_botVersion,+    listCustomVocabularyItemsResponse_customVocabularyItems,+    listCustomVocabularyItemsResponse_localeId,+    listCustomVocabularyItemsResponse_nextToken,+    listCustomVocabularyItemsResponse_httpStatus,++    -- ** ListExports+    listExports_botId,+    listExports_botVersion,+    listExports_filters,+    listExports_localeId,+    listExports_maxResults,+    listExports_nextToken,+    listExports_sortBy,+    listExportsResponse_botId,+    listExportsResponse_botVersion,+    listExportsResponse_exportSummaries,+    listExportsResponse_localeId,+    listExportsResponse_nextToken,+    listExportsResponse_httpStatus,++    -- ** ListImports+    listImports_botId,+    listImports_botVersion,+    listImports_filters,+    listImports_localeId,+    listImports_maxResults,+    listImports_nextToken,+    listImports_sortBy,+    listImportsResponse_botId,+    listImportsResponse_botVersion,+    listImportsResponse_importSummaries,+    listImportsResponse_localeId,+    listImportsResponse_nextToken,+    listImportsResponse_httpStatus,++    -- ** ListIntents+    listIntents_filters,+    listIntents_maxResults,+    listIntents_nextToken,+    listIntents_sortBy,+    listIntents_botId,+    listIntents_botVersion,+    listIntents_localeId,+    listIntentsResponse_botId,+    listIntentsResponse_botVersion,+    listIntentsResponse_intentSummaries,+    listIntentsResponse_localeId,+    listIntentsResponse_nextToken,+    listIntentsResponse_httpStatus,++    -- ** ListRecommendedIntents+    listRecommendedIntents_maxResults,+    listRecommendedIntents_nextToken,+    listRecommendedIntents_botId,+    listRecommendedIntents_botVersion,+    listRecommendedIntents_localeId,+    listRecommendedIntents_botRecommendationId,+    listRecommendedIntentsResponse_botId,+    listRecommendedIntentsResponse_botRecommendationId,+    listRecommendedIntentsResponse_botVersion,+    listRecommendedIntentsResponse_localeId,+    listRecommendedIntentsResponse_nextToken,+    listRecommendedIntentsResponse_summaryList,+    listRecommendedIntentsResponse_httpStatus,++    -- ** ListSlotTypes+    listSlotTypes_filters,+    listSlotTypes_maxResults,+    listSlotTypes_nextToken,+    listSlotTypes_sortBy,+    listSlotTypes_botId,+    listSlotTypes_botVersion,+    listSlotTypes_localeId,+    listSlotTypesResponse_botId,+    listSlotTypesResponse_botVersion,+    listSlotTypesResponse_localeId,+    listSlotTypesResponse_nextToken,+    listSlotTypesResponse_slotTypeSummaries,+    listSlotTypesResponse_httpStatus,++    -- ** ListSlots+    listSlots_filters,+    listSlots_maxResults,+    listSlots_nextToken,+    listSlots_sortBy,+    listSlots_botId,+    listSlots_botVersion,+    listSlots_localeId,+    listSlots_intentId,+    listSlotsResponse_botId,+    listSlotsResponse_botVersion,+    listSlotsResponse_intentId,+    listSlotsResponse_localeId,+    listSlotsResponse_nextToken,+    listSlotsResponse_slotSummaries,+    listSlotsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceARN,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** SearchAssociatedTranscripts+    searchAssociatedTranscripts_maxResults,+    searchAssociatedTranscripts_nextIndex,+    searchAssociatedTranscripts_searchOrder,+    searchAssociatedTranscripts_botId,+    searchAssociatedTranscripts_botVersion,+    searchAssociatedTranscripts_localeId,+    searchAssociatedTranscripts_botRecommendationId,+    searchAssociatedTranscripts_filters,+    searchAssociatedTranscriptsResponse_associatedTranscripts,+    searchAssociatedTranscriptsResponse_botId,+    searchAssociatedTranscriptsResponse_botRecommendationId,+    searchAssociatedTranscriptsResponse_botVersion,+    searchAssociatedTranscriptsResponse_localeId,+    searchAssociatedTranscriptsResponse_nextIndex,+    searchAssociatedTranscriptsResponse_totalResults,+    searchAssociatedTranscriptsResponse_httpStatus,++    -- ** StartBotRecommendation+    startBotRecommendation_encryptionSetting,+    startBotRecommendation_botId,+    startBotRecommendation_botVersion,+    startBotRecommendation_localeId,+    startBotRecommendation_transcriptSourceSetting,+    startBotRecommendationResponse_botId,+    startBotRecommendationResponse_botRecommendationId,+    startBotRecommendationResponse_botRecommendationStatus,+    startBotRecommendationResponse_botVersion,+    startBotRecommendationResponse_creationDateTime,+    startBotRecommendationResponse_encryptionSetting,+    startBotRecommendationResponse_localeId,+    startBotRecommendationResponse_transcriptSourceSetting,+    startBotRecommendationResponse_httpStatus,++    -- ** StartImport+    startImport_filePassword,+    startImport_importId,+    startImport_resourceSpecification,+    startImport_mergeStrategy,+    startImportResponse_creationDateTime,+    startImportResponse_importId,+    startImportResponse_importStatus,+    startImportResponse_mergeStrategy,+    startImportResponse_resourceSpecification,+    startImportResponse_httpStatus,++    -- ** StopBotRecommendation+    stopBotRecommendation_botId,+    stopBotRecommendation_botVersion,+    stopBotRecommendation_localeId,+    stopBotRecommendation_botRecommendationId,+    stopBotRecommendationResponse_botId,+    stopBotRecommendationResponse_botRecommendationId,+    stopBotRecommendationResponse_botRecommendationStatus,+    stopBotRecommendationResponse_botVersion,+    stopBotRecommendationResponse_localeId,+    stopBotRecommendationResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceARN,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceARN,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateBot+    updateBot_description,+    updateBot_botId,+    updateBot_botName,+    updateBot_roleArn,+    updateBot_dataPrivacy,+    updateBot_idleSessionTTLInSeconds,+    updateBotResponse_botId,+    updateBotResponse_botName,+    updateBotResponse_botStatus,+    updateBotResponse_creationDateTime,+    updateBotResponse_dataPrivacy,+    updateBotResponse_description,+    updateBotResponse_idleSessionTTLInSeconds,+    updateBotResponse_lastUpdatedDateTime,+    updateBotResponse_roleArn,+    updateBotResponse_httpStatus,++    -- ** UpdateBotAlias+    updateBotAlias_botAliasLocaleSettings,+    updateBotAlias_botVersion,+    updateBotAlias_conversationLogSettings,+    updateBotAlias_description,+    updateBotAlias_sentimentAnalysisSettings,+    updateBotAlias_botAliasId,+    updateBotAlias_botAliasName,+    updateBotAlias_botId,+    updateBotAliasResponse_botAliasId,+    updateBotAliasResponse_botAliasLocaleSettings,+    updateBotAliasResponse_botAliasName,+    updateBotAliasResponse_botAliasStatus,+    updateBotAliasResponse_botId,+    updateBotAliasResponse_botVersion,+    updateBotAliasResponse_conversationLogSettings,+    updateBotAliasResponse_creationDateTime,+    updateBotAliasResponse_description,+    updateBotAliasResponse_lastUpdatedDateTime,+    updateBotAliasResponse_sentimentAnalysisSettings,+    updateBotAliasResponse_httpStatus,++    -- ** UpdateBotLocale+    updateBotLocale_description,+    updateBotLocale_voiceSettings,+    updateBotLocale_botId,+    updateBotLocale_botVersion,+    updateBotLocale_localeId,+    updateBotLocale_nluIntentConfidenceThreshold,+    updateBotLocaleResponse_botId,+    updateBotLocaleResponse_botLocaleStatus,+    updateBotLocaleResponse_botVersion,+    updateBotLocaleResponse_creationDateTime,+    updateBotLocaleResponse_description,+    updateBotLocaleResponse_failureReasons,+    updateBotLocaleResponse_lastUpdatedDateTime,+    updateBotLocaleResponse_localeId,+    updateBotLocaleResponse_localeName,+    updateBotLocaleResponse_nluIntentConfidenceThreshold,+    updateBotLocaleResponse_recommendedActions,+    updateBotLocaleResponse_voiceSettings,+    updateBotLocaleResponse_httpStatus,++    -- ** UpdateBotRecommendation+    updateBotRecommendation_botId,+    updateBotRecommendation_botVersion,+    updateBotRecommendation_localeId,+    updateBotRecommendation_botRecommendationId,+    updateBotRecommendation_encryptionSetting,+    updateBotRecommendationResponse_botId,+    updateBotRecommendationResponse_botRecommendationId,+    updateBotRecommendationResponse_botRecommendationStatus,+    updateBotRecommendationResponse_botVersion,+    updateBotRecommendationResponse_creationDateTime,+    updateBotRecommendationResponse_encryptionSetting,+    updateBotRecommendationResponse_lastUpdatedDateTime,+    updateBotRecommendationResponse_localeId,+    updateBotRecommendationResponse_transcriptSourceSetting,+    updateBotRecommendationResponse_httpStatus,++    -- ** UpdateExport+    updateExport_filePassword,+    updateExport_exportId,+    updateExportResponse_creationDateTime,+    updateExportResponse_exportId,+    updateExportResponse_exportStatus,+    updateExportResponse_fileFormat,+    updateExportResponse_lastUpdatedDateTime,+    updateExportResponse_resourceSpecification,+    updateExportResponse_httpStatus,++    -- ** UpdateIntent+    updateIntent_description,+    updateIntent_dialogCodeHook,+    updateIntent_fulfillmentCodeHook,+    updateIntent_initialResponseSetting,+    updateIntent_inputContexts,+    updateIntent_intentClosingSetting,+    updateIntent_intentConfirmationSetting,+    updateIntent_kendraConfiguration,+    updateIntent_outputContexts,+    updateIntent_parentIntentSignature,+    updateIntent_sampleUtterances,+    updateIntent_slotPriorities,+    updateIntent_intentId,+    updateIntent_intentName,+    updateIntent_botId,+    updateIntent_botVersion,+    updateIntent_localeId,+    updateIntentResponse_botId,+    updateIntentResponse_botVersion,+    updateIntentResponse_creationDateTime,+    updateIntentResponse_description,+    updateIntentResponse_dialogCodeHook,+    updateIntentResponse_fulfillmentCodeHook,+    updateIntentResponse_initialResponseSetting,+    updateIntentResponse_inputContexts,+    updateIntentResponse_intentClosingSetting,+    updateIntentResponse_intentConfirmationSetting,+    updateIntentResponse_intentId,+    updateIntentResponse_intentName,+    updateIntentResponse_kendraConfiguration,+    updateIntentResponse_lastUpdatedDateTime,+    updateIntentResponse_localeId,+    updateIntentResponse_outputContexts,+    updateIntentResponse_parentIntentSignature,+    updateIntentResponse_sampleUtterances,+    updateIntentResponse_slotPriorities,+    updateIntentResponse_httpStatus,++    -- ** UpdateResourcePolicy+    updateResourcePolicy_expectedRevisionId,+    updateResourcePolicy_resourceArn,+    updateResourcePolicy_policy,+    updateResourcePolicyResponse_resourceArn,+    updateResourcePolicyResponse_revisionId,+    updateResourcePolicyResponse_httpStatus,++    -- ** UpdateSlot+    updateSlot_description,+    updateSlot_multipleValuesSetting,+    updateSlot_obfuscationSetting,+    updateSlot_slotTypeId,+    updateSlot_subSlotSetting,+    updateSlot_slotId,+    updateSlot_slotName,+    updateSlot_valueElicitationSetting,+    updateSlot_botId,+    updateSlot_botVersion,+    updateSlot_localeId,+    updateSlot_intentId,+    updateSlotResponse_botId,+    updateSlotResponse_botVersion,+    updateSlotResponse_creationDateTime,+    updateSlotResponse_description,+    updateSlotResponse_intentId,+    updateSlotResponse_lastUpdatedDateTime,+    updateSlotResponse_localeId,+    updateSlotResponse_multipleValuesSetting,+    updateSlotResponse_obfuscationSetting,+    updateSlotResponse_slotId,+    updateSlotResponse_slotName,+    updateSlotResponse_slotTypeId,+    updateSlotResponse_subSlotSetting,+    updateSlotResponse_valueElicitationSetting,+    updateSlotResponse_httpStatus,++    -- ** UpdateSlotType+    updateSlotType_compositeSlotTypeSetting,+    updateSlotType_description,+    updateSlotType_externalSourceSetting,+    updateSlotType_parentSlotTypeSignature,+    updateSlotType_slotTypeValues,+    updateSlotType_valueSelectionSetting,+    updateSlotType_slotTypeId,+    updateSlotType_slotTypeName,+    updateSlotType_botId,+    updateSlotType_botVersion,+    updateSlotType_localeId,+    updateSlotTypeResponse_botId,+    updateSlotTypeResponse_botVersion,+    updateSlotTypeResponse_compositeSlotTypeSetting,+    updateSlotTypeResponse_creationDateTime,+    updateSlotTypeResponse_description,+    updateSlotTypeResponse_externalSourceSetting,+    updateSlotTypeResponse_lastUpdatedDateTime,+    updateSlotTypeResponse_localeId,+    updateSlotTypeResponse_parentSlotTypeSignature,+    updateSlotTypeResponse_slotTypeId,+    updateSlotTypeResponse_slotTypeName,+    updateSlotTypeResponse_slotTypeValues,+    updateSlotTypeResponse_valueSelectionSetting,+    updateSlotTypeResponse_httpStatus,++    -- * Types++    -- ** AdvancedRecognitionSetting+    advancedRecognitionSetting_audioRecognitionStrategy,++    -- ** AggregatedUtterancesFilter+    aggregatedUtterancesFilter_name,+    aggregatedUtterancesFilter_values,+    aggregatedUtterancesFilter_operator,++    -- ** AggregatedUtterancesSortBy+    aggregatedUtterancesSortBy_attribute,+    aggregatedUtterancesSortBy_order,++    -- ** AggregatedUtterancesSummary+    aggregatedUtterancesSummary_containsDataFromDeletedResources,+    aggregatedUtterancesSummary_hitCount,+    aggregatedUtterancesSummary_missedCount,+    aggregatedUtterancesSummary_utterance,+    aggregatedUtterancesSummary_utteranceFirstRecordedInAggregationDuration,+    aggregatedUtterancesSummary_utteranceLastRecordedInAggregationDuration,++    -- ** AllowedInputTypes+    allowedInputTypes_allowAudioInput,+    allowedInputTypes_allowDTMFInput,++    -- ** AssociatedTranscript+    associatedTranscript_transcript,++    -- ** AssociatedTranscriptFilter+    associatedTranscriptFilter_name,+    associatedTranscriptFilter_values,++    -- ** AudioAndDTMFInputSpecification+    audioAndDTMFInputSpecification_audioSpecification,+    audioAndDTMFInputSpecification_dtmfSpecification,+    audioAndDTMFInputSpecification_startTimeoutMs,++    -- ** AudioLogDestination+    audioLogDestination_s3Bucket,++    -- ** AudioLogSetting+    audioLogSetting_enabled,+    audioLogSetting_destination,++    -- ** AudioSpecification+    audioSpecification_maxLengthMs,+    audioSpecification_endTimeoutMs,++    -- ** BotAliasHistoryEvent+    botAliasHistoryEvent_botVersion,+    botAliasHistoryEvent_endDate,+    botAliasHistoryEvent_startDate,++    -- ** BotAliasLocaleSettings+    botAliasLocaleSettings_codeHookSpecification,+    botAliasLocaleSettings_enabled,++    -- ** BotAliasSummary+    botAliasSummary_botAliasId,+    botAliasSummary_botAliasName,+    botAliasSummary_botAliasStatus,+    botAliasSummary_botVersion,+    botAliasSummary_creationDateTime,+    botAliasSummary_description,+    botAliasSummary_lastUpdatedDateTime,++    -- ** BotExportSpecification+    botExportSpecification_botId,+    botExportSpecification_botVersion,++    -- ** BotFilter+    botFilter_name,+    botFilter_values,+    botFilter_operator,++    -- ** BotImportSpecification+    botImportSpecification_botTags,+    botImportSpecification_idleSessionTTLInSeconds,+    botImportSpecification_testBotAliasTags,+    botImportSpecification_botName,+    botImportSpecification_roleArn,+    botImportSpecification_dataPrivacy,++    -- ** BotLocaleExportSpecification+    botLocaleExportSpecification_botId,+    botLocaleExportSpecification_botVersion,+    botLocaleExportSpecification_localeId,++    -- ** BotLocaleFilter+    botLocaleFilter_name,+    botLocaleFilter_values,+    botLocaleFilter_operator,++    -- ** BotLocaleHistoryEvent+    botLocaleHistoryEvent_event,+    botLocaleHistoryEvent_eventDate,++    -- ** BotLocaleImportSpecification+    botLocaleImportSpecification_nluIntentConfidenceThreshold,+    botLocaleImportSpecification_voiceSettings,+    botLocaleImportSpecification_botId,+    botLocaleImportSpecification_botVersion,+    botLocaleImportSpecification_localeId,++    -- ** BotLocaleSortBy+    botLocaleSortBy_attribute,+    botLocaleSortBy_order,++    -- ** BotLocaleSummary+    botLocaleSummary_botLocaleStatus,+    botLocaleSummary_description,+    botLocaleSummary_lastBuildSubmittedDateTime,+    botLocaleSummary_lastUpdatedDateTime,+    botLocaleSummary_localeId,+    botLocaleSummary_localeName,++    -- ** BotRecommendationResultStatistics+    botRecommendationResultStatistics_intents,+    botRecommendationResultStatistics_slotTypes,++    -- ** BotRecommendationResults+    botRecommendationResults_associatedTranscriptsUrl,+    botRecommendationResults_botLocaleExportUrl,+    botRecommendationResults_statistics,++    -- ** BotRecommendationSummary+    botRecommendationSummary_creationDateTime,+    botRecommendationSummary_lastUpdatedDateTime,+    botRecommendationSummary_botRecommendationStatus,+    botRecommendationSummary_botRecommendationId,++    -- ** BotSortBy+    botSortBy_attribute,+    botSortBy_order,++    -- ** BotSummary+    botSummary_botId,+    botSummary_botName,+    botSummary_botStatus,+    botSummary_description,+    botSummary_lastUpdatedDateTime,+    botSummary_latestBotVersion,++    -- ** BotVersionLocaleDetails+    botVersionLocaleDetails_sourceBotVersion,++    -- ** BotVersionSortBy+    botVersionSortBy_attribute,+    botVersionSortBy_order,++    -- ** BotVersionSummary+    botVersionSummary_botName,+    botVersionSummary_botStatus,+    botVersionSummary_botVersion,+    botVersionSummary_creationDateTime,+    botVersionSummary_description,++    -- ** BuiltInIntentSortBy+    builtInIntentSortBy_attribute,+    builtInIntentSortBy_order,++    -- ** BuiltInIntentSummary+    builtInIntentSummary_description,+    builtInIntentSummary_intentSignature,++    -- ** BuiltInSlotTypeSortBy+    builtInSlotTypeSortBy_attribute,+    builtInSlotTypeSortBy_order,++    -- ** BuiltInSlotTypeSummary+    builtInSlotTypeSummary_description,+    builtInSlotTypeSummary_slotTypeSignature,++    -- ** Button+    button_text,+    button_value,++    -- ** CloudWatchLogGroupLogDestination+    cloudWatchLogGroupLogDestination_cloudWatchLogGroupArn,+    cloudWatchLogGroupLogDestination_logPrefix,++    -- ** CodeHookSpecification+    codeHookSpecification_lambdaCodeHook,++    -- ** CompositeSlotTypeSetting+    compositeSlotTypeSetting_subSlots,++    -- ** Condition+    condition_expressionString,++    -- ** ConditionalBranch+    conditionalBranch_response,+    conditionalBranch_name,+    conditionalBranch_condition,+    conditionalBranch_nextStep,++    -- ** ConditionalSpecification+    conditionalSpecification_active,+    conditionalSpecification_conditionalBranches,+    conditionalSpecification_defaultBranch,++    -- ** ConversationLogSettings+    conversationLogSettings_audioLogSettings,+    conversationLogSettings_textLogSettings,++    -- ** CustomPayload+    customPayload_value,++    -- ** CustomVocabularyEntryId+    customVocabularyEntryId_itemId,++    -- ** CustomVocabularyExportSpecification+    customVocabularyExportSpecification_botId,+    customVocabularyExportSpecification_botVersion,+    customVocabularyExportSpecification_localeId,++    -- ** CustomVocabularyImportSpecification+    customVocabularyImportSpecification_botId,+    customVocabularyImportSpecification_botVersion,+    customVocabularyImportSpecification_localeId,++    -- ** CustomVocabularyItem+    customVocabularyItem_displayAs,+    customVocabularyItem_weight,+    customVocabularyItem_itemId,+    customVocabularyItem_phrase,++    -- ** DTMFSpecification+    dTMFSpecification_maxLength,+    dTMFSpecification_endTimeoutMs,+    dTMFSpecification_deletionCharacter,+    dTMFSpecification_endCharacter,++    -- ** DataPrivacy+    dataPrivacy_childDirected,++    -- ** DateRangeFilter+    dateRangeFilter_startDateTime,+    dateRangeFilter_endDateTime,++    -- ** DefaultConditionalBranch+    defaultConditionalBranch_nextStep,+    defaultConditionalBranch_response,++    -- ** DialogAction+    dialogAction_slotToElicit,+    dialogAction_suppressNextMessage,+    dialogAction_type,++    -- ** DialogCodeHookInvocationSetting+    dialogCodeHookInvocationSetting_invocationLabel,+    dialogCodeHookInvocationSetting_enableCodeHookInvocation,+    dialogCodeHookInvocationSetting_active,+    dialogCodeHookInvocationSetting_postCodeHookSpecification,++    -- ** DialogCodeHookSettings+    dialogCodeHookSettings_enabled,++    -- ** DialogState+    dialogState_dialogAction,+    dialogState_intent,+    dialogState_sessionAttributes,++    -- ** ElicitationCodeHookInvocationSetting+    elicitationCodeHookInvocationSetting_invocationLabel,+    elicitationCodeHookInvocationSetting_enableCodeHookInvocation,++    -- ** EncryptionSetting+    encryptionSetting_associatedTranscriptsPassword,+    encryptionSetting_botLocaleExportPassword,+    encryptionSetting_kmsKeyArn,++    -- ** ExportFilter+    exportFilter_name,+    exportFilter_values,+    exportFilter_operator,++    -- ** ExportResourceSpecification+    exportResourceSpecification_botExportSpecification,+    exportResourceSpecification_botLocaleExportSpecification,+    exportResourceSpecification_customVocabularyExportSpecification,++    -- ** ExportSortBy+    exportSortBy_attribute,+    exportSortBy_order,++    -- ** ExportSummary+    exportSummary_creationDateTime,+    exportSummary_exportId,+    exportSummary_exportStatus,+    exportSummary_fileFormat,+    exportSummary_lastUpdatedDateTime,+    exportSummary_resourceSpecification,++    -- ** ExternalSourceSetting+    externalSourceSetting_grammarSlotTypeSetting,++    -- ** FailedCustomVocabularyItem+    failedCustomVocabularyItem_errorCode,+    failedCustomVocabularyItem_errorMessage,+    failedCustomVocabularyItem_itemId,++    -- ** FulfillmentCodeHookSettings+    fulfillmentCodeHookSettings_active,+    fulfillmentCodeHookSettings_fulfillmentUpdatesSpecification,+    fulfillmentCodeHookSettings_postFulfillmentStatusSpecification,+    fulfillmentCodeHookSettings_enabled,++    -- ** FulfillmentStartResponseSpecification+    fulfillmentStartResponseSpecification_allowInterrupt,+    fulfillmentStartResponseSpecification_delayInSeconds,+    fulfillmentStartResponseSpecification_messageGroups,++    -- ** FulfillmentUpdateResponseSpecification+    fulfillmentUpdateResponseSpecification_allowInterrupt,+    fulfillmentUpdateResponseSpecification_frequencyInSeconds,+    fulfillmentUpdateResponseSpecification_messageGroups,++    -- ** FulfillmentUpdatesSpecification+    fulfillmentUpdatesSpecification_startResponse,+    fulfillmentUpdatesSpecification_timeoutInSeconds,+    fulfillmentUpdatesSpecification_updateResponse,+    fulfillmentUpdatesSpecification_active,++    -- ** GrammarSlotTypeSetting+    grammarSlotTypeSetting_source,++    -- ** GrammarSlotTypeSource+    grammarSlotTypeSource_kmsKeyArn,+    grammarSlotTypeSource_s3BucketName,+    grammarSlotTypeSource_s3ObjectKey,++    -- ** ImageResponseCard+    imageResponseCard_buttons,+    imageResponseCard_imageUrl,+    imageResponseCard_subtitle,+    imageResponseCard_title,++    -- ** ImportFilter+    importFilter_name,+    importFilter_values,+    importFilter_operator,++    -- ** ImportResourceSpecification+    importResourceSpecification_botImportSpecification,+    importResourceSpecification_botLocaleImportSpecification,+    importResourceSpecification_customVocabularyImportSpecification,++    -- ** ImportSortBy+    importSortBy_attribute,+    importSortBy_order,++    -- ** ImportSummary+    importSummary_creationDateTime,+    importSummary_importId,+    importSummary_importStatus,+    importSummary_importedResourceId,+    importSummary_importedResourceName,+    importSummary_importedResourceType,+    importSummary_lastUpdatedDateTime,+    importSummary_mergeStrategy,++    -- ** InitialResponseSetting+    initialResponseSetting_codeHook,+    initialResponseSetting_conditional,+    initialResponseSetting_initialResponse,+    initialResponseSetting_nextStep,++    -- ** InputContext+    inputContext_name,++    -- ** IntentClosingSetting+    intentClosingSetting_active,+    intentClosingSetting_closingResponse,+    intentClosingSetting_conditional,+    intentClosingSetting_nextStep,++    -- ** IntentConfirmationSetting+    intentConfirmationSetting_active,+    intentConfirmationSetting_codeHook,+    intentConfirmationSetting_confirmationConditional,+    intentConfirmationSetting_confirmationNextStep,+    intentConfirmationSetting_confirmationResponse,+    intentConfirmationSetting_declinationConditional,+    intentConfirmationSetting_declinationNextStep,+    intentConfirmationSetting_declinationResponse,+    intentConfirmationSetting_elicitationCodeHook,+    intentConfirmationSetting_failureConditional,+    intentConfirmationSetting_failureNextStep,+    intentConfirmationSetting_failureResponse,+    intentConfirmationSetting_promptSpecification,++    -- ** IntentFilter+    intentFilter_name,+    intentFilter_values,+    intentFilter_operator,++    -- ** IntentOverride+    intentOverride_name,+    intentOverride_slots,++    -- ** IntentSortBy+    intentSortBy_attribute,+    intentSortBy_order,++    -- ** IntentStatistics+    intentStatistics_discoveredIntentCount,++    -- ** IntentSummary+    intentSummary_description,+    intentSummary_inputContexts,+    intentSummary_intentId,+    intentSummary_intentName,+    intentSummary_lastUpdatedDateTime,+    intentSummary_outputContexts,+    intentSummary_parentIntentSignature,++    -- ** KendraConfiguration+    kendraConfiguration_queryFilterString,+    kendraConfiguration_queryFilterStringEnabled,+    kendraConfiguration_kendraIndex,++    -- ** LambdaCodeHook+    lambdaCodeHook_lambdaARN,+    lambdaCodeHook_codeHookInterfaceVersion,++    -- ** LexTranscriptFilter+    lexTranscriptFilter_dateRangeFilter,++    -- ** Message+    message_customPayload,+    message_imageResponseCard,+    message_plainTextMessage,+    message_ssmlMessage,++    -- ** MessageGroup+    messageGroup_variations,+    messageGroup_message,++    -- ** MultipleValuesSetting+    multipleValuesSetting_allowMultipleValues,++    -- ** NewCustomVocabularyItem+    newCustomVocabularyItem_displayAs,+    newCustomVocabularyItem_weight,+    newCustomVocabularyItem_phrase,++    -- ** ObfuscationSetting+    obfuscationSetting_obfuscationSettingType,++    -- ** OutputContext+    outputContext_name,+    outputContext_timeToLiveInSeconds,+    outputContext_turnsToLive,++    -- ** PathFormat+    pathFormat_objectPrefixes,++    -- ** PlainTextMessage+    plainTextMessage_value,++    -- ** PostDialogCodeHookInvocationSpecification+    postDialogCodeHookInvocationSpecification_failureConditional,+    postDialogCodeHookInvocationSpecification_failureNextStep,+    postDialogCodeHookInvocationSpecification_failureResponse,+    postDialogCodeHookInvocationSpecification_successConditional,+    postDialogCodeHookInvocationSpecification_successNextStep,+    postDialogCodeHookInvocationSpecification_successResponse,+    postDialogCodeHookInvocationSpecification_timeoutConditional,+    postDialogCodeHookInvocationSpecification_timeoutNextStep,+    postDialogCodeHookInvocationSpecification_timeoutResponse,++    -- ** PostFulfillmentStatusSpecification+    postFulfillmentStatusSpecification_failureConditional,+    postFulfillmentStatusSpecification_failureNextStep,+    postFulfillmentStatusSpecification_failureResponse,+    postFulfillmentStatusSpecification_successConditional,+    postFulfillmentStatusSpecification_successNextStep,+    postFulfillmentStatusSpecification_successResponse,+    postFulfillmentStatusSpecification_timeoutConditional,+    postFulfillmentStatusSpecification_timeoutNextStep,+    postFulfillmentStatusSpecification_timeoutResponse,++    -- ** Principal+    principal_arn,+    principal_service,++    -- ** PromptAttemptSpecification+    promptAttemptSpecification_allowInterrupt,+    promptAttemptSpecification_audioAndDTMFInputSpecification,+    promptAttemptSpecification_textInputSpecification,+    promptAttemptSpecification_allowedInputTypes,++    -- ** PromptSpecification+    promptSpecification_allowInterrupt,+    promptSpecification_messageSelectionStrategy,+    promptSpecification_promptAttemptsSpecification,+    promptSpecification_messageGroups,+    promptSpecification_maxRetries,++    -- ** RecommendedIntentSummary+    recommendedIntentSummary_intentId,+    recommendedIntentSummary_intentName,+    recommendedIntentSummary_sampleUtterancesCount,++    -- ** RelativeAggregationDuration+    relativeAggregationDuration_timeDimension,+    relativeAggregationDuration_timeValue,++    -- ** ResponseSpecification+    responseSpecification_allowInterrupt,+    responseSpecification_messageGroups,++    -- ** S3BucketLogDestination+    s3BucketLogDestination_kmsKeyArn,+    s3BucketLogDestination_s3BucketArn,+    s3BucketLogDestination_logPrefix,++    -- ** S3BucketTranscriptSource+    s3BucketTranscriptSource_kmsKeyArn,+    s3BucketTranscriptSource_pathFormat,+    s3BucketTranscriptSource_transcriptFilter,+    s3BucketTranscriptSource_s3BucketName,+    s3BucketTranscriptSource_transcriptFormat,++    -- ** SSMLMessage+    sSMLMessage_value,++    -- ** SampleUtterance+    sampleUtterance_utterance,++    -- ** SampleValue+    sampleValue_value,++    -- ** SentimentAnalysisSettings+    sentimentAnalysisSettings_detectSentiment,++    -- ** SlotCaptureSetting+    slotCaptureSetting_captureConditional,+    slotCaptureSetting_captureNextStep,+    slotCaptureSetting_captureResponse,+    slotCaptureSetting_codeHook,+    slotCaptureSetting_elicitationCodeHook,+    slotCaptureSetting_failureConditional,+    slotCaptureSetting_failureNextStep,+    slotCaptureSetting_failureResponse,++    -- ** SlotDefaultValue+    slotDefaultValue_defaultValue,++    -- ** SlotDefaultValueSpecification+    slotDefaultValueSpecification_defaultValueList,++    -- ** SlotFilter+    slotFilter_name,+    slotFilter_values,+    slotFilter_operator,++    -- ** SlotPriority+    slotPriority_priority,+    slotPriority_slotId,++    -- ** SlotSortBy+    slotSortBy_attribute,+    slotSortBy_order,++    -- ** SlotSummary+    slotSummary_description,+    slotSummary_lastUpdatedDateTime,+    slotSummary_slotConstraint,+    slotSummary_slotId,+    slotSummary_slotName,+    slotSummary_slotTypeId,+    slotSummary_valueElicitationPromptSpecification,++    -- ** SlotTypeFilter+    slotTypeFilter_name,+    slotTypeFilter_values,+    slotTypeFilter_operator,++    -- ** SlotTypeSortBy+    slotTypeSortBy_attribute,+    slotTypeSortBy_order,++    -- ** SlotTypeStatistics+    slotTypeStatistics_discoveredSlotTypeCount,++    -- ** SlotTypeSummary+    slotTypeSummary_description,+    slotTypeSummary_lastUpdatedDateTime,+    slotTypeSummary_parentSlotTypeSignature,+    slotTypeSummary_slotTypeCategory,+    slotTypeSummary_slotTypeId,+    slotTypeSummary_slotTypeName,++    -- ** SlotTypeValue+    slotTypeValue_sampleValue,+    slotTypeValue_synonyms,++    -- ** SlotValue+    slotValue_interpretedValue,++    -- ** SlotValueElicitationSetting+    slotValueElicitationSetting_defaultValueSpecification,+    slotValueElicitationSetting_promptSpecification,+    slotValueElicitationSetting_sampleUtterances,+    slotValueElicitationSetting_slotCaptureSetting,+    slotValueElicitationSetting_waitAndContinueSpecification,+    slotValueElicitationSetting_slotConstraint,++    -- ** SlotValueOverride+    slotValueOverride_shape,+    slotValueOverride_value,+    slotValueOverride_values,++    -- ** SlotValueRegexFilter+    slotValueRegexFilter_pattern,++    -- ** SlotValueSelectionSetting+    slotValueSelectionSetting_advancedRecognitionSetting,+    slotValueSelectionSetting_regexFilter,+    slotValueSelectionSetting_resolutionStrategy,++    -- ** Specifications+    specifications_slotTypeId,+    specifications_valueElicitationSetting,++    -- ** StillWaitingResponseSpecification+    stillWaitingResponseSpecification_allowInterrupt,+    stillWaitingResponseSpecification_messageGroups,+    stillWaitingResponseSpecification_frequencyInSeconds,+    stillWaitingResponseSpecification_timeoutInSeconds,++    -- ** SubSlotSetting+    subSlotSetting_expression,+    subSlotSetting_slotSpecifications,++    -- ** SubSlotTypeComposition+    subSlotTypeComposition_name,+    subSlotTypeComposition_slotTypeId,++    -- ** SubSlotValueElicitationSetting+    subSlotValueElicitationSetting_defaultValueSpecification,+    subSlotValueElicitationSetting_sampleUtterances,+    subSlotValueElicitationSetting_waitAndContinueSpecification,+    subSlotValueElicitationSetting_promptSpecification,++    -- ** TextInputSpecification+    textInputSpecification_startTimeoutMs,++    -- ** TextLogDestination+    textLogDestination_cloudWatch,++    -- ** TextLogSetting+    textLogSetting_enabled,+    textLogSetting_destination,++    -- ** TranscriptFilter+    transcriptFilter_lexTranscriptFilter,++    -- ** TranscriptSourceSetting+    transcriptSourceSetting_s3BucketTranscriptSource,++    -- ** UtteranceAggregationDuration+    utteranceAggregationDuration_relativeAggregationDuration,++    -- ** VoiceSettings+    voiceSettings_engine,+    voiceSettings_voiceId,++    -- ** WaitAndContinueSpecification+    waitAndContinueSpecification_active,+    waitAndContinueSpecification_stillWaitingResponse,+    waitAndContinueSpecification_waitingResponse,+    waitAndContinueSpecification_continueResponse,+  )+where++import Amazonka.LexV2Models.BatchCreateCustomVocabularyItem+import Amazonka.LexV2Models.BatchDeleteCustomVocabularyItem+import Amazonka.LexV2Models.BatchUpdateCustomVocabularyItem+import Amazonka.LexV2Models.BuildBotLocale+import Amazonka.LexV2Models.CreateBot+import Amazonka.LexV2Models.CreateBotAlias+import Amazonka.LexV2Models.CreateBotLocale+import Amazonka.LexV2Models.CreateBotVersion+import Amazonka.LexV2Models.CreateExport+import Amazonka.LexV2Models.CreateIntent+import Amazonka.LexV2Models.CreateResourcePolicy+import Amazonka.LexV2Models.CreateResourcePolicyStatement+import Amazonka.LexV2Models.CreateSlot+import Amazonka.LexV2Models.CreateSlotType+import Amazonka.LexV2Models.CreateUploadUrl+import Amazonka.LexV2Models.DeleteBot+import Amazonka.LexV2Models.DeleteBotAlias+import Amazonka.LexV2Models.DeleteBotLocale+import Amazonka.LexV2Models.DeleteBotVersion+import Amazonka.LexV2Models.DeleteCustomVocabulary+import Amazonka.LexV2Models.DeleteExport+import Amazonka.LexV2Models.DeleteImport+import Amazonka.LexV2Models.DeleteIntent+import Amazonka.LexV2Models.DeleteResourcePolicy+import Amazonka.LexV2Models.DeleteResourcePolicyStatement+import Amazonka.LexV2Models.DeleteSlot+import Amazonka.LexV2Models.DeleteSlotType+import Amazonka.LexV2Models.DeleteUtterances+import Amazonka.LexV2Models.DescribeBot+import Amazonka.LexV2Models.DescribeBotAlias+import Amazonka.LexV2Models.DescribeBotLocale+import Amazonka.LexV2Models.DescribeBotRecommendation+import Amazonka.LexV2Models.DescribeBotVersion+import Amazonka.LexV2Models.DescribeCustomVocabularyMetadata+import Amazonka.LexV2Models.DescribeExport+import Amazonka.LexV2Models.DescribeImport+import Amazonka.LexV2Models.DescribeIntent+import Amazonka.LexV2Models.DescribeResourcePolicy+import Amazonka.LexV2Models.DescribeSlot+import Amazonka.LexV2Models.DescribeSlotType+import Amazonka.LexV2Models.ListAggregatedUtterances+import Amazonka.LexV2Models.ListBotAliases+import Amazonka.LexV2Models.ListBotLocales+import Amazonka.LexV2Models.ListBotRecommendations+import Amazonka.LexV2Models.ListBotVersions+import Amazonka.LexV2Models.ListBots+import Amazonka.LexV2Models.ListBuiltInIntents+import Amazonka.LexV2Models.ListBuiltInSlotTypes+import Amazonka.LexV2Models.ListCustomVocabularyItems+import Amazonka.LexV2Models.ListExports+import Amazonka.LexV2Models.ListImports+import Amazonka.LexV2Models.ListIntents+import Amazonka.LexV2Models.ListRecommendedIntents+import Amazonka.LexV2Models.ListSlotTypes+import Amazonka.LexV2Models.ListSlots+import Amazonka.LexV2Models.ListTagsForResource+import Amazonka.LexV2Models.SearchAssociatedTranscripts+import Amazonka.LexV2Models.StartBotRecommendation+import Amazonka.LexV2Models.StartImport+import Amazonka.LexV2Models.StopBotRecommendation+import Amazonka.LexV2Models.TagResource+import Amazonka.LexV2Models.Types.AdvancedRecognitionSetting+import Amazonka.LexV2Models.Types.AggregatedUtterancesFilter+import Amazonka.LexV2Models.Types.AggregatedUtterancesSortBy+import Amazonka.LexV2Models.Types.AggregatedUtterancesSummary+import Amazonka.LexV2Models.Types.AllowedInputTypes+import Amazonka.LexV2Models.Types.AssociatedTranscript+import Amazonka.LexV2Models.Types.AssociatedTranscriptFilter+import Amazonka.LexV2Models.Types.AudioAndDTMFInputSpecification+import Amazonka.LexV2Models.Types.AudioLogDestination+import Amazonka.LexV2Models.Types.AudioLogSetting+import Amazonka.LexV2Models.Types.AudioSpecification+import Amazonka.LexV2Models.Types.BotAliasHistoryEvent+import Amazonka.LexV2Models.Types.BotAliasLocaleSettings+import Amazonka.LexV2Models.Types.BotAliasSummary+import Amazonka.LexV2Models.Types.BotExportSpecification+import Amazonka.LexV2Models.Types.BotFilter+import Amazonka.LexV2Models.Types.BotImportSpecification+import Amazonka.LexV2Models.Types.BotLocaleExportSpecification+import Amazonka.LexV2Models.Types.BotLocaleFilter+import Amazonka.LexV2Models.Types.BotLocaleHistoryEvent+import Amazonka.LexV2Models.Types.BotLocaleImportSpecification+import Amazonka.LexV2Models.Types.BotLocaleSortBy+import Amazonka.LexV2Models.Types.BotLocaleSummary+import Amazonka.LexV2Models.Types.BotRecommendationResultStatistics+import Amazonka.LexV2Models.Types.BotRecommendationResults+import Amazonka.LexV2Models.Types.BotRecommendationSummary+import Amazonka.LexV2Models.Types.BotSortBy+import Amazonka.LexV2Models.Types.BotSummary+import Amazonka.LexV2Models.Types.BotVersionLocaleDetails+import Amazonka.LexV2Models.Types.BotVersionSortBy+import Amazonka.LexV2Models.Types.BotVersionSummary+import Amazonka.LexV2Models.Types.BuiltInIntentSortBy+import Amazonka.LexV2Models.Types.BuiltInIntentSummary+import Amazonka.LexV2Models.Types.BuiltInSlotTypeSortBy+import Amazonka.LexV2Models.Types.BuiltInSlotTypeSummary+import Amazonka.LexV2Models.Types.Button+import Amazonka.LexV2Models.Types.CloudWatchLogGroupLogDestination+import Amazonka.LexV2Models.Types.CodeHookSpecification+import Amazonka.LexV2Models.Types.CompositeSlotTypeSetting+import Amazonka.LexV2Models.Types.Condition+import Amazonka.LexV2Models.Types.ConditionalBranch+import Amazonka.LexV2Models.Types.ConditionalSpecification+import Amazonka.LexV2Models.Types.ConversationLogSettings+import Amazonka.LexV2Models.Types.CustomPayload+import Amazonka.LexV2Models.Types.CustomVocabularyEntryId+import Amazonka.LexV2Models.Types.CustomVocabularyExportSpecification+import Amazonka.LexV2Models.Types.CustomVocabularyImportSpecification+import Amazonka.LexV2Models.Types.CustomVocabularyItem+import Amazonka.LexV2Models.Types.DTMFSpecification+import Amazonka.LexV2Models.Types.DataPrivacy+import Amazonka.LexV2Models.Types.DateRangeFilter+import Amazonka.LexV2Models.Types.DefaultConditionalBranch+import Amazonka.LexV2Models.Types.DialogAction+import Amazonka.LexV2Models.Types.DialogCodeHookInvocationSetting+import Amazonka.LexV2Models.Types.DialogCodeHookSettings+import Amazonka.LexV2Models.Types.DialogState+import Amazonka.LexV2Models.Types.ElicitationCodeHookInvocationSetting+import Amazonka.LexV2Models.Types.EncryptionSetting+import Amazonka.LexV2Models.Types.ExportFilter+import Amazonka.LexV2Models.Types.ExportResourceSpecification+import Amazonka.LexV2Models.Types.ExportSortBy+import Amazonka.LexV2Models.Types.ExportSummary+import Amazonka.LexV2Models.Types.ExternalSourceSetting+import Amazonka.LexV2Models.Types.FailedCustomVocabularyItem+import Amazonka.LexV2Models.Types.FulfillmentCodeHookSettings+import Amazonka.LexV2Models.Types.FulfillmentStartResponseSpecification+import Amazonka.LexV2Models.Types.FulfillmentUpdateResponseSpecification+import Amazonka.LexV2Models.Types.FulfillmentUpdatesSpecification+import Amazonka.LexV2Models.Types.GrammarSlotTypeSetting+import Amazonka.LexV2Models.Types.GrammarSlotTypeSource+import Amazonka.LexV2Models.Types.ImageResponseCard+import Amazonka.LexV2Models.Types.ImportFilter+import Amazonka.LexV2Models.Types.ImportResourceSpecification+import Amazonka.LexV2Models.Types.ImportSortBy+import Amazonka.LexV2Models.Types.ImportSummary+import Amazonka.LexV2Models.Types.InitialResponseSetting+import Amazonka.LexV2Models.Types.InputContext+import Amazonka.LexV2Models.Types.IntentClosingSetting+import Amazonka.LexV2Models.Types.IntentConfirmationSetting+import Amazonka.LexV2Models.Types.IntentFilter+import Amazonka.LexV2Models.Types.IntentOverride+import Amazonka.LexV2Models.Types.IntentSortBy+import Amazonka.LexV2Models.Types.IntentStatistics+import Amazonka.LexV2Models.Types.IntentSummary+import Amazonka.LexV2Models.Types.KendraConfiguration+import Amazonka.LexV2Models.Types.LambdaCodeHook+import Amazonka.LexV2Models.Types.LexTranscriptFilter+import Amazonka.LexV2Models.Types.Message+import Amazonka.LexV2Models.Types.MessageGroup+import Amazonka.LexV2Models.Types.MultipleValuesSetting+import Amazonka.LexV2Models.Types.NewCustomVocabularyItem+import Amazonka.LexV2Models.Types.ObfuscationSetting+import Amazonka.LexV2Models.Types.OutputContext+import Amazonka.LexV2Models.Types.PathFormat+import Amazonka.LexV2Models.Types.PlainTextMessage+import Amazonka.LexV2Models.Types.PostDialogCodeHookInvocationSpecification+import Amazonka.LexV2Models.Types.PostFulfillmentStatusSpecification+import Amazonka.LexV2Models.Types.Principal+import Amazonka.LexV2Models.Types.PromptAttemptSpecification+import Amazonka.LexV2Models.Types.PromptSpecification+import Amazonka.LexV2Models.Types.RecommendedIntentSummary+import Amazonka.LexV2Models.Types.RelativeAggregationDuration+import Amazonka.LexV2Models.Types.ResponseSpecification+import Amazonka.LexV2Models.Types.S3BucketLogDestination+import Amazonka.LexV2Models.Types.S3BucketTranscriptSource+import Amazonka.LexV2Models.Types.SSMLMessage+import Amazonka.LexV2Models.Types.SampleUtterance+import Amazonka.LexV2Models.Types.SampleValue+import Amazonka.LexV2Models.Types.SentimentAnalysisSettings+import Amazonka.LexV2Models.Types.SlotCaptureSetting+import Amazonka.LexV2Models.Types.SlotDefaultValue+import Amazonka.LexV2Models.Types.SlotDefaultValueSpecification+import Amazonka.LexV2Models.Types.SlotFilter+import Amazonka.LexV2Models.Types.SlotPriority+import Amazonka.LexV2Models.Types.SlotSortBy+import Amazonka.LexV2Models.Types.SlotSummary+import Amazonka.LexV2Models.Types.SlotTypeFilter+import Amazonka.LexV2Models.Types.SlotTypeSortBy+import Amazonka.LexV2Models.Types.SlotTypeStatistics+import Amazonka.LexV2Models.Types.SlotTypeSummary+import Amazonka.LexV2Models.Types.SlotTypeValue+import Amazonka.LexV2Models.Types.SlotValue+import Amazonka.LexV2Models.Types.SlotValueElicitationSetting+import Amazonka.LexV2Models.Types.SlotValueOverride+import Amazonka.LexV2Models.Types.SlotValueRegexFilter+import Amazonka.LexV2Models.Types.SlotValueSelectionSetting+import Amazonka.LexV2Models.Types.Specifications+import Amazonka.LexV2Models.Types.StillWaitingResponseSpecification+import Amazonka.LexV2Models.Types.SubSlotSetting+import Amazonka.LexV2Models.Types.SubSlotTypeComposition+import Amazonka.LexV2Models.Types.SubSlotValueElicitationSetting+import Amazonka.LexV2Models.Types.TextInputSpecification+import Amazonka.LexV2Models.Types.TextLogDestination+import Amazonka.LexV2Models.Types.TextLogSetting+import Amazonka.LexV2Models.Types.TranscriptFilter+import Amazonka.LexV2Models.Types.TranscriptSourceSetting+import Amazonka.LexV2Models.Types.UtteranceAggregationDuration+import Amazonka.LexV2Models.Types.VoiceSettings+import Amazonka.LexV2Models.Types.WaitAndContinueSpecification+import Amazonka.LexV2Models.UntagResource+import Amazonka.LexV2Models.UpdateBot+import Amazonka.LexV2Models.UpdateBotAlias+import Amazonka.LexV2Models.UpdateBotLocale+import Amazonka.LexV2Models.UpdateBotRecommendation+import Amazonka.LexV2Models.UpdateExport+import Amazonka.LexV2Models.UpdateIntent+import Amazonka.LexV2Models.UpdateResourcePolicy+import Amazonka.LexV2Models.UpdateSlot+import Amazonka.LexV2Models.UpdateSlotType
+ gen/Amazonka/LexV2Models/ListAggregatedUtterances.hs view
@@ -0,0 +1,525 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.ListAggregatedUtterances+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Provides a list of utterances that users have sent to the bot.+--+-- Utterances are aggregated by the text of the utterance. For example, all+-- instances where customers used the phrase \"I want to order pizza\" are+-- aggregated into the same line in the response.+--+-- You can see both detected utterances and missed utterances. A detected+-- utterance is where the bot properly recognized the utterance and+-- activated the associated intent. A missed utterance was not recognized+-- by the bot and didn\'t activate an intent.+--+-- Utterances can be aggregated for a bot alias or for a bot version, but+-- not both at the same time.+--+-- Utterances statistics are not generated under the following conditions:+--+-- -   The @childDirected@ field was set to true when the bot was created.+--+-- -   You are using slot obfuscation with one or more slots.+--+-- -   You opted out of participating in improving Amazon Lex.+module Amazonka.LexV2Models.ListAggregatedUtterances+  ( -- * Creating a Request+    ListAggregatedUtterances (..),+    newListAggregatedUtterances,++    -- * Request Lenses+    listAggregatedUtterances_botAliasId,+    listAggregatedUtterances_botVersion,+    listAggregatedUtterances_filters,+    listAggregatedUtterances_maxResults,+    listAggregatedUtterances_nextToken,+    listAggregatedUtterances_sortBy,+    listAggregatedUtterances_botId,+    listAggregatedUtterances_localeId,+    listAggregatedUtterances_aggregationDuration,++    -- * Destructuring the Response+    ListAggregatedUtterancesResponse (..),+    newListAggregatedUtterancesResponse,++    -- * Response Lenses+    listAggregatedUtterancesResponse_aggregatedUtterancesSummaries,+    listAggregatedUtterancesResponse_aggregationDuration,+    listAggregatedUtterancesResponse_aggregationLastRefreshedDateTime,+    listAggregatedUtterancesResponse_aggregationWindowEndTime,+    listAggregatedUtterancesResponse_aggregationWindowStartTime,+    listAggregatedUtterancesResponse_botAliasId,+    listAggregatedUtterancesResponse_botId,+    listAggregatedUtterancesResponse_botVersion,+    listAggregatedUtterancesResponse_localeId,+    listAggregatedUtterancesResponse_nextToken,+    listAggregatedUtterancesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAggregatedUtterances' smart constructor.+data ListAggregatedUtterances = ListAggregatedUtterances'+  { -- | The identifier of the bot alias associated with this request. If you+    -- specify the bot alias, you can\'t specify the bot version.+    botAliasId :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the bot version associated with this request. If you+    -- specify the bot version, you can\'t specify the bot alias.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | Provides the specification of a filter used to limit the utterances in+    -- the response to only those that match the filter specification. You can+    -- only specify one filter and one string to filter on.+    filters :: Prelude.Maybe (Prelude.NonEmpty AggregatedUtterancesFilter),+    -- | The maximum number of utterances to return in each page of results. If+    -- there are fewer results than the maximum page size, only the actual+    -- number of results are returned. If you don\'t specify the @maxResults@+    -- parameter, 1,000 results are returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the response from the @ListAggregatedUtterances@ operation contains+    -- more results that specified in the @maxResults@ parameter, a token is+    -- returned in the response. Use that token in the @nextToken@ parameter to+    -- return the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Specifies sorting parameters for the list of utterances. You can sort by+    -- the hit count, the missed count, or the number of distinct sessions the+    -- utterance appeared in.+    sortBy :: Prelude.Maybe AggregatedUtterancesSortBy,+    -- | The unique identifier of the bot associated with this request.+    botId :: Prelude.Text,+    -- | The identifier of the language and locale where the utterances were+    -- collected. For more information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text,+    -- | The time window for aggregating the utterance information. You can+    -- specify a time between one hour and two weeks.+    aggregationDuration :: UtteranceAggregationDuration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAggregatedUtterances' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botAliasId', 'listAggregatedUtterances_botAliasId' - The identifier of the bot alias associated with this request. If you+-- specify the bot alias, you can\'t specify the bot version.+--+-- 'botVersion', 'listAggregatedUtterances_botVersion' - The identifier of the bot version associated with this request. If you+-- specify the bot version, you can\'t specify the bot alias.+--+-- 'filters', 'listAggregatedUtterances_filters' - Provides the specification of a filter used to limit the utterances in+-- the response to only those that match the filter specification. You can+-- only specify one filter and one string to filter on.+--+-- 'maxResults', 'listAggregatedUtterances_maxResults' - The maximum number of utterances to return in each page of results. If+-- there are fewer results than the maximum page size, only the actual+-- number of results are returned. If you don\'t specify the @maxResults@+-- parameter, 1,000 results are returned.+--+-- 'nextToken', 'listAggregatedUtterances_nextToken' - If the response from the @ListAggregatedUtterances@ operation contains+-- more results that specified in the @maxResults@ parameter, a token is+-- returned in the response. Use that token in the @nextToken@ parameter to+-- return the next page of results.+--+-- 'sortBy', 'listAggregatedUtterances_sortBy' - Specifies sorting parameters for the list of utterances. You can sort by+-- the hit count, the missed count, or the number of distinct sessions the+-- utterance appeared in.+--+-- 'botId', 'listAggregatedUtterances_botId' - The unique identifier of the bot associated with this request.+--+-- 'localeId', 'listAggregatedUtterances_localeId' - The identifier of the language and locale where the utterances were+-- collected. For more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+--+-- 'aggregationDuration', 'listAggregatedUtterances_aggregationDuration' - The time window for aggregating the utterance information. You can+-- specify a time between one hour and two weeks.+newListAggregatedUtterances ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  -- | 'aggregationDuration'+  UtteranceAggregationDuration ->+  ListAggregatedUtterances+newListAggregatedUtterances+  pBotId_+  pLocaleId_+  pAggregationDuration_ =+    ListAggregatedUtterances'+      { botAliasId =+          Prelude.Nothing,+        botVersion = Prelude.Nothing,+        filters = Prelude.Nothing,+        maxResults = Prelude.Nothing,+        nextToken = Prelude.Nothing,+        sortBy = Prelude.Nothing,+        botId = pBotId_,+        localeId = pLocaleId_,+        aggregationDuration = pAggregationDuration_+      }++-- | The identifier of the bot alias associated with this request. If you+-- specify the bot alias, you can\'t specify the bot version.+listAggregatedUtterances_botAliasId :: Lens.Lens' ListAggregatedUtterances (Prelude.Maybe Prelude.Text)+listAggregatedUtterances_botAliasId = Lens.lens (\ListAggregatedUtterances' {botAliasId} -> botAliasId) (\s@ListAggregatedUtterances' {} a -> s {botAliasId = a} :: ListAggregatedUtterances)++-- | The identifier of the bot version associated with this request. If you+-- specify the bot version, you can\'t specify the bot alias.+listAggregatedUtterances_botVersion :: Lens.Lens' ListAggregatedUtterances (Prelude.Maybe Prelude.Text)+listAggregatedUtterances_botVersion = Lens.lens (\ListAggregatedUtterances' {botVersion} -> botVersion) (\s@ListAggregatedUtterances' {} a -> s {botVersion = a} :: ListAggregatedUtterances)++-- | Provides the specification of a filter used to limit the utterances in+-- the response to only those that match the filter specification. You can+-- only specify one filter and one string to filter on.+listAggregatedUtterances_filters :: Lens.Lens' ListAggregatedUtterances (Prelude.Maybe (Prelude.NonEmpty AggregatedUtterancesFilter))+listAggregatedUtterances_filters = Lens.lens (\ListAggregatedUtterances' {filters} -> filters) (\s@ListAggregatedUtterances' {} a -> s {filters = a} :: ListAggregatedUtterances) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of utterances to return in each page of results. If+-- there are fewer results than the maximum page size, only the actual+-- number of results are returned. If you don\'t specify the @maxResults@+-- parameter, 1,000 results are returned.+listAggregatedUtterances_maxResults :: Lens.Lens' ListAggregatedUtterances (Prelude.Maybe Prelude.Natural)+listAggregatedUtterances_maxResults = Lens.lens (\ListAggregatedUtterances' {maxResults} -> maxResults) (\s@ListAggregatedUtterances' {} a -> s {maxResults = a} :: ListAggregatedUtterances)++-- | If the response from the @ListAggregatedUtterances@ operation contains+-- more results that specified in the @maxResults@ parameter, a token is+-- returned in the response. Use that token in the @nextToken@ parameter to+-- return the next page of results.+listAggregatedUtterances_nextToken :: Lens.Lens' ListAggregatedUtterances (Prelude.Maybe Prelude.Text)+listAggregatedUtterances_nextToken = Lens.lens (\ListAggregatedUtterances' {nextToken} -> nextToken) (\s@ListAggregatedUtterances' {} a -> s {nextToken = a} :: ListAggregatedUtterances)++-- | Specifies sorting parameters for the list of utterances. You can sort by+-- the hit count, the missed count, or the number of distinct sessions the+-- utterance appeared in.+listAggregatedUtterances_sortBy :: Lens.Lens' ListAggregatedUtterances (Prelude.Maybe AggregatedUtterancesSortBy)+listAggregatedUtterances_sortBy = Lens.lens (\ListAggregatedUtterances' {sortBy} -> sortBy) (\s@ListAggregatedUtterances' {} a -> s {sortBy = a} :: ListAggregatedUtterances)++-- | The unique identifier of the bot associated with this request.+listAggregatedUtterances_botId :: Lens.Lens' ListAggregatedUtterances Prelude.Text+listAggregatedUtterances_botId = Lens.lens (\ListAggregatedUtterances' {botId} -> botId) (\s@ListAggregatedUtterances' {} a -> s {botId = a} :: ListAggregatedUtterances)++-- | The identifier of the language and locale where the utterances were+-- collected. For more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+listAggregatedUtterances_localeId :: Lens.Lens' ListAggregatedUtterances Prelude.Text+listAggregatedUtterances_localeId = Lens.lens (\ListAggregatedUtterances' {localeId} -> localeId) (\s@ListAggregatedUtterances' {} a -> s {localeId = a} :: ListAggregatedUtterances)++-- | The time window for aggregating the utterance information. You can+-- specify a time between one hour and two weeks.+listAggregatedUtterances_aggregationDuration :: Lens.Lens' ListAggregatedUtterances UtteranceAggregationDuration+listAggregatedUtterances_aggregationDuration = Lens.lens (\ListAggregatedUtterances' {aggregationDuration} -> aggregationDuration) (\s@ListAggregatedUtterances' {} a -> s {aggregationDuration = a} :: ListAggregatedUtterances)++instance Core.AWSRequest ListAggregatedUtterances where+  type+    AWSResponse ListAggregatedUtterances =+      ListAggregatedUtterancesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAggregatedUtterancesResponse'+            Prelude.<$> ( x+                            Data..?> "aggregatedUtterancesSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "aggregationDuration")+            Prelude.<*> (x Data..?> "aggregationLastRefreshedDateTime")+            Prelude.<*> (x Data..?> "aggregationWindowEndTime")+            Prelude.<*> (x Data..?> "aggregationWindowStartTime")+            Prelude.<*> (x Data..?> "botAliasId")+            Prelude.<*> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListAggregatedUtterances where+  hashWithSalt _salt ListAggregatedUtterances' {..} =+    _salt+      `Prelude.hashWithSalt` botAliasId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sortBy+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` aggregationDuration++instance Prelude.NFData ListAggregatedUtterances where+  rnf ListAggregatedUtterances' {..} =+    Prelude.rnf botAliasId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortBy+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf aggregationDuration++instance Data.ToHeaders ListAggregatedUtterances where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListAggregatedUtterances where+  toJSON ListAggregatedUtterances' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("botAliasId" Data..=) Prelude.<$> botAliasId,+            ("botVersion" Data..=) Prelude.<$> botVersion,+            ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("sortBy" Data..=) Prelude.<$> sortBy,+            Prelude.Just ("localeId" Data..= localeId),+            Prelude.Just+              ("aggregationDuration" Data..= aggregationDuration)+          ]+      )++instance Data.ToPath ListAggregatedUtterances where+  toPath ListAggregatedUtterances' {..} =+    Prelude.mconcat+      ["/bots/", Data.toBS botId, "/aggregatedutterances/"]++instance Data.ToQuery ListAggregatedUtterances where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAggregatedUtterancesResponse' smart constructor.+data ListAggregatedUtterancesResponse = ListAggregatedUtterancesResponse'+  { -- | Summaries of the aggregated utterance data. Each response contains+    -- information about the number of times that the utterance was seen during+    -- the time period, whether it was detected or missed, and when it was seen+    -- during the time period.+    aggregatedUtterancesSummaries :: Prelude.Maybe [AggregatedUtterancesSummary],+    -- | The time period used to aggregate the utterance data.+    aggregationDuration :: Prelude.Maybe UtteranceAggregationDuration,+    -- | The last date and time that the aggregated data was collected. The time+    -- period depends on the length of the aggregation window.+    --+    -- -   __Hours__ - for 1 hour time window, every half hour; otherwise every+    --     hour.+    --+    -- -   __Days__ - every 6 hours+    --+    -- -   __Weeks__ - for a one week time window, every 12 hours; otherwise,+    --     every day+    aggregationLastRefreshedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The date and time that the aggregation window ends. Only data collected+    -- between the start time and the end time are returned in the results.+    aggregationWindowEndTime :: Prelude.Maybe Data.POSIX,+    -- | The date and time that the aggregation window begins. Only data+    -- collected after this time is returned in the results.+    aggregationWindowStartTime :: Prelude.Maybe Data.POSIX,+    -- | The identifier of the bot alias that contains the utterances. If you+    -- specified the bot version, the bot alias ID isn\'t returned.+    botAliasId :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the bot that contains the utterances.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the bot version that contains the utterances. If you+    -- specified the bot alias, the bot version isn\'t returned.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the language and locale that the utterances are in.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | A token that indicates whether there are more results to return in a+    -- response to the @ListAggregatedUtterances@ operation. If the @nextToken@+    -- field is present, you send the contents as the @nextToken@ parameter of+    -- a @ListAggregatedUtterances@ operation request to get the next page of+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAggregatedUtterancesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'aggregatedUtterancesSummaries', 'listAggregatedUtterancesResponse_aggregatedUtterancesSummaries' - Summaries of the aggregated utterance data. Each response contains+-- information about the number of times that the utterance was seen during+-- the time period, whether it was detected or missed, and when it was seen+-- during the time period.+--+-- 'aggregationDuration', 'listAggregatedUtterancesResponse_aggregationDuration' - The time period used to aggregate the utterance data.+--+-- 'aggregationLastRefreshedDateTime', 'listAggregatedUtterancesResponse_aggregationLastRefreshedDateTime' - The last date and time that the aggregated data was collected. The time+-- period depends on the length of the aggregation window.+--+-- -   __Hours__ - for 1 hour time window, every half hour; otherwise every+--     hour.+--+-- -   __Days__ - every 6 hours+--+-- -   __Weeks__ - for a one week time window, every 12 hours; otherwise,+--     every day+--+-- 'aggregationWindowEndTime', 'listAggregatedUtterancesResponse_aggregationWindowEndTime' - The date and time that the aggregation window ends. Only data collected+-- between the start time and the end time are returned in the results.+--+-- 'aggregationWindowStartTime', 'listAggregatedUtterancesResponse_aggregationWindowStartTime' - The date and time that the aggregation window begins. Only data+-- collected after this time is returned in the results.+--+-- 'botAliasId', 'listAggregatedUtterancesResponse_botAliasId' - The identifier of the bot alias that contains the utterances. If you+-- specified the bot version, the bot alias ID isn\'t returned.+--+-- 'botId', 'listAggregatedUtterancesResponse_botId' - The identifier of the bot that contains the utterances.+--+-- 'botVersion', 'listAggregatedUtterancesResponse_botVersion' - The identifier of the bot version that contains the utterances. If you+-- specified the bot alias, the bot version isn\'t returned.+--+-- 'localeId', 'listAggregatedUtterancesResponse_localeId' - The identifier of the language and locale that the utterances are in.+--+-- 'nextToken', 'listAggregatedUtterancesResponse_nextToken' - A token that indicates whether there are more results to return in a+-- response to the @ListAggregatedUtterances@ operation. If the @nextToken@+-- field is present, you send the contents as the @nextToken@ parameter of+-- a @ListAggregatedUtterances@ operation request to get the next page of+-- results.+--+-- 'httpStatus', 'listAggregatedUtterancesResponse_httpStatus' - The response's http status code.+newListAggregatedUtterancesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAggregatedUtterancesResponse+newListAggregatedUtterancesResponse pHttpStatus_ =+  ListAggregatedUtterancesResponse'+    { aggregatedUtterancesSummaries =+        Prelude.Nothing,+      aggregationDuration = Prelude.Nothing,+      aggregationLastRefreshedDateTime =+        Prelude.Nothing,+      aggregationWindowEndTime =+        Prelude.Nothing,+      aggregationWindowStartTime =+        Prelude.Nothing,+      botAliasId = Prelude.Nothing,+      botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      localeId = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Summaries of the aggregated utterance data. Each response contains+-- information about the number of times that the utterance was seen during+-- the time period, whether it was detected or missed, and when it was seen+-- during the time period.+listAggregatedUtterancesResponse_aggregatedUtterancesSummaries :: Lens.Lens' ListAggregatedUtterancesResponse (Prelude.Maybe [AggregatedUtterancesSummary])+listAggregatedUtterancesResponse_aggregatedUtterancesSummaries = Lens.lens (\ListAggregatedUtterancesResponse' {aggregatedUtterancesSummaries} -> aggregatedUtterancesSummaries) (\s@ListAggregatedUtterancesResponse' {} a -> s {aggregatedUtterancesSummaries = a} :: ListAggregatedUtterancesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The time period used to aggregate the utterance data.+listAggregatedUtterancesResponse_aggregationDuration :: Lens.Lens' ListAggregatedUtterancesResponse (Prelude.Maybe UtteranceAggregationDuration)+listAggregatedUtterancesResponse_aggregationDuration = Lens.lens (\ListAggregatedUtterancesResponse' {aggregationDuration} -> aggregationDuration) (\s@ListAggregatedUtterancesResponse' {} a -> s {aggregationDuration = a} :: ListAggregatedUtterancesResponse)++-- | The last date and time that the aggregated data was collected. The time+-- period depends on the length of the aggregation window.+--+-- -   __Hours__ - for 1 hour time window, every half hour; otherwise every+--     hour.+--+-- -   __Days__ - every 6 hours+--+-- -   __Weeks__ - for a one week time window, every 12 hours; otherwise,+--     every day+listAggregatedUtterancesResponse_aggregationLastRefreshedDateTime :: Lens.Lens' ListAggregatedUtterancesResponse (Prelude.Maybe Prelude.UTCTime)+listAggregatedUtterancesResponse_aggregationLastRefreshedDateTime = Lens.lens (\ListAggregatedUtterancesResponse' {aggregationLastRefreshedDateTime} -> aggregationLastRefreshedDateTime) (\s@ListAggregatedUtterancesResponse' {} a -> s {aggregationLastRefreshedDateTime = a} :: ListAggregatedUtterancesResponse) Prelude.. Lens.mapping Data._Time++-- | The date and time that the aggregation window ends. Only data collected+-- between the start time and the end time are returned in the results.+listAggregatedUtterancesResponse_aggregationWindowEndTime :: Lens.Lens' ListAggregatedUtterancesResponse (Prelude.Maybe Prelude.UTCTime)+listAggregatedUtterancesResponse_aggregationWindowEndTime = Lens.lens (\ListAggregatedUtterancesResponse' {aggregationWindowEndTime} -> aggregationWindowEndTime) (\s@ListAggregatedUtterancesResponse' {} a -> s {aggregationWindowEndTime = a} :: ListAggregatedUtterancesResponse) Prelude.. Lens.mapping Data._Time++-- | The date and time that the aggregation window begins. Only data+-- collected after this time is returned in the results.+listAggregatedUtterancesResponse_aggregationWindowStartTime :: Lens.Lens' ListAggregatedUtterancesResponse (Prelude.Maybe Prelude.UTCTime)+listAggregatedUtterancesResponse_aggregationWindowStartTime = Lens.lens (\ListAggregatedUtterancesResponse' {aggregationWindowStartTime} -> aggregationWindowStartTime) (\s@ListAggregatedUtterancesResponse' {} a -> s {aggregationWindowStartTime = a} :: ListAggregatedUtterancesResponse) Prelude.. Lens.mapping Data._Time++-- | The identifier of the bot alias that contains the utterances. If you+-- specified the bot version, the bot alias ID isn\'t returned.+listAggregatedUtterancesResponse_botAliasId :: Lens.Lens' ListAggregatedUtterancesResponse (Prelude.Maybe Prelude.Text)+listAggregatedUtterancesResponse_botAliasId = Lens.lens (\ListAggregatedUtterancesResponse' {botAliasId} -> botAliasId) (\s@ListAggregatedUtterancesResponse' {} a -> s {botAliasId = a} :: ListAggregatedUtterancesResponse)++-- | The identifier of the bot that contains the utterances.+listAggregatedUtterancesResponse_botId :: Lens.Lens' ListAggregatedUtterancesResponse (Prelude.Maybe Prelude.Text)+listAggregatedUtterancesResponse_botId = Lens.lens (\ListAggregatedUtterancesResponse' {botId} -> botId) (\s@ListAggregatedUtterancesResponse' {} a -> s {botId = a} :: ListAggregatedUtterancesResponse)++-- | The identifier of the bot version that contains the utterances. If you+-- specified the bot alias, the bot version isn\'t returned.+listAggregatedUtterancesResponse_botVersion :: Lens.Lens' ListAggregatedUtterancesResponse (Prelude.Maybe Prelude.Text)+listAggregatedUtterancesResponse_botVersion = Lens.lens (\ListAggregatedUtterancesResponse' {botVersion} -> botVersion) (\s@ListAggregatedUtterancesResponse' {} a -> s {botVersion = a} :: ListAggregatedUtterancesResponse)++-- | The identifier of the language and locale that the utterances are in.+listAggregatedUtterancesResponse_localeId :: Lens.Lens' ListAggregatedUtterancesResponse (Prelude.Maybe Prelude.Text)+listAggregatedUtterancesResponse_localeId = Lens.lens (\ListAggregatedUtterancesResponse' {localeId} -> localeId) (\s@ListAggregatedUtterancesResponse' {} a -> s {localeId = a} :: ListAggregatedUtterancesResponse)++-- | A token that indicates whether there are more results to return in a+-- response to the @ListAggregatedUtterances@ operation. If the @nextToken@+-- field is present, you send the contents as the @nextToken@ parameter of+-- a @ListAggregatedUtterances@ operation request to get the next page of+-- results.+listAggregatedUtterancesResponse_nextToken :: Lens.Lens' ListAggregatedUtterancesResponse (Prelude.Maybe Prelude.Text)+listAggregatedUtterancesResponse_nextToken = Lens.lens (\ListAggregatedUtterancesResponse' {nextToken} -> nextToken) (\s@ListAggregatedUtterancesResponse' {} a -> s {nextToken = a} :: ListAggregatedUtterancesResponse)++-- | The response's http status code.+listAggregatedUtterancesResponse_httpStatus :: Lens.Lens' ListAggregatedUtterancesResponse Prelude.Int+listAggregatedUtterancesResponse_httpStatus = Lens.lens (\ListAggregatedUtterancesResponse' {httpStatus} -> httpStatus) (\s@ListAggregatedUtterancesResponse' {} a -> s {httpStatus = a} :: ListAggregatedUtterancesResponse)++instance+  Prelude.NFData+    ListAggregatedUtterancesResponse+  where+  rnf ListAggregatedUtterancesResponse' {..} =+    Prelude.rnf aggregatedUtterancesSummaries+      `Prelude.seq` Prelude.rnf aggregationDuration+      `Prelude.seq` Prelude.rnf aggregationLastRefreshedDateTime+      `Prelude.seq` Prelude.rnf aggregationWindowEndTime+      `Prelude.seq` Prelude.rnf aggregationWindowStartTime+      `Prelude.seq` Prelude.rnf botAliasId+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/ListBotAliases.hs view
@@ -0,0 +1,259 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.ListBotAliases+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a list of aliases for the specified bot.+module Amazonka.LexV2Models.ListBotAliases+  ( -- * Creating a Request+    ListBotAliases (..),+    newListBotAliases,++    -- * Request Lenses+    listBotAliases_maxResults,+    listBotAliases_nextToken,+    listBotAliases_botId,++    -- * Destructuring the Response+    ListBotAliasesResponse (..),+    newListBotAliasesResponse,++    -- * Response Lenses+    listBotAliasesResponse_botAliasSummaries,+    listBotAliasesResponse_botId,+    listBotAliasesResponse_nextToken,+    listBotAliasesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListBotAliases' smart constructor.+data ListBotAliases = ListBotAliases'+  { -- | The maximum number of aliases to return in each page of results. If+    -- there are fewer results than the max page size, only the actual number+    -- of results are returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the response from the @ListBotAliases@ operation contains more+    -- results than specified in the @maxResults@ parameter, a token is+    -- returned in the response. Use that token in the @nextToken@ parameter to+    -- return the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the bot to list aliases for.+    botId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBotAliases' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listBotAliases_maxResults' - The maximum number of aliases to return in each page of results. If+-- there are fewer results than the max page size, only the actual number+-- of results are returned.+--+-- 'nextToken', 'listBotAliases_nextToken' - If the response from the @ListBotAliases@ operation contains more+-- results than specified in the @maxResults@ parameter, a token is+-- returned in the response. Use that token in the @nextToken@ parameter to+-- return the next page of results.+--+-- 'botId', 'listBotAliases_botId' - The identifier of the bot to list aliases for.+newListBotAliases ::+  -- | 'botId'+  Prelude.Text ->+  ListBotAliases+newListBotAliases pBotId_ =+  ListBotAliases'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      botId = pBotId_+    }++-- | The maximum number of aliases to return in each page of results. If+-- there are fewer results than the max page size, only the actual number+-- of results are returned.+listBotAliases_maxResults :: Lens.Lens' ListBotAliases (Prelude.Maybe Prelude.Natural)+listBotAliases_maxResults = Lens.lens (\ListBotAliases' {maxResults} -> maxResults) (\s@ListBotAliases' {} a -> s {maxResults = a} :: ListBotAliases)++-- | If the response from the @ListBotAliases@ operation contains more+-- results than specified in the @maxResults@ parameter, a token is+-- returned in the response. Use that token in the @nextToken@ parameter to+-- return the next page of results.+listBotAliases_nextToken :: Lens.Lens' ListBotAliases (Prelude.Maybe Prelude.Text)+listBotAliases_nextToken = Lens.lens (\ListBotAliases' {nextToken} -> nextToken) (\s@ListBotAliases' {} a -> s {nextToken = a} :: ListBotAliases)++-- | The identifier of the bot to list aliases for.+listBotAliases_botId :: Lens.Lens' ListBotAliases Prelude.Text+listBotAliases_botId = Lens.lens (\ListBotAliases' {botId} -> botId) (\s@ListBotAliases' {} a -> s {botId = a} :: ListBotAliases)++instance Core.AWSRequest ListBotAliases where+  type+    AWSResponse ListBotAliases =+      ListBotAliasesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListBotAliasesResponse'+            Prelude.<$> ( x+                            Data..?> "botAliasSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListBotAliases where+  hashWithSalt _salt ListBotAliases' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` botId++instance Prelude.NFData ListBotAliases where+  rnf ListBotAliases' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf botId++instance Data.ToHeaders ListBotAliases where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListBotAliases where+  toJSON ListBotAliases' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListBotAliases where+  toPath ListBotAliases' {..} =+    Prelude.mconcat+      ["/bots/", Data.toBS botId, "/botaliases/"]++instance Data.ToQuery ListBotAliases where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListBotAliasesResponse' smart constructor.+data ListBotAliasesResponse = ListBotAliasesResponse'+  { -- | Summary information for the bot aliases that meet the filter criteria+    -- specified in the request. The length of the list is specified in the+    -- @maxResults@ parameter of the request. If there are more aliases+    -- available, the @nextToken@ field contains a token to get the next page+    -- of results.+    botAliasSummaries :: Prelude.Maybe [BotAliasSummary],+    -- | The identifier of the bot associated with the aliases.+    botId :: Prelude.Maybe Prelude.Text,+    -- | A token that indicates whether there are more results to return in a+    -- response to the @ListBotAliases@ operation. If the @nextToken@ field is+    -- present, you send the contents as the @nextToken@ parameter of a+    -- @ListBotAliases@ operation request to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBotAliasesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botAliasSummaries', 'listBotAliasesResponse_botAliasSummaries' - Summary information for the bot aliases that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- @maxResults@ parameter of the request. If there are more aliases+-- available, the @nextToken@ field contains a token to get the next page+-- of results.+--+-- 'botId', 'listBotAliasesResponse_botId' - The identifier of the bot associated with the aliases.+--+-- 'nextToken', 'listBotAliasesResponse_nextToken' - A token that indicates whether there are more results to return in a+-- response to the @ListBotAliases@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListBotAliases@ operation request to get the next page of results.+--+-- 'httpStatus', 'listBotAliasesResponse_httpStatus' - The response's http status code.+newListBotAliasesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListBotAliasesResponse+newListBotAliasesResponse pHttpStatus_ =+  ListBotAliasesResponse'+    { botAliasSummaries =+        Prelude.Nothing,+      botId = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Summary information for the bot aliases that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- @maxResults@ parameter of the request. If there are more aliases+-- available, the @nextToken@ field contains a token to get the next page+-- of results.+listBotAliasesResponse_botAliasSummaries :: Lens.Lens' ListBotAliasesResponse (Prelude.Maybe [BotAliasSummary])+listBotAliasesResponse_botAliasSummaries = Lens.lens (\ListBotAliasesResponse' {botAliasSummaries} -> botAliasSummaries) (\s@ListBotAliasesResponse' {} a -> s {botAliasSummaries = a} :: ListBotAliasesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The identifier of the bot associated with the aliases.+listBotAliasesResponse_botId :: Lens.Lens' ListBotAliasesResponse (Prelude.Maybe Prelude.Text)+listBotAliasesResponse_botId = Lens.lens (\ListBotAliasesResponse' {botId} -> botId) (\s@ListBotAliasesResponse' {} a -> s {botId = a} :: ListBotAliasesResponse)++-- | A token that indicates whether there are more results to return in a+-- response to the @ListBotAliases@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListBotAliases@ operation request to get the next page of results.+listBotAliasesResponse_nextToken :: Lens.Lens' ListBotAliasesResponse (Prelude.Maybe Prelude.Text)+listBotAliasesResponse_nextToken = Lens.lens (\ListBotAliasesResponse' {nextToken} -> nextToken) (\s@ListBotAliasesResponse' {} a -> s {nextToken = a} :: ListBotAliasesResponse)++-- | The response's http status code.+listBotAliasesResponse_httpStatus :: Lens.Lens' ListBotAliasesResponse Prelude.Int+listBotAliasesResponse_httpStatus = Lens.lens (\ListBotAliasesResponse' {httpStatus} -> httpStatus) (\s@ListBotAliasesResponse' {} a -> s {httpStatus = a} :: ListBotAliasesResponse)++instance Prelude.NFData ListBotAliasesResponse where+  rnf ListBotAliasesResponse' {..} =+    Prelude.rnf botAliasSummaries+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/ListBotLocales.hs view
@@ -0,0 +1,324 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.ListBotLocales+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a list of locales for the specified bot.+module Amazonka.LexV2Models.ListBotLocales+  ( -- * Creating a Request+    ListBotLocales (..),+    newListBotLocales,++    -- * Request Lenses+    listBotLocales_filters,+    listBotLocales_maxResults,+    listBotLocales_nextToken,+    listBotLocales_sortBy,+    listBotLocales_botId,+    listBotLocales_botVersion,++    -- * Destructuring the Response+    ListBotLocalesResponse (..),+    newListBotLocalesResponse,++    -- * Response Lenses+    listBotLocalesResponse_botId,+    listBotLocalesResponse_botLocaleSummaries,+    listBotLocalesResponse_botVersion,+    listBotLocalesResponse_nextToken,+    listBotLocalesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListBotLocales' smart constructor.+data ListBotLocales = ListBotLocales'+  { -- | Provides the specification for a filter used to limit the response to+    -- only those locales that match the filter specification. You can only+    -- specify one filter and one value to filter on.+    filters :: Prelude.Maybe (Prelude.NonEmpty BotLocaleFilter),+    -- | The maximum number of aliases to return in each page of results. If+    -- there are fewer results than the max page size, only the actual number+    -- of results are returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the response from the @ListBotLocales@ operation contains more+    -- results than specified in the @maxResults@ parameter, a token is+    -- returned in the response. Use that token as the @nextToken@ parameter to+    -- return the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Specifies sorting parameters for the list of locales. You can sort by+    -- locale name in ascending or descending order.+    sortBy :: Prelude.Maybe BotLocaleSortBy,+    -- | The identifier of the bot to list locales for.+    botId :: Prelude.Text,+    -- | The version of the bot to list locales for.+    botVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBotLocales' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listBotLocales_filters' - Provides the specification for a filter used to limit the response to+-- only those locales that match the filter specification. You can only+-- specify one filter and one value to filter on.+--+-- 'maxResults', 'listBotLocales_maxResults' - The maximum number of aliases to return in each page of results. If+-- there are fewer results than the max page size, only the actual number+-- of results are returned.+--+-- 'nextToken', 'listBotLocales_nextToken' - If the response from the @ListBotLocales@ operation contains more+-- results than specified in the @maxResults@ parameter, a token is+-- returned in the response. Use that token as the @nextToken@ parameter to+-- return the next page of results.+--+-- 'sortBy', 'listBotLocales_sortBy' - Specifies sorting parameters for the list of locales. You can sort by+-- locale name in ascending or descending order.+--+-- 'botId', 'listBotLocales_botId' - The identifier of the bot to list locales for.+--+-- 'botVersion', 'listBotLocales_botVersion' - The version of the bot to list locales for.+newListBotLocales ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  ListBotLocales+newListBotLocales pBotId_ pBotVersion_ =+  ListBotLocales'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sortBy = Prelude.Nothing,+      botId = pBotId_,+      botVersion = pBotVersion_+    }++-- | Provides the specification for a filter used to limit the response to+-- only those locales that match the filter specification. You can only+-- specify one filter and one value to filter on.+listBotLocales_filters :: Lens.Lens' ListBotLocales (Prelude.Maybe (Prelude.NonEmpty BotLocaleFilter))+listBotLocales_filters = Lens.lens (\ListBotLocales' {filters} -> filters) (\s@ListBotLocales' {} a -> s {filters = a} :: ListBotLocales) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of aliases to return in each page of results. If+-- there are fewer results than the max page size, only the actual number+-- of results are returned.+listBotLocales_maxResults :: Lens.Lens' ListBotLocales (Prelude.Maybe Prelude.Natural)+listBotLocales_maxResults = Lens.lens (\ListBotLocales' {maxResults} -> maxResults) (\s@ListBotLocales' {} a -> s {maxResults = a} :: ListBotLocales)++-- | If the response from the @ListBotLocales@ operation contains more+-- results than specified in the @maxResults@ parameter, a token is+-- returned in the response. Use that token as the @nextToken@ parameter to+-- return the next page of results.+listBotLocales_nextToken :: Lens.Lens' ListBotLocales (Prelude.Maybe Prelude.Text)+listBotLocales_nextToken = Lens.lens (\ListBotLocales' {nextToken} -> nextToken) (\s@ListBotLocales' {} a -> s {nextToken = a} :: ListBotLocales)++-- | Specifies sorting parameters for the list of locales. You can sort by+-- locale name in ascending or descending order.+listBotLocales_sortBy :: Lens.Lens' ListBotLocales (Prelude.Maybe BotLocaleSortBy)+listBotLocales_sortBy = Lens.lens (\ListBotLocales' {sortBy} -> sortBy) (\s@ListBotLocales' {} a -> s {sortBy = a} :: ListBotLocales)++-- | The identifier of the bot to list locales for.+listBotLocales_botId :: Lens.Lens' ListBotLocales Prelude.Text+listBotLocales_botId = Lens.lens (\ListBotLocales' {botId} -> botId) (\s@ListBotLocales' {} a -> s {botId = a} :: ListBotLocales)++-- | The version of the bot to list locales for.+listBotLocales_botVersion :: Lens.Lens' ListBotLocales Prelude.Text+listBotLocales_botVersion = Lens.lens (\ListBotLocales' {botVersion} -> botVersion) (\s@ListBotLocales' {} a -> s {botVersion = a} :: ListBotLocales)++instance Core.AWSRequest ListBotLocales where+  type+    AWSResponse ListBotLocales =+      ListBotLocalesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListBotLocalesResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> ( x+                            Data..?> "botLocaleSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListBotLocales where+  hashWithSalt _salt ListBotLocales' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sortBy+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion++instance Prelude.NFData ListBotLocales where+  rnf ListBotLocales' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortBy+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion++instance Data.ToHeaders ListBotLocales where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListBotLocales where+  toJSON ListBotLocales' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("sortBy" Data..=) Prelude.<$> sortBy+          ]+      )++instance Data.ToPath ListBotLocales where+  toPath ListBotLocales' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/"+      ]++instance Data.ToQuery ListBotLocales where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListBotLocalesResponse' smart constructor.+data ListBotLocalesResponse = ListBotLocalesResponse'+  { -- | The identifier of the bot to list locales for.+    botId :: Prelude.Maybe Prelude.Text,+    -- | Summary information for the locales that meet the filter criteria+    -- specified in the request. The length of the list is specified in the+    -- @maxResults@ parameter of the request. If there are more locales+    -- available, the @nextToken@ field contains a token to get the next page+    -- of results.+    botLocaleSummaries :: Prelude.Maybe [BotLocaleSummary],+    -- | The version of the bot.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | A token that indicates whether there are more results to return in a+    -- response to the @ListBotLocales@ operation. If the @nextToken@ field is+    -- present, you send the contents as the @nextToken@ parameter of a+    -- @ListBotLocales@ operation request to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBotLocalesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'listBotLocalesResponse_botId' - The identifier of the bot to list locales for.+--+-- 'botLocaleSummaries', 'listBotLocalesResponse_botLocaleSummaries' - Summary information for the locales that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- @maxResults@ parameter of the request. If there are more locales+-- available, the @nextToken@ field contains a token to get the next page+-- of results.+--+-- 'botVersion', 'listBotLocalesResponse_botVersion' - The version of the bot.+--+-- 'nextToken', 'listBotLocalesResponse_nextToken' - A token that indicates whether there are more results to return in a+-- response to the @ListBotLocales@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListBotLocales@ operation request to get the next page of results.+--+-- 'httpStatus', 'listBotLocalesResponse_httpStatus' - The response's http status code.+newListBotLocalesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListBotLocalesResponse+newListBotLocalesResponse pHttpStatus_ =+  ListBotLocalesResponse'+    { botId = Prelude.Nothing,+      botLocaleSummaries = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot to list locales for.+listBotLocalesResponse_botId :: Lens.Lens' ListBotLocalesResponse (Prelude.Maybe Prelude.Text)+listBotLocalesResponse_botId = Lens.lens (\ListBotLocalesResponse' {botId} -> botId) (\s@ListBotLocalesResponse' {} a -> s {botId = a} :: ListBotLocalesResponse)++-- | Summary information for the locales that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- @maxResults@ parameter of the request. If there are more locales+-- available, the @nextToken@ field contains a token to get the next page+-- of results.+listBotLocalesResponse_botLocaleSummaries :: Lens.Lens' ListBotLocalesResponse (Prelude.Maybe [BotLocaleSummary])+listBotLocalesResponse_botLocaleSummaries = Lens.lens (\ListBotLocalesResponse' {botLocaleSummaries} -> botLocaleSummaries) (\s@ListBotLocalesResponse' {} a -> s {botLocaleSummaries = a} :: ListBotLocalesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The version of the bot.+listBotLocalesResponse_botVersion :: Lens.Lens' ListBotLocalesResponse (Prelude.Maybe Prelude.Text)+listBotLocalesResponse_botVersion = Lens.lens (\ListBotLocalesResponse' {botVersion} -> botVersion) (\s@ListBotLocalesResponse' {} a -> s {botVersion = a} :: ListBotLocalesResponse)++-- | A token that indicates whether there are more results to return in a+-- response to the @ListBotLocales@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListBotLocales@ operation request to get the next page of results.+listBotLocalesResponse_nextToken :: Lens.Lens' ListBotLocalesResponse (Prelude.Maybe Prelude.Text)+listBotLocalesResponse_nextToken = Lens.lens (\ListBotLocalesResponse' {nextToken} -> nextToken) (\s@ListBotLocalesResponse' {} a -> s {nextToken = a} :: ListBotLocalesResponse)++-- | The response's http status code.+listBotLocalesResponse_httpStatus :: Lens.Lens' ListBotLocalesResponse Prelude.Int+listBotLocalesResponse_httpStatus = Lens.lens (\ListBotLocalesResponse' {httpStatus} -> httpStatus) (\s@ListBotLocalesResponse' {} a -> s {httpStatus = a} :: ListBotLocalesResponse)++instance Prelude.NFData ListBotLocalesResponse where+  rnf ListBotLocalesResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botLocaleSummaries+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/ListBotRecommendations.hs view
@@ -0,0 +1,341 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.ListBotRecommendations+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get a list of bot recommendations that meet the specified criteria.+module Amazonka.LexV2Models.ListBotRecommendations+  ( -- * Creating a Request+    ListBotRecommendations (..),+    newListBotRecommendations,++    -- * Request Lenses+    listBotRecommendations_maxResults,+    listBotRecommendations_nextToken,+    listBotRecommendations_botId,+    listBotRecommendations_botVersion,+    listBotRecommendations_localeId,++    -- * Destructuring the Response+    ListBotRecommendationsResponse (..),+    newListBotRecommendationsResponse,++    -- * Response Lenses+    listBotRecommendationsResponse_botId,+    listBotRecommendationsResponse_botRecommendationSummaries,+    listBotRecommendationsResponse_botVersion,+    listBotRecommendationsResponse_localeId,+    listBotRecommendationsResponse_nextToken,+    listBotRecommendationsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListBotRecommendations' smart constructor.+data ListBotRecommendations = ListBotRecommendations'+  { -- | The maximum number of bot recommendations to return in each page of+    -- results. If there are fewer results than the max page size, only the+    -- actual number of results are returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the response from the ListBotRecommendation operation contains more+    -- results than specified in the maxResults parameter, a token is returned+    -- in the response. Use that token in the nextToken parameter to return the+    -- next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the bot that contains the bot recommendation+    -- list.+    botId :: Prelude.Text,+    -- | The version of the bot that contains the bot recommendation list.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale of the bot recommendation+    -- list.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBotRecommendations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listBotRecommendations_maxResults' - The maximum number of bot recommendations to return in each page of+-- results. If there are fewer results than the max page size, only the+-- actual number of results are returned.+--+-- 'nextToken', 'listBotRecommendations_nextToken' - If the response from the ListBotRecommendation operation contains more+-- results than specified in the maxResults parameter, a token is returned+-- in the response. Use that token in the nextToken parameter to return the+-- next page of results.+--+-- 'botId', 'listBotRecommendations_botId' - The unique identifier of the bot that contains the bot recommendation+-- list.+--+-- 'botVersion', 'listBotRecommendations_botVersion' - The version of the bot that contains the bot recommendation list.+--+-- 'localeId', 'listBotRecommendations_localeId' - The identifier of the language and locale of the bot recommendation+-- list.+newListBotRecommendations ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  ListBotRecommendations+newListBotRecommendations+  pBotId_+  pBotVersion_+  pLocaleId_ =+    ListBotRecommendations'+      { maxResults =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_+      }++-- | The maximum number of bot recommendations to return in each page of+-- results. If there are fewer results than the max page size, only the+-- actual number of results are returned.+listBotRecommendations_maxResults :: Lens.Lens' ListBotRecommendations (Prelude.Maybe Prelude.Natural)+listBotRecommendations_maxResults = Lens.lens (\ListBotRecommendations' {maxResults} -> maxResults) (\s@ListBotRecommendations' {} a -> s {maxResults = a} :: ListBotRecommendations)++-- | If the response from the ListBotRecommendation operation contains more+-- results than specified in the maxResults parameter, a token is returned+-- in the response. Use that token in the nextToken parameter to return the+-- next page of results.+listBotRecommendations_nextToken :: Lens.Lens' ListBotRecommendations (Prelude.Maybe Prelude.Text)+listBotRecommendations_nextToken = Lens.lens (\ListBotRecommendations' {nextToken} -> nextToken) (\s@ListBotRecommendations' {} a -> s {nextToken = a} :: ListBotRecommendations)++-- | The unique identifier of the bot that contains the bot recommendation+-- list.+listBotRecommendations_botId :: Lens.Lens' ListBotRecommendations Prelude.Text+listBotRecommendations_botId = Lens.lens (\ListBotRecommendations' {botId} -> botId) (\s@ListBotRecommendations' {} a -> s {botId = a} :: ListBotRecommendations)++-- | The version of the bot that contains the bot recommendation list.+listBotRecommendations_botVersion :: Lens.Lens' ListBotRecommendations Prelude.Text+listBotRecommendations_botVersion = Lens.lens (\ListBotRecommendations' {botVersion} -> botVersion) (\s@ListBotRecommendations' {} a -> s {botVersion = a} :: ListBotRecommendations)++-- | The identifier of the language and locale of the bot recommendation+-- list.+listBotRecommendations_localeId :: Lens.Lens' ListBotRecommendations Prelude.Text+listBotRecommendations_localeId = Lens.lens (\ListBotRecommendations' {localeId} -> localeId) (\s@ListBotRecommendations' {} a -> s {localeId = a} :: ListBotRecommendations)++instance Core.AWSRequest ListBotRecommendations where+  type+    AWSResponse ListBotRecommendations =+      ListBotRecommendationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListBotRecommendationsResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> ( x+                            Data..?> "botRecommendationSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListBotRecommendations where+  hashWithSalt _salt ListBotRecommendations' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData ListBotRecommendations where+  rnf ListBotRecommendations' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders ListBotRecommendations where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListBotRecommendations where+  toJSON ListBotRecommendations' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListBotRecommendations where+  toPath ListBotRecommendations' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/botrecommendations/"+      ]++instance Data.ToQuery ListBotRecommendations where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListBotRecommendationsResponse' smart constructor.+data ListBotRecommendationsResponse = ListBotRecommendationsResponse'+  { -- | The unique identifier of the bot that contains the bot recommendation+    -- list.+    botId :: Prelude.Maybe Prelude.Text,+    -- | Summary information for the bot recommendations that meet the filter+    -- specified in this request. The length of the list is specified in the+    -- maxResults parameter of the request. If there are more bot+    -- recommendations available, the nextToken field contains a token to get+    -- the next page of results.+    botRecommendationSummaries :: Prelude.Maybe [BotRecommendationSummary],+    -- | The version of the bot that contains the bot recommendation list.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the language and locale of the bot recommendation+    -- list.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | A token that indicates whether there are more results to return in a+    -- response to the ListBotRecommendations operation. If the nextToken field+    -- is present, you send the contents as the nextToken parameter of a+    -- ListBotRecommendations operation request to get the next page of+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBotRecommendationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'listBotRecommendationsResponse_botId' - The unique identifier of the bot that contains the bot recommendation+-- list.+--+-- 'botRecommendationSummaries', 'listBotRecommendationsResponse_botRecommendationSummaries' - Summary information for the bot recommendations that meet the filter+-- specified in this request. The length of the list is specified in the+-- maxResults parameter of the request. If there are more bot+-- recommendations available, the nextToken field contains a token to get+-- the next page of results.+--+-- 'botVersion', 'listBotRecommendationsResponse_botVersion' - The version of the bot that contains the bot recommendation list.+--+-- 'localeId', 'listBotRecommendationsResponse_localeId' - The identifier of the language and locale of the bot recommendation+-- list.+--+-- 'nextToken', 'listBotRecommendationsResponse_nextToken' - A token that indicates whether there are more results to return in a+-- response to the ListBotRecommendations operation. If the nextToken field+-- is present, you send the contents as the nextToken parameter of a+-- ListBotRecommendations operation request to get the next page of+-- results.+--+-- 'httpStatus', 'listBotRecommendationsResponse_httpStatus' - The response's http status code.+newListBotRecommendationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListBotRecommendationsResponse+newListBotRecommendationsResponse pHttpStatus_ =+  ListBotRecommendationsResponse'+    { botId =+        Prelude.Nothing,+      botRecommendationSummaries =+        Prelude.Nothing,+      botVersion = Prelude.Nothing,+      localeId = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the bot that contains the bot recommendation+-- list.+listBotRecommendationsResponse_botId :: Lens.Lens' ListBotRecommendationsResponse (Prelude.Maybe Prelude.Text)+listBotRecommendationsResponse_botId = Lens.lens (\ListBotRecommendationsResponse' {botId} -> botId) (\s@ListBotRecommendationsResponse' {} a -> s {botId = a} :: ListBotRecommendationsResponse)++-- | Summary information for the bot recommendations that meet the filter+-- specified in this request. The length of the list is specified in the+-- maxResults parameter of the request. If there are more bot+-- recommendations available, the nextToken field contains a token to get+-- the next page of results.+listBotRecommendationsResponse_botRecommendationSummaries :: Lens.Lens' ListBotRecommendationsResponse (Prelude.Maybe [BotRecommendationSummary])+listBotRecommendationsResponse_botRecommendationSummaries = Lens.lens (\ListBotRecommendationsResponse' {botRecommendationSummaries} -> botRecommendationSummaries) (\s@ListBotRecommendationsResponse' {} a -> s {botRecommendationSummaries = a} :: ListBotRecommendationsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The version of the bot that contains the bot recommendation list.+listBotRecommendationsResponse_botVersion :: Lens.Lens' ListBotRecommendationsResponse (Prelude.Maybe Prelude.Text)+listBotRecommendationsResponse_botVersion = Lens.lens (\ListBotRecommendationsResponse' {botVersion} -> botVersion) (\s@ListBotRecommendationsResponse' {} a -> s {botVersion = a} :: ListBotRecommendationsResponse)++-- | The identifier of the language and locale of the bot recommendation+-- list.+listBotRecommendationsResponse_localeId :: Lens.Lens' ListBotRecommendationsResponse (Prelude.Maybe Prelude.Text)+listBotRecommendationsResponse_localeId = Lens.lens (\ListBotRecommendationsResponse' {localeId} -> localeId) (\s@ListBotRecommendationsResponse' {} a -> s {localeId = a} :: ListBotRecommendationsResponse)++-- | A token that indicates whether there are more results to return in a+-- response to the ListBotRecommendations operation. If the nextToken field+-- is present, you send the contents as the nextToken parameter of a+-- ListBotRecommendations operation request to get the next page of+-- results.+listBotRecommendationsResponse_nextToken :: Lens.Lens' ListBotRecommendationsResponse (Prelude.Maybe Prelude.Text)+listBotRecommendationsResponse_nextToken = Lens.lens (\ListBotRecommendationsResponse' {nextToken} -> nextToken) (\s@ListBotRecommendationsResponse' {} a -> s {nextToken = a} :: ListBotRecommendationsResponse)++-- | The response's http status code.+listBotRecommendationsResponse_httpStatus :: Lens.Lens' ListBotRecommendationsResponse Prelude.Int+listBotRecommendationsResponse_httpStatus = Lens.lens (\ListBotRecommendationsResponse' {httpStatus} -> httpStatus) (\s@ListBotRecommendationsResponse' {} a -> s {httpStatus = a} :: ListBotRecommendationsResponse)++instance+  Prelude.NFData+    ListBotRecommendationsResponse+  where+  rnf ListBotRecommendationsResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botRecommendationSummaries+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/ListBotVersions.hs view
@@ -0,0 +1,285 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.ListBotVersions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets information about all of the versions of a bot.+--+-- The @ListBotVersions@ operation returns a summary of each version of a+-- bot. For example, if a bot has three numbered versions, the+-- @ListBotVersions@ operation returns for summaries, one for each numbered+-- version and one for the @DRAFT@ version.+--+-- The @ListBotVersions@ operation always returns at least one version, the+-- @DRAFT@ version.+module Amazonka.LexV2Models.ListBotVersions+  ( -- * Creating a Request+    ListBotVersions (..),+    newListBotVersions,++    -- * Request Lenses+    listBotVersions_maxResults,+    listBotVersions_nextToken,+    listBotVersions_sortBy,+    listBotVersions_botId,++    -- * Destructuring the Response+    ListBotVersionsResponse (..),+    newListBotVersionsResponse,++    -- * Response Lenses+    listBotVersionsResponse_botId,+    listBotVersionsResponse_botVersionSummaries,+    listBotVersionsResponse_nextToken,+    listBotVersionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListBotVersions' smart constructor.+data ListBotVersions = ListBotVersions'+  { -- | The maximum number of versions to return in each page of results. If+    -- there are fewer results than the max page size, only the actual number+    -- of results are returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the response to the @ListBotVersion@ operation contains more results+    -- than specified in the @maxResults@ parameter, a token is returned in the+    -- response. Use that token in the @nextToken@ parameter to return the next+    -- page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Specifies sorting parameters for the list of versions. You can specify+    -- that the list be sorted by version name in either ascending or+    -- descending order.+    sortBy :: Prelude.Maybe BotVersionSortBy,+    -- | The identifier of the bot to list versions for.+    botId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBotVersions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listBotVersions_maxResults' - The maximum number of versions to return in each page of results. If+-- there are fewer results than the max page size, only the actual number+-- of results are returned.+--+-- 'nextToken', 'listBotVersions_nextToken' - If the response to the @ListBotVersion@ operation contains more results+-- than specified in the @maxResults@ parameter, a token is returned in the+-- response. Use that token in the @nextToken@ parameter to return the next+-- page of results.+--+-- 'sortBy', 'listBotVersions_sortBy' - Specifies sorting parameters for the list of versions. You can specify+-- that the list be sorted by version name in either ascending or+-- descending order.+--+-- 'botId', 'listBotVersions_botId' - The identifier of the bot to list versions for.+newListBotVersions ::+  -- | 'botId'+  Prelude.Text ->+  ListBotVersions+newListBotVersions pBotId_ =+  ListBotVersions'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sortBy = Prelude.Nothing,+      botId = pBotId_+    }++-- | The maximum number of versions to return in each page of results. If+-- there are fewer results than the max page size, only the actual number+-- of results are returned.+listBotVersions_maxResults :: Lens.Lens' ListBotVersions (Prelude.Maybe Prelude.Natural)+listBotVersions_maxResults = Lens.lens (\ListBotVersions' {maxResults} -> maxResults) (\s@ListBotVersions' {} a -> s {maxResults = a} :: ListBotVersions)++-- | If the response to the @ListBotVersion@ operation contains more results+-- than specified in the @maxResults@ parameter, a token is returned in the+-- response. Use that token in the @nextToken@ parameter to return the next+-- page of results.+listBotVersions_nextToken :: Lens.Lens' ListBotVersions (Prelude.Maybe Prelude.Text)+listBotVersions_nextToken = Lens.lens (\ListBotVersions' {nextToken} -> nextToken) (\s@ListBotVersions' {} a -> s {nextToken = a} :: ListBotVersions)++-- | Specifies sorting parameters for the list of versions. You can specify+-- that the list be sorted by version name in either ascending or+-- descending order.+listBotVersions_sortBy :: Lens.Lens' ListBotVersions (Prelude.Maybe BotVersionSortBy)+listBotVersions_sortBy = Lens.lens (\ListBotVersions' {sortBy} -> sortBy) (\s@ListBotVersions' {} a -> s {sortBy = a} :: ListBotVersions)++-- | The identifier of the bot to list versions for.+listBotVersions_botId :: Lens.Lens' ListBotVersions Prelude.Text+listBotVersions_botId = Lens.lens (\ListBotVersions' {botId} -> botId) (\s@ListBotVersions' {} a -> s {botId = a} :: ListBotVersions)++instance Core.AWSRequest ListBotVersions where+  type+    AWSResponse ListBotVersions =+      ListBotVersionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListBotVersionsResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> ( x+                            Data..?> "botVersionSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListBotVersions where+  hashWithSalt _salt ListBotVersions' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sortBy+      `Prelude.hashWithSalt` botId++instance Prelude.NFData ListBotVersions where+  rnf ListBotVersions' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortBy+      `Prelude.seq` Prelude.rnf botId++instance Data.ToHeaders ListBotVersions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListBotVersions where+  toJSON ListBotVersions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("sortBy" Data..=) Prelude.<$> sortBy+          ]+      )++instance Data.ToPath ListBotVersions where+  toPath ListBotVersions' {..} =+    Prelude.mconcat+      ["/bots/", Data.toBS botId, "/botversions/"]++instance Data.ToQuery ListBotVersions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListBotVersionsResponse' smart constructor.+data ListBotVersionsResponse = ListBotVersionsResponse'+  { -- | The identifier of the bot to list versions for.+    botId :: Prelude.Maybe Prelude.Text,+    -- | Summary information for the bot versions that meet the filter criteria+    -- specified in the request. The length of the list is specified in the+    -- @maxResults@ parameter of the request. If there are more versions+    -- available, the @nextToken@ field contains a token to get the next page+    -- of results.+    botVersionSummaries :: Prelude.Maybe [BotVersionSummary],+    -- | A token that indicates whether there are more results to return in a+    -- response to the @ListBotVersions@ operation. If the @nextToken@ field is+    -- present, you send the contents as the @nextToken@ parameter of a+    -- @ListBotAliases@ operation request to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBotVersionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'listBotVersionsResponse_botId' - The identifier of the bot to list versions for.+--+-- 'botVersionSummaries', 'listBotVersionsResponse_botVersionSummaries' - Summary information for the bot versions that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- @maxResults@ parameter of the request. If there are more versions+-- available, the @nextToken@ field contains a token to get the next page+-- of results.+--+-- 'nextToken', 'listBotVersionsResponse_nextToken' - A token that indicates whether there are more results to return in a+-- response to the @ListBotVersions@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListBotAliases@ operation request to get the next page of results.+--+-- 'httpStatus', 'listBotVersionsResponse_httpStatus' - The response's http status code.+newListBotVersionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListBotVersionsResponse+newListBotVersionsResponse pHttpStatus_ =+  ListBotVersionsResponse'+    { botId = Prelude.Nothing,+      botVersionSummaries = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot to list versions for.+listBotVersionsResponse_botId :: Lens.Lens' ListBotVersionsResponse (Prelude.Maybe Prelude.Text)+listBotVersionsResponse_botId = Lens.lens (\ListBotVersionsResponse' {botId} -> botId) (\s@ListBotVersionsResponse' {} a -> s {botId = a} :: ListBotVersionsResponse)++-- | Summary information for the bot versions that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- @maxResults@ parameter of the request. If there are more versions+-- available, the @nextToken@ field contains a token to get the next page+-- of results.+listBotVersionsResponse_botVersionSummaries :: Lens.Lens' ListBotVersionsResponse (Prelude.Maybe [BotVersionSummary])+listBotVersionsResponse_botVersionSummaries = Lens.lens (\ListBotVersionsResponse' {botVersionSummaries} -> botVersionSummaries) (\s@ListBotVersionsResponse' {} a -> s {botVersionSummaries = a} :: ListBotVersionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token that indicates whether there are more results to return in a+-- response to the @ListBotVersions@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListBotAliases@ operation request to get the next page of results.+listBotVersionsResponse_nextToken :: Lens.Lens' ListBotVersionsResponse (Prelude.Maybe Prelude.Text)+listBotVersionsResponse_nextToken = Lens.lens (\ListBotVersionsResponse' {nextToken} -> nextToken) (\s@ListBotVersionsResponse' {} a -> s {nextToken = a} :: ListBotVersionsResponse)++-- | The response's http status code.+listBotVersionsResponse_httpStatus :: Lens.Lens' ListBotVersionsResponse Prelude.Int+listBotVersionsResponse_httpStatus = Lens.lens (\ListBotVersionsResponse' {httpStatus} -> httpStatus) (\s@ListBotVersionsResponse' {} a -> s {httpStatus = a} :: ListBotVersionsResponse)++instance Prelude.NFData ListBotVersionsResponse where+  rnf ListBotVersionsResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersionSummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/ListBots.hs view
@@ -0,0 +1,269 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.ListBots+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a list of available bots.+module Amazonka.LexV2Models.ListBots+  ( -- * Creating a Request+    ListBots (..),+    newListBots,++    -- * Request Lenses+    listBots_filters,+    listBots_maxResults,+    listBots_nextToken,+    listBots_sortBy,++    -- * Destructuring the Response+    ListBotsResponse (..),+    newListBotsResponse,++    -- * Response Lenses+    listBotsResponse_botSummaries,+    listBotsResponse_nextToken,+    listBotsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListBots' smart constructor.+data ListBots = ListBots'+  { -- | Provides the specification of a filter used to limit the bots in the+    -- response to only those that match the filter specification. You can only+    -- specify one filter and one string to filter on.+    filters :: Prelude.Maybe (Prelude.NonEmpty BotFilter),+    -- | The maximum number of bots to return in each page of results. If there+    -- are fewer results than the maximum page size, only the actual number of+    -- results are returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the response from the @ListBots@ operation contains more results than+    -- specified in the @maxResults@ parameter, a token is returned in the+    -- response.+    --+    -- Use the returned token in the @nextToken@ parameter of a @ListBots@+    -- request to return the next page of results. For a complete set of+    -- results, call the @ListBots@ operation until the @nextToken@ returned in+    -- the response is null.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Specifies sorting parameters for the list of bots. You can specify that+    -- the list be sorted by bot name in ascending or descending order.+    sortBy :: Prelude.Maybe BotSortBy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBots' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listBots_filters' - Provides the specification of a filter used to limit the bots in the+-- response to only those that match the filter specification. You can only+-- specify one filter and one string to filter on.+--+-- 'maxResults', 'listBots_maxResults' - The maximum number of bots to return in each page of results. If there+-- are fewer results than the maximum page size, only the actual number of+-- results are returned.+--+-- 'nextToken', 'listBots_nextToken' - If the response from the @ListBots@ operation contains more results than+-- specified in the @maxResults@ parameter, a token is returned in the+-- response.+--+-- Use the returned token in the @nextToken@ parameter of a @ListBots@+-- request to return the next page of results. For a complete set of+-- results, call the @ListBots@ operation until the @nextToken@ returned in+-- the response is null.+--+-- 'sortBy', 'listBots_sortBy' - Specifies sorting parameters for the list of bots. You can specify that+-- the list be sorted by bot name in ascending or descending order.+newListBots ::+  ListBots+newListBots =+  ListBots'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sortBy = Prelude.Nothing+    }++-- | Provides the specification of a filter used to limit the bots in the+-- response to only those that match the filter specification. You can only+-- specify one filter and one string to filter on.+listBots_filters :: Lens.Lens' ListBots (Prelude.Maybe (Prelude.NonEmpty BotFilter))+listBots_filters = Lens.lens (\ListBots' {filters} -> filters) (\s@ListBots' {} a -> s {filters = a} :: ListBots) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of bots to return in each page of results. If there+-- are fewer results than the maximum page size, only the actual number of+-- results are returned.+listBots_maxResults :: Lens.Lens' ListBots (Prelude.Maybe Prelude.Natural)+listBots_maxResults = Lens.lens (\ListBots' {maxResults} -> maxResults) (\s@ListBots' {} a -> s {maxResults = a} :: ListBots)++-- | If the response from the @ListBots@ operation contains more results than+-- specified in the @maxResults@ parameter, a token is returned in the+-- response.+--+-- Use the returned token in the @nextToken@ parameter of a @ListBots@+-- request to return the next page of results. For a complete set of+-- results, call the @ListBots@ operation until the @nextToken@ returned in+-- the response is null.+listBots_nextToken :: Lens.Lens' ListBots (Prelude.Maybe Prelude.Text)+listBots_nextToken = Lens.lens (\ListBots' {nextToken} -> nextToken) (\s@ListBots' {} a -> s {nextToken = a} :: ListBots)++-- | Specifies sorting parameters for the list of bots. You can specify that+-- the list be sorted by bot name in ascending or descending order.+listBots_sortBy :: Lens.Lens' ListBots (Prelude.Maybe BotSortBy)+listBots_sortBy = Lens.lens (\ListBots' {sortBy} -> sortBy) (\s@ListBots' {} a -> s {sortBy = a} :: ListBots)++instance Core.AWSRequest ListBots where+  type AWSResponse ListBots = ListBotsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListBotsResponse'+            Prelude.<$> (x Data..?> "botSummaries" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListBots where+  hashWithSalt _salt ListBots' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sortBy++instance Prelude.NFData ListBots where+  rnf ListBots' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortBy++instance Data.ToHeaders ListBots where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListBots where+  toJSON ListBots' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("sortBy" Data..=) Prelude.<$> sortBy+          ]+      )++instance Data.ToPath ListBots where+  toPath = Prelude.const "/bots/"++instance Data.ToQuery ListBots where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListBotsResponse' smart constructor.+data ListBotsResponse = ListBotsResponse'+  { -- | Summary information for the bots that meet the filter criteria specified+    -- in the request. The length of the list is specified in the @maxResults@+    -- parameter of the request. If there are more bots available, the+    -- @nextToken@ field contains a token to the next page of results.+    botSummaries :: Prelude.Maybe [BotSummary],+    -- | A token that indicates whether there are more results to return in a+    -- response to the @ListBots@ operation. If the @nextToken@ field is+    -- present, you send the contents as the @nextToken@ parameter of a+    -- @ListBots@ operation request to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBotsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botSummaries', 'listBotsResponse_botSummaries' - Summary information for the bots that meet the filter criteria specified+-- in the request. The length of the list is specified in the @maxResults@+-- parameter of the request. If there are more bots available, the+-- @nextToken@ field contains a token to the next page of results.+--+-- 'nextToken', 'listBotsResponse_nextToken' - A token that indicates whether there are more results to return in a+-- response to the @ListBots@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListBots@ operation request to get the next page of results.+--+-- 'httpStatus', 'listBotsResponse_httpStatus' - The response's http status code.+newListBotsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListBotsResponse+newListBotsResponse pHttpStatus_ =+  ListBotsResponse'+    { botSummaries = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Summary information for the bots that meet the filter criteria specified+-- in the request. The length of the list is specified in the @maxResults@+-- parameter of the request. If there are more bots available, the+-- @nextToken@ field contains a token to the next page of results.+listBotsResponse_botSummaries :: Lens.Lens' ListBotsResponse (Prelude.Maybe [BotSummary])+listBotsResponse_botSummaries = Lens.lens (\ListBotsResponse' {botSummaries} -> botSummaries) (\s@ListBotsResponse' {} a -> s {botSummaries = a} :: ListBotsResponse) Prelude.. Lens.mapping Lens.coerced++-- | A token that indicates whether there are more results to return in a+-- response to the @ListBots@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListBots@ operation request to get the next page of results.+listBotsResponse_nextToken :: Lens.Lens' ListBotsResponse (Prelude.Maybe Prelude.Text)+listBotsResponse_nextToken = Lens.lens (\ListBotsResponse' {nextToken} -> nextToken) (\s@ListBotsResponse' {} a -> s {nextToken = a} :: ListBotsResponse)++-- | The response's http status code.+listBotsResponse_httpStatus :: Lens.Lens' ListBotsResponse Prelude.Int+listBotsResponse_httpStatus = Lens.lens (\ListBotsResponse' {httpStatus} -> httpStatus) (\s@ListBotsResponse' {} a -> s {httpStatus = a} :: ListBotsResponse)++instance Prelude.NFData ListBotsResponse where+  rnf ListBotsResponse' {..} =+    Prelude.rnf botSummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/ListBuiltInIntents.hs view
@@ -0,0 +1,296 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.ListBuiltInIntents+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a list of built-in intents provided by Amazon Lex that you can use+-- in your bot.+--+-- To use a built-in intent as a the base for your own intent, include the+-- built-in intent signature in the @parentIntentSignature@ parameter when+-- you call the @CreateIntent@ operation. For more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_CreateIntent.html CreateIntent>.+module Amazonka.LexV2Models.ListBuiltInIntents+  ( -- * Creating a Request+    ListBuiltInIntents (..),+    newListBuiltInIntents,++    -- * Request Lenses+    listBuiltInIntents_maxResults,+    listBuiltInIntents_nextToken,+    listBuiltInIntents_sortBy,+    listBuiltInIntents_localeId,++    -- * Destructuring the Response+    ListBuiltInIntentsResponse (..),+    newListBuiltInIntentsResponse,++    -- * Response Lenses+    listBuiltInIntentsResponse_builtInIntentSummaries,+    listBuiltInIntentsResponse_localeId,+    listBuiltInIntentsResponse_nextToken,+    listBuiltInIntentsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListBuiltInIntents' smart constructor.+data ListBuiltInIntents = ListBuiltInIntents'+  { -- | The maximum number of built-in intents to return in each page of+    -- results. If there are fewer results than the max page size, only the+    -- actual number of results are returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the response from the @ListBuiltInIntents@ operation contains more+    -- results than specified in the @maxResults@ parameter, a token is+    -- returned in the response. Use that token in the @nextToken@ parameter to+    -- return the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Specifies sorting parameters for the list of built-in intents. You can+    -- specify that the list be sorted by the built-in intent signature in+    -- either ascending or descending order.+    sortBy :: Prelude.Maybe BuiltInIntentSortBy,+    -- | The identifier of the language and locale of the intents to list. The+    -- string must match one of the supported locales. For more information,+    -- see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBuiltInIntents' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listBuiltInIntents_maxResults' - The maximum number of built-in intents to return in each page of+-- results. If there are fewer results than the max page size, only the+-- actual number of results are returned.+--+-- 'nextToken', 'listBuiltInIntents_nextToken' - If the response from the @ListBuiltInIntents@ operation contains more+-- results than specified in the @maxResults@ parameter, a token is+-- returned in the response. Use that token in the @nextToken@ parameter to+-- return the next page of results.+--+-- 'sortBy', 'listBuiltInIntents_sortBy' - Specifies sorting parameters for the list of built-in intents. You can+-- specify that the list be sorted by the built-in intent signature in+-- either ascending or descending order.+--+-- 'localeId', 'listBuiltInIntents_localeId' - The identifier of the language and locale of the intents to list. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+newListBuiltInIntents ::+  -- | 'localeId'+  Prelude.Text ->+  ListBuiltInIntents+newListBuiltInIntents pLocaleId_ =+  ListBuiltInIntents'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sortBy = Prelude.Nothing,+      localeId = pLocaleId_+    }++-- | The maximum number of built-in intents to return in each page of+-- results. If there are fewer results than the max page size, only the+-- actual number of results are returned.+listBuiltInIntents_maxResults :: Lens.Lens' ListBuiltInIntents (Prelude.Maybe Prelude.Natural)+listBuiltInIntents_maxResults = Lens.lens (\ListBuiltInIntents' {maxResults} -> maxResults) (\s@ListBuiltInIntents' {} a -> s {maxResults = a} :: ListBuiltInIntents)++-- | If the response from the @ListBuiltInIntents@ operation contains more+-- results than specified in the @maxResults@ parameter, a token is+-- returned in the response. Use that token in the @nextToken@ parameter to+-- return the next page of results.+listBuiltInIntents_nextToken :: Lens.Lens' ListBuiltInIntents (Prelude.Maybe Prelude.Text)+listBuiltInIntents_nextToken = Lens.lens (\ListBuiltInIntents' {nextToken} -> nextToken) (\s@ListBuiltInIntents' {} a -> s {nextToken = a} :: ListBuiltInIntents)++-- | Specifies sorting parameters for the list of built-in intents. You can+-- specify that the list be sorted by the built-in intent signature in+-- either ascending or descending order.+listBuiltInIntents_sortBy :: Lens.Lens' ListBuiltInIntents (Prelude.Maybe BuiltInIntentSortBy)+listBuiltInIntents_sortBy = Lens.lens (\ListBuiltInIntents' {sortBy} -> sortBy) (\s@ListBuiltInIntents' {} a -> s {sortBy = a} :: ListBuiltInIntents)++-- | The identifier of the language and locale of the intents to list. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+listBuiltInIntents_localeId :: Lens.Lens' ListBuiltInIntents Prelude.Text+listBuiltInIntents_localeId = Lens.lens (\ListBuiltInIntents' {localeId} -> localeId) (\s@ListBuiltInIntents' {} a -> s {localeId = a} :: ListBuiltInIntents)++instance Core.AWSRequest ListBuiltInIntents where+  type+    AWSResponse ListBuiltInIntents =+      ListBuiltInIntentsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListBuiltInIntentsResponse'+            Prelude.<$> ( x+                            Data..?> "builtInIntentSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListBuiltInIntents where+  hashWithSalt _salt ListBuiltInIntents' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sortBy+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData ListBuiltInIntents where+  rnf ListBuiltInIntents' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortBy+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders ListBuiltInIntents where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListBuiltInIntents where+  toJSON ListBuiltInIntents' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("sortBy" Data..=) Prelude.<$> sortBy+          ]+      )++instance Data.ToPath ListBuiltInIntents where+  toPath ListBuiltInIntents' {..} =+    Prelude.mconcat+      [ "/builtins/locales/",+        Data.toBS localeId,+        "/intents/"+      ]++instance Data.ToQuery ListBuiltInIntents where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListBuiltInIntentsResponse' smart constructor.+data ListBuiltInIntentsResponse = ListBuiltInIntentsResponse'+  { -- | Summary information for the built-in intents that meet the filter+    -- criteria specified in the request. The length of the list is specified+    -- in the @maxResults@ parameter of the request. If there are more intents+    -- available, the @nextToken@ field contains a token to get the next page+    -- of results.+    builtInIntentSummaries :: Prelude.Maybe [BuiltInIntentSummary],+    -- | The language and locale of the intents in the list.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | A token that indicates whether there are more results to return in a+    -- response to the @ListBuiltInIntents@ operation. If the @nextToken@ field+    -- is present, you send the contents as the @nextToken@ parameter of a+    -- @ListBotAliases@ operation request to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBuiltInIntentsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'builtInIntentSummaries', 'listBuiltInIntentsResponse_builtInIntentSummaries' - Summary information for the built-in intents that meet the filter+-- criteria specified in the request. The length of the list is specified+-- in the @maxResults@ parameter of the request. If there are more intents+-- available, the @nextToken@ field contains a token to get the next page+-- of results.+--+-- 'localeId', 'listBuiltInIntentsResponse_localeId' - The language and locale of the intents in the list.+--+-- 'nextToken', 'listBuiltInIntentsResponse_nextToken' - A token that indicates whether there are more results to return in a+-- response to the @ListBuiltInIntents@ operation. If the @nextToken@ field+-- is present, you send the contents as the @nextToken@ parameter of a+-- @ListBotAliases@ operation request to get the next page of results.+--+-- 'httpStatus', 'listBuiltInIntentsResponse_httpStatus' - The response's http status code.+newListBuiltInIntentsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListBuiltInIntentsResponse+newListBuiltInIntentsResponse pHttpStatus_ =+  ListBuiltInIntentsResponse'+    { builtInIntentSummaries =+        Prelude.Nothing,+      localeId = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Summary information for the built-in intents that meet the filter+-- criteria specified in the request. The length of the list is specified+-- in the @maxResults@ parameter of the request. If there are more intents+-- available, the @nextToken@ field contains a token to get the next page+-- of results.+listBuiltInIntentsResponse_builtInIntentSummaries :: Lens.Lens' ListBuiltInIntentsResponse (Prelude.Maybe [BuiltInIntentSummary])+listBuiltInIntentsResponse_builtInIntentSummaries = Lens.lens (\ListBuiltInIntentsResponse' {builtInIntentSummaries} -> builtInIntentSummaries) (\s@ListBuiltInIntentsResponse' {} a -> s {builtInIntentSummaries = a} :: ListBuiltInIntentsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The language and locale of the intents in the list.+listBuiltInIntentsResponse_localeId :: Lens.Lens' ListBuiltInIntentsResponse (Prelude.Maybe Prelude.Text)+listBuiltInIntentsResponse_localeId = Lens.lens (\ListBuiltInIntentsResponse' {localeId} -> localeId) (\s@ListBuiltInIntentsResponse' {} a -> s {localeId = a} :: ListBuiltInIntentsResponse)++-- | A token that indicates whether there are more results to return in a+-- response to the @ListBuiltInIntents@ operation. If the @nextToken@ field+-- is present, you send the contents as the @nextToken@ parameter of a+-- @ListBotAliases@ operation request to get the next page of results.+listBuiltInIntentsResponse_nextToken :: Lens.Lens' ListBuiltInIntentsResponse (Prelude.Maybe Prelude.Text)+listBuiltInIntentsResponse_nextToken = Lens.lens (\ListBuiltInIntentsResponse' {nextToken} -> nextToken) (\s@ListBuiltInIntentsResponse' {} a -> s {nextToken = a} :: ListBuiltInIntentsResponse)++-- | The response's http status code.+listBuiltInIntentsResponse_httpStatus :: Lens.Lens' ListBuiltInIntentsResponse Prelude.Int+listBuiltInIntentsResponse_httpStatus = Lens.lens (\ListBuiltInIntentsResponse' {httpStatus} -> httpStatus) (\s@ListBuiltInIntentsResponse' {} a -> s {httpStatus = a} :: ListBuiltInIntentsResponse)++instance Prelude.NFData ListBuiltInIntentsResponse where+  rnf ListBuiltInIntentsResponse' {..} =+    Prelude.rnf builtInIntentSummaries+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/ListBuiltInSlotTypes.hs view
@@ -0,0 +1,293 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.ListBuiltInSlotTypes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a list of built-in slot types that meet the specified criteria.+module Amazonka.LexV2Models.ListBuiltInSlotTypes+  ( -- * Creating a Request+    ListBuiltInSlotTypes (..),+    newListBuiltInSlotTypes,++    -- * Request Lenses+    listBuiltInSlotTypes_maxResults,+    listBuiltInSlotTypes_nextToken,+    listBuiltInSlotTypes_sortBy,+    listBuiltInSlotTypes_localeId,++    -- * Destructuring the Response+    ListBuiltInSlotTypesResponse (..),+    newListBuiltInSlotTypesResponse,++    -- * Response Lenses+    listBuiltInSlotTypesResponse_builtInSlotTypeSummaries,+    listBuiltInSlotTypesResponse_localeId,+    listBuiltInSlotTypesResponse_nextToken,+    listBuiltInSlotTypesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListBuiltInSlotTypes' smart constructor.+data ListBuiltInSlotTypes = ListBuiltInSlotTypes'+  { -- | The maximum number of built-in slot types to return in each page of+    -- results. If there are fewer results than the max page size, only the+    -- actual number of results are returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the response from the @ListBuiltInSlotTypes@ operation contains more+    -- results than specified in the @maxResults@ parameter, a token is+    -- returned in the response. Use that token in the @nextToken@ parameter to+    -- return the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Determines the sort order for the response from the+    -- @ListBuiltInSlotTypes@ operation. You can choose to sort by the slot+    -- type signature in either ascending or descending order.+    sortBy :: Prelude.Maybe BuiltInSlotTypeSortBy,+    -- | The identifier of the language and locale of the slot types to list. The+    -- string must match one of the supported locales. For more information,+    -- see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBuiltInSlotTypes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listBuiltInSlotTypes_maxResults' - The maximum number of built-in slot types to return in each page of+-- results. If there are fewer results than the max page size, only the+-- actual number of results are returned.+--+-- 'nextToken', 'listBuiltInSlotTypes_nextToken' - If the response from the @ListBuiltInSlotTypes@ operation contains more+-- results than specified in the @maxResults@ parameter, a token is+-- returned in the response. Use that token in the @nextToken@ parameter to+-- return the next page of results.+--+-- 'sortBy', 'listBuiltInSlotTypes_sortBy' - Determines the sort order for the response from the+-- @ListBuiltInSlotTypes@ operation. You can choose to sort by the slot+-- type signature in either ascending or descending order.+--+-- 'localeId', 'listBuiltInSlotTypes_localeId' - The identifier of the language and locale of the slot types to list. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+newListBuiltInSlotTypes ::+  -- | 'localeId'+  Prelude.Text ->+  ListBuiltInSlotTypes+newListBuiltInSlotTypes pLocaleId_ =+  ListBuiltInSlotTypes'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sortBy = Prelude.Nothing,+      localeId = pLocaleId_+    }++-- | The maximum number of built-in slot types to return in each page of+-- results. If there are fewer results than the max page size, only the+-- actual number of results are returned.+listBuiltInSlotTypes_maxResults :: Lens.Lens' ListBuiltInSlotTypes (Prelude.Maybe Prelude.Natural)+listBuiltInSlotTypes_maxResults = Lens.lens (\ListBuiltInSlotTypes' {maxResults} -> maxResults) (\s@ListBuiltInSlotTypes' {} a -> s {maxResults = a} :: ListBuiltInSlotTypes)++-- | If the response from the @ListBuiltInSlotTypes@ operation contains more+-- results than specified in the @maxResults@ parameter, a token is+-- returned in the response. Use that token in the @nextToken@ parameter to+-- return the next page of results.+listBuiltInSlotTypes_nextToken :: Lens.Lens' ListBuiltInSlotTypes (Prelude.Maybe Prelude.Text)+listBuiltInSlotTypes_nextToken = Lens.lens (\ListBuiltInSlotTypes' {nextToken} -> nextToken) (\s@ListBuiltInSlotTypes' {} a -> s {nextToken = a} :: ListBuiltInSlotTypes)++-- | Determines the sort order for the response from the+-- @ListBuiltInSlotTypes@ operation. You can choose to sort by the slot+-- type signature in either ascending or descending order.+listBuiltInSlotTypes_sortBy :: Lens.Lens' ListBuiltInSlotTypes (Prelude.Maybe BuiltInSlotTypeSortBy)+listBuiltInSlotTypes_sortBy = Lens.lens (\ListBuiltInSlotTypes' {sortBy} -> sortBy) (\s@ListBuiltInSlotTypes' {} a -> s {sortBy = a} :: ListBuiltInSlotTypes)++-- | The identifier of the language and locale of the slot types to list. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+listBuiltInSlotTypes_localeId :: Lens.Lens' ListBuiltInSlotTypes Prelude.Text+listBuiltInSlotTypes_localeId = Lens.lens (\ListBuiltInSlotTypes' {localeId} -> localeId) (\s@ListBuiltInSlotTypes' {} a -> s {localeId = a} :: ListBuiltInSlotTypes)++instance Core.AWSRequest ListBuiltInSlotTypes where+  type+    AWSResponse ListBuiltInSlotTypes =+      ListBuiltInSlotTypesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListBuiltInSlotTypesResponse'+            Prelude.<$> ( x+                            Data..?> "builtInSlotTypeSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListBuiltInSlotTypes where+  hashWithSalt _salt ListBuiltInSlotTypes' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sortBy+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData ListBuiltInSlotTypes where+  rnf ListBuiltInSlotTypes' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortBy+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders ListBuiltInSlotTypes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListBuiltInSlotTypes where+  toJSON ListBuiltInSlotTypes' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("sortBy" Data..=) Prelude.<$> sortBy+          ]+      )++instance Data.ToPath ListBuiltInSlotTypes where+  toPath ListBuiltInSlotTypes' {..} =+    Prelude.mconcat+      [ "/builtins/locales/",+        Data.toBS localeId,+        "/slottypes/"+      ]++instance Data.ToQuery ListBuiltInSlotTypes where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListBuiltInSlotTypesResponse' smart constructor.+data ListBuiltInSlotTypesResponse = ListBuiltInSlotTypesResponse'+  { -- | Summary information for the built-in slot types that meet the filter+    -- criteria specified in the request. The length of the list is specified+    -- in the @maxResults@ parameter of the request. If there are more slot+    -- types available, the @nextToken@ field contains a token to get the next+    -- page of results.+    builtInSlotTypeSummaries :: Prelude.Maybe [BuiltInSlotTypeSummary],+    -- | The language and locale of the slot types in the list.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | A token that indicates whether there are more results to return in a+    -- response to the @ListBuiltInSlotTypes@ operation. If the @nextToken@+    -- field is present, you send the contents as the @nextToken@ parameter of+    -- a @LIstBuiltInSlotTypes@ operation request to get the next page of+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListBuiltInSlotTypesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'builtInSlotTypeSummaries', 'listBuiltInSlotTypesResponse_builtInSlotTypeSummaries' - Summary information for the built-in slot types that meet the filter+-- criteria specified in the request. The length of the list is specified+-- in the @maxResults@ parameter of the request. If there are more slot+-- types available, the @nextToken@ field contains a token to get the next+-- page of results.+--+-- 'localeId', 'listBuiltInSlotTypesResponse_localeId' - The language and locale of the slot types in the list.+--+-- 'nextToken', 'listBuiltInSlotTypesResponse_nextToken' - A token that indicates whether there are more results to return in a+-- response to the @ListBuiltInSlotTypes@ operation. If the @nextToken@+-- field is present, you send the contents as the @nextToken@ parameter of+-- a @LIstBuiltInSlotTypes@ operation request to get the next page of+-- results.+--+-- 'httpStatus', 'listBuiltInSlotTypesResponse_httpStatus' - The response's http status code.+newListBuiltInSlotTypesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListBuiltInSlotTypesResponse+newListBuiltInSlotTypesResponse pHttpStatus_ =+  ListBuiltInSlotTypesResponse'+    { builtInSlotTypeSummaries =+        Prelude.Nothing,+      localeId = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Summary information for the built-in slot types that meet the filter+-- criteria specified in the request. The length of the list is specified+-- in the @maxResults@ parameter of the request. If there are more slot+-- types available, the @nextToken@ field contains a token to get the next+-- page of results.+listBuiltInSlotTypesResponse_builtInSlotTypeSummaries :: Lens.Lens' ListBuiltInSlotTypesResponse (Prelude.Maybe [BuiltInSlotTypeSummary])+listBuiltInSlotTypesResponse_builtInSlotTypeSummaries = Lens.lens (\ListBuiltInSlotTypesResponse' {builtInSlotTypeSummaries} -> builtInSlotTypeSummaries) (\s@ListBuiltInSlotTypesResponse' {} a -> s {builtInSlotTypeSummaries = a} :: ListBuiltInSlotTypesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The language and locale of the slot types in the list.+listBuiltInSlotTypesResponse_localeId :: Lens.Lens' ListBuiltInSlotTypesResponse (Prelude.Maybe Prelude.Text)+listBuiltInSlotTypesResponse_localeId = Lens.lens (\ListBuiltInSlotTypesResponse' {localeId} -> localeId) (\s@ListBuiltInSlotTypesResponse' {} a -> s {localeId = a} :: ListBuiltInSlotTypesResponse)++-- | A token that indicates whether there are more results to return in a+-- response to the @ListBuiltInSlotTypes@ operation. If the @nextToken@+-- field is present, you send the contents as the @nextToken@ parameter of+-- a @LIstBuiltInSlotTypes@ operation request to get the next page of+-- results.+listBuiltInSlotTypesResponse_nextToken :: Lens.Lens' ListBuiltInSlotTypesResponse (Prelude.Maybe Prelude.Text)+listBuiltInSlotTypesResponse_nextToken = Lens.lens (\ListBuiltInSlotTypesResponse' {nextToken} -> nextToken) (\s@ListBuiltInSlotTypesResponse' {} a -> s {nextToken = a} :: ListBuiltInSlotTypesResponse)++-- | The response's http status code.+listBuiltInSlotTypesResponse_httpStatus :: Lens.Lens' ListBuiltInSlotTypesResponse Prelude.Int+listBuiltInSlotTypesResponse_httpStatus = Lens.lens (\ListBuiltInSlotTypesResponse' {httpStatus} -> httpStatus) (\s@ListBuiltInSlotTypesResponse' {} a -> s {httpStatus = a} :: ListBuiltInSlotTypesResponse)++instance Prelude.NFData ListBuiltInSlotTypesResponse where+  rnf ListBuiltInSlotTypesResponse' {..} =+    Prelude.rnf builtInSlotTypeSummaries+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/ListCustomVocabularyItems.hs view
@@ -0,0 +1,290 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.ListCustomVocabularyItems+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- List custom vocabulary items for the specified locale in the specified+-- bot.+module Amazonka.LexV2Models.ListCustomVocabularyItems+  ( -- * Creating a Request+    ListCustomVocabularyItems (..),+    newListCustomVocabularyItems,++    -- * Request Lenses+    listCustomVocabularyItems_maxResults,+    listCustomVocabularyItems_nextToken,+    listCustomVocabularyItems_botId,+    listCustomVocabularyItems_botVersion,+    listCustomVocabularyItems_localeId,++    -- * Destructuring the Response+    ListCustomVocabularyItemsResponse (..),+    newListCustomVocabularyItemsResponse,++    -- * Response Lenses+    listCustomVocabularyItemsResponse_botId,+    listCustomVocabularyItemsResponse_botVersion,+    listCustomVocabularyItemsResponse_customVocabularyItems,+    listCustomVocabularyItemsResponse_localeId,+    listCustomVocabularyItemsResponse_nextToken,+    listCustomVocabularyItemsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListCustomVocabularyItems' smart constructor.+data ListCustomVocabularyItems = ListCustomVocabularyItems'+  { -- | The maximum results to the list custom vocabulary request.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The nextToken identifier to the list custom vocabulary request.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the bot to the list custom vocabulary request.+    botId :: Prelude.Text,+    -- | The bot version of the bot to the list custom vocabulary request.+    botVersion :: Prelude.Text,+    -- | The locale identifier of the bot to the list custom vocabulary request.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomVocabularyItems' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listCustomVocabularyItems_maxResults' - The maximum results to the list custom vocabulary request.+--+-- 'nextToken', 'listCustomVocabularyItems_nextToken' - The nextToken identifier to the list custom vocabulary request.+--+-- 'botId', 'listCustomVocabularyItems_botId' - The unique identifier of the bot to the list custom vocabulary request.+--+-- 'botVersion', 'listCustomVocabularyItems_botVersion' - The bot version of the bot to the list custom vocabulary request.+--+-- 'localeId', 'listCustomVocabularyItems_localeId' - The locale identifier of the bot to the list custom vocabulary request.+newListCustomVocabularyItems ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  ListCustomVocabularyItems+newListCustomVocabularyItems+  pBotId_+  pBotVersion_+  pLocaleId_ =+    ListCustomVocabularyItems'+      { maxResults =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_+      }++-- | The maximum results to the list custom vocabulary request.+listCustomVocabularyItems_maxResults :: Lens.Lens' ListCustomVocabularyItems (Prelude.Maybe Prelude.Natural)+listCustomVocabularyItems_maxResults = Lens.lens (\ListCustomVocabularyItems' {maxResults} -> maxResults) (\s@ListCustomVocabularyItems' {} a -> s {maxResults = a} :: ListCustomVocabularyItems)++-- | The nextToken identifier to the list custom vocabulary request.+listCustomVocabularyItems_nextToken :: Lens.Lens' ListCustomVocabularyItems (Prelude.Maybe Prelude.Text)+listCustomVocabularyItems_nextToken = Lens.lens (\ListCustomVocabularyItems' {nextToken} -> nextToken) (\s@ListCustomVocabularyItems' {} a -> s {nextToken = a} :: ListCustomVocabularyItems)++-- | The unique identifier of the bot to the list custom vocabulary request.+listCustomVocabularyItems_botId :: Lens.Lens' ListCustomVocabularyItems Prelude.Text+listCustomVocabularyItems_botId = Lens.lens (\ListCustomVocabularyItems' {botId} -> botId) (\s@ListCustomVocabularyItems' {} a -> s {botId = a} :: ListCustomVocabularyItems)++-- | The bot version of the bot to the list custom vocabulary request.+listCustomVocabularyItems_botVersion :: Lens.Lens' ListCustomVocabularyItems Prelude.Text+listCustomVocabularyItems_botVersion = Lens.lens (\ListCustomVocabularyItems' {botVersion} -> botVersion) (\s@ListCustomVocabularyItems' {} a -> s {botVersion = a} :: ListCustomVocabularyItems)++-- | The locale identifier of the bot to the list custom vocabulary request.+listCustomVocabularyItems_localeId :: Lens.Lens' ListCustomVocabularyItems Prelude.Text+listCustomVocabularyItems_localeId = Lens.lens (\ListCustomVocabularyItems' {localeId} -> localeId) (\s@ListCustomVocabularyItems' {} a -> s {localeId = a} :: ListCustomVocabularyItems)++instance Core.AWSRequest ListCustomVocabularyItems where+  type+    AWSResponse ListCustomVocabularyItems =+      ListCustomVocabularyItemsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListCustomVocabularyItemsResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> ( x+                            Data..?> "customVocabularyItems"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListCustomVocabularyItems where+  hashWithSalt _salt ListCustomVocabularyItems' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData ListCustomVocabularyItems where+  rnf ListCustomVocabularyItems' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders ListCustomVocabularyItems where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListCustomVocabularyItems where+  toJSON ListCustomVocabularyItems' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListCustomVocabularyItems where+  toPath ListCustomVocabularyItems' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/customvocabulary/DEFAULT/list"+      ]++instance Data.ToQuery ListCustomVocabularyItems where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListCustomVocabularyItemsResponse' smart constructor.+data ListCustomVocabularyItemsResponse = ListCustomVocabularyItemsResponse'+  { -- | The unique identifier of the bot to the list custom vocabulary response.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The bot version of the bot to the list custom vocabulary response.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The custom vocabulary items from the list custom vocabulary response.+    customVocabularyItems :: Prelude.Maybe [CustomVocabularyItem],+    -- | The locale identifier of the bot to the list custom vocabulary response.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The nextToken identifier to the list custom vocabulary response.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCustomVocabularyItemsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'listCustomVocabularyItemsResponse_botId' - The unique identifier of the bot to the list custom vocabulary response.+--+-- 'botVersion', 'listCustomVocabularyItemsResponse_botVersion' - The bot version of the bot to the list custom vocabulary response.+--+-- 'customVocabularyItems', 'listCustomVocabularyItemsResponse_customVocabularyItems' - The custom vocabulary items from the list custom vocabulary response.+--+-- 'localeId', 'listCustomVocabularyItemsResponse_localeId' - The locale identifier of the bot to the list custom vocabulary response.+--+-- 'nextToken', 'listCustomVocabularyItemsResponse_nextToken' - The nextToken identifier to the list custom vocabulary response.+--+-- 'httpStatus', 'listCustomVocabularyItemsResponse_httpStatus' - The response's http status code.+newListCustomVocabularyItemsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListCustomVocabularyItemsResponse+newListCustomVocabularyItemsResponse pHttpStatus_ =+  ListCustomVocabularyItemsResponse'+    { botId =+        Prelude.Nothing,+      botVersion = Prelude.Nothing,+      customVocabularyItems = Prelude.Nothing,+      localeId = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the bot to the list custom vocabulary response.+listCustomVocabularyItemsResponse_botId :: Lens.Lens' ListCustomVocabularyItemsResponse (Prelude.Maybe Prelude.Text)+listCustomVocabularyItemsResponse_botId = Lens.lens (\ListCustomVocabularyItemsResponse' {botId} -> botId) (\s@ListCustomVocabularyItemsResponse' {} a -> s {botId = a} :: ListCustomVocabularyItemsResponse)++-- | The bot version of the bot to the list custom vocabulary response.+listCustomVocabularyItemsResponse_botVersion :: Lens.Lens' ListCustomVocabularyItemsResponse (Prelude.Maybe Prelude.Text)+listCustomVocabularyItemsResponse_botVersion = Lens.lens (\ListCustomVocabularyItemsResponse' {botVersion} -> botVersion) (\s@ListCustomVocabularyItemsResponse' {} a -> s {botVersion = a} :: ListCustomVocabularyItemsResponse)++-- | The custom vocabulary items from the list custom vocabulary response.+listCustomVocabularyItemsResponse_customVocabularyItems :: Lens.Lens' ListCustomVocabularyItemsResponse (Prelude.Maybe [CustomVocabularyItem])+listCustomVocabularyItemsResponse_customVocabularyItems = Lens.lens (\ListCustomVocabularyItemsResponse' {customVocabularyItems} -> customVocabularyItems) (\s@ListCustomVocabularyItemsResponse' {} a -> s {customVocabularyItems = a} :: ListCustomVocabularyItemsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The locale identifier of the bot to the list custom vocabulary response.+listCustomVocabularyItemsResponse_localeId :: Lens.Lens' ListCustomVocabularyItemsResponse (Prelude.Maybe Prelude.Text)+listCustomVocabularyItemsResponse_localeId = Lens.lens (\ListCustomVocabularyItemsResponse' {localeId} -> localeId) (\s@ListCustomVocabularyItemsResponse' {} a -> s {localeId = a} :: ListCustomVocabularyItemsResponse)++-- | The nextToken identifier to the list custom vocabulary response.+listCustomVocabularyItemsResponse_nextToken :: Lens.Lens' ListCustomVocabularyItemsResponse (Prelude.Maybe Prelude.Text)+listCustomVocabularyItemsResponse_nextToken = Lens.lens (\ListCustomVocabularyItemsResponse' {nextToken} -> nextToken) (\s@ListCustomVocabularyItemsResponse' {} a -> s {nextToken = a} :: ListCustomVocabularyItemsResponse)++-- | The response's http status code.+listCustomVocabularyItemsResponse_httpStatus :: Lens.Lens' ListCustomVocabularyItemsResponse Prelude.Int+listCustomVocabularyItemsResponse_httpStatus = Lens.lens (\ListCustomVocabularyItemsResponse' {httpStatus} -> httpStatus) (\s@ListCustomVocabularyItemsResponse' {} a -> s {httpStatus = a} :: ListCustomVocabularyItemsResponse)++instance+  Prelude.NFData+    ListCustomVocabularyItemsResponse+  where+  rnf ListCustomVocabularyItemsResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf customVocabularyItems+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/ListExports.hs view
@@ -0,0 +1,354 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.ListExports+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the exports for a bot, bot locale, or custom vocabulary. Exports+-- are kept in the list for 7 days.+module Amazonka.LexV2Models.ListExports+  ( -- * Creating a Request+    ListExports (..),+    newListExports,++    -- * Request Lenses+    listExports_botId,+    listExports_botVersion,+    listExports_filters,+    listExports_localeId,+    listExports_maxResults,+    listExports_nextToken,+    listExports_sortBy,++    -- * Destructuring the Response+    ListExportsResponse (..),+    newListExportsResponse,++    -- * Response Lenses+    listExportsResponse_botId,+    listExportsResponse_botVersion,+    listExportsResponse_exportSummaries,+    listExportsResponse_localeId,+    listExportsResponse_nextToken,+    listExportsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListExports' smart constructor.+data ListExports = ListExports'+  { -- | The unique identifier that Amazon Lex assigned to the bot.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot to list exports for.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | Provides the specification of a filter used to limit the exports in the+    -- response to only those that match the filter specification. You can only+    -- specify one filter and one string to filter on.+    filters :: Prelude.Maybe (Prelude.NonEmpty ExportFilter),+    -- | Specifies the resources that should be exported. If you don\'t specify a+    -- resource type in the @filters@ parameter, both bot locales and custom+    -- vocabularies are exported.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of exports to return in each page of results. If+    -- there are fewer results than the max page size, only the actual number+    -- of results are returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the response from the @ListExports@ operation contains more results+    -- that specified in the @maxResults@ parameter, a token is returned in the+    -- response.+    --+    -- Use the returned token in the @nextToken@ parameter of a @ListExports@+    -- request to return the next page of results. For a complete set of+    -- results, call the @ListExports@ operation until the @nextToken@ returned+    -- in the response is null.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Determines the field that the list of exports is sorted by. You can sort+    -- by the @LastUpdatedDateTime@ field in ascending or descending order.+    sortBy :: Prelude.Maybe ExportSortBy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListExports' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'listExports_botId' - The unique identifier that Amazon Lex assigned to the bot.+--+-- 'botVersion', 'listExports_botVersion' - The version of the bot to list exports for.+--+-- 'filters', 'listExports_filters' - Provides the specification of a filter used to limit the exports in the+-- response to only those that match the filter specification. You can only+-- specify one filter and one string to filter on.+--+-- 'localeId', 'listExports_localeId' - Specifies the resources that should be exported. If you don\'t specify a+-- resource type in the @filters@ parameter, both bot locales and custom+-- vocabularies are exported.+--+-- 'maxResults', 'listExports_maxResults' - The maximum number of exports to return in each page of results. If+-- there are fewer results than the max page size, only the actual number+-- of results are returned.+--+-- 'nextToken', 'listExports_nextToken' - If the response from the @ListExports@ operation contains more results+-- that specified in the @maxResults@ parameter, a token is returned in the+-- response.+--+-- Use the returned token in the @nextToken@ parameter of a @ListExports@+-- request to return the next page of results. For a complete set of+-- results, call the @ListExports@ operation until the @nextToken@ returned+-- in the response is null.+--+-- 'sortBy', 'listExports_sortBy' - Determines the field that the list of exports is sorted by. You can sort+-- by the @LastUpdatedDateTime@ field in ascending or descending order.+newListExports ::+  ListExports+newListExports =+  ListExports'+    { botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      filters = Prelude.Nothing,+      localeId = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sortBy = Prelude.Nothing+    }++-- | The unique identifier that Amazon Lex assigned to the bot.+listExports_botId :: Lens.Lens' ListExports (Prelude.Maybe Prelude.Text)+listExports_botId = Lens.lens (\ListExports' {botId} -> botId) (\s@ListExports' {} a -> s {botId = a} :: ListExports)++-- | The version of the bot to list exports for.+listExports_botVersion :: Lens.Lens' ListExports (Prelude.Maybe Prelude.Text)+listExports_botVersion = Lens.lens (\ListExports' {botVersion} -> botVersion) (\s@ListExports' {} a -> s {botVersion = a} :: ListExports)++-- | Provides the specification of a filter used to limit the exports in the+-- response to only those that match the filter specification. You can only+-- specify one filter and one string to filter on.+listExports_filters :: Lens.Lens' ListExports (Prelude.Maybe (Prelude.NonEmpty ExportFilter))+listExports_filters = Lens.lens (\ListExports' {filters} -> filters) (\s@ListExports' {} a -> s {filters = a} :: ListExports) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the resources that should be exported. If you don\'t specify a+-- resource type in the @filters@ parameter, both bot locales and custom+-- vocabularies are exported.+listExports_localeId :: Lens.Lens' ListExports (Prelude.Maybe Prelude.Text)+listExports_localeId = Lens.lens (\ListExports' {localeId} -> localeId) (\s@ListExports' {} a -> s {localeId = a} :: ListExports)++-- | The maximum number of exports to return in each page of results. If+-- there are fewer results than the max page size, only the actual number+-- of results are returned.+listExports_maxResults :: Lens.Lens' ListExports (Prelude.Maybe Prelude.Natural)+listExports_maxResults = Lens.lens (\ListExports' {maxResults} -> maxResults) (\s@ListExports' {} a -> s {maxResults = a} :: ListExports)++-- | If the response from the @ListExports@ operation contains more results+-- that specified in the @maxResults@ parameter, a token is returned in the+-- response.+--+-- Use the returned token in the @nextToken@ parameter of a @ListExports@+-- request to return the next page of results. For a complete set of+-- results, call the @ListExports@ operation until the @nextToken@ returned+-- in the response is null.+listExports_nextToken :: Lens.Lens' ListExports (Prelude.Maybe Prelude.Text)+listExports_nextToken = Lens.lens (\ListExports' {nextToken} -> nextToken) (\s@ListExports' {} a -> s {nextToken = a} :: ListExports)++-- | Determines the field that the list of exports is sorted by. You can sort+-- by the @LastUpdatedDateTime@ field in ascending or descending order.+listExports_sortBy :: Lens.Lens' ListExports (Prelude.Maybe ExportSortBy)+listExports_sortBy = Lens.lens (\ListExports' {sortBy} -> sortBy) (\s@ListExports' {} a -> s {sortBy = a} :: ListExports)++instance Core.AWSRequest ListExports where+  type AWSResponse ListExports = ListExportsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListExportsResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> ( x+                            Data..?> "exportSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListExports where+  hashWithSalt _salt ListExports' {..} =+    _salt+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sortBy++instance Prelude.NFData ListExports where+  rnf ListExports' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortBy++instance Data.ToHeaders ListExports where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListExports where+  toJSON ListExports' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("botId" Data..=) Prelude.<$> botId,+            ("botVersion" Data..=) Prelude.<$> botVersion,+            ("filters" Data..=) Prelude.<$> filters,+            ("localeId" Data..=) Prelude.<$> localeId,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("sortBy" Data..=) Prelude.<$> sortBy+          ]+      )++instance Data.ToPath ListExports where+  toPath = Prelude.const "/exports/"++instance Data.ToQuery ListExports where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListExportsResponse' smart constructor.+data ListExportsResponse = ListExportsResponse'+  { -- | The unique identifier assigned to the bot by Amazon Lex.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot that was exported.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | Summary information for the exports that meet the filter criteria+    -- specified in the request. The length of the list is specified in the+    -- @maxResults@ parameter. If there are more exports available, the+    -- @nextToken@ field contains a token to get the next page of results.+    exportSummaries :: Prelude.Maybe [ExportSummary],+    -- | The locale specified in the request.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | A token that indicates whether there are more results to return in a+    -- response to the @ListExports@ operation. If the @nextToken@ field is+    -- present, you send the contents as the @nextToken@ parameter of a+    -- @ListExports@ operation request to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListExportsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'listExportsResponse_botId' - The unique identifier assigned to the bot by Amazon Lex.+--+-- 'botVersion', 'listExportsResponse_botVersion' - The version of the bot that was exported.+--+-- 'exportSummaries', 'listExportsResponse_exportSummaries' - Summary information for the exports that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- @maxResults@ parameter. If there are more exports available, the+-- @nextToken@ field contains a token to get the next page of results.+--+-- 'localeId', 'listExportsResponse_localeId' - The locale specified in the request.+--+-- 'nextToken', 'listExportsResponse_nextToken' - A token that indicates whether there are more results to return in a+-- response to the @ListExports@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListExports@ operation request to get the next page of results.+--+-- 'httpStatus', 'listExportsResponse_httpStatus' - The response's http status code.+newListExportsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListExportsResponse+newListExportsResponse pHttpStatus_ =+  ListExportsResponse'+    { botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      exportSummaries = Prelude.Nothing,+      localeId = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier assigned to the bot by Amazon Lex.+listExportsResponse_botId :: Lens.Lens' ListExportsResponse (Prelude.Maybe Prelude.Text)+listExportsResponse_botId = Lens.lens (\ListExportsResponse' {botId} -> botId) (\s@ListExportsResponse' {} a -> s {botId = a} :: ListExportsResponse)++-- | The version of the bot that was exported.+listExportsResponse_botVersion :: Lens.Lens' ListExportsResponse (Prelude.Maybe Prelude.Text)+listExportsResponse_botVersion = Lens.lens (\ListExportsResponse' {botVersion} -> botVersion) (\s@ListExportsResponse' {} a -> s {botVersion = a} :: ListExportsResponse)++-- | Summary information for the exports that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- @maxResults@ parameter. If there are more exports available, the+-- @nextToken@ field contains a token to get the next page of results.+listExportsResponse_exportSummaries :: Lens.Lens' ListExportsResponse (Prelude.Maybe [ExportSummary])+listExportsResponse_exportSummaries = Lens.lens (\ListExportsResponse' {exportSummaries} -> exportSummaries) (\s@ListExportsResponse' {} a -> s {exportSummaries = a} :: ListExportsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The locale specified in the request.+listExportsResponse_localeId :: Lens.Lens' ListExportsResponse (Prelude.Maybe Prelude.Text)+listExportsResponse_localeId = Lens.lens (\ListExportsResponse' {localeId} -> localeId) (\s@ListExportsResponse' {} a -> s {localeId = a} :: ListExportsResponse)++-- | A token that indicates whether there are more results to return in a+-- response to the @ListExports@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListExports@ operation request to get the next page of results.+listExportsResponse_nextToken :: Lens.Lens' ListExportsResponse (Prelude.Maybe Prelude.Text)+listExportsResponse_nextToken = Lens.lens (\ListExportsResponse' {nextToken} -> nextToken) (\s@ListExportsResponse' {} a -> s {nextToken = a} :: ListExportsResponse)++-- | The response's http status code.+listExportsResponse_httpStatus :: Lens.Lens' ListExportsResponse Prelude.Int+listExportsResponse_httpStatus = Lens.lens (\ListExportsResponse' {httpStatus} -> httpStatus) (\s@ListExportsResponse' {} a -> s {httpStatus = a} :: ListExportsResponse)++instance Prelude.NFData ListExportsResponse where+  rnf ListExportsResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf exportSummaries+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/ListImports.hs view
@@ -0,0 +1,354 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.ListImports+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists the imports for a bot, bot locale, or custom vocabulary. Imports+-- are kept in the list for 7 days.+module Amazonka.LexV2Models.ListImports+  ( -- * Creating a Request+    ListImports (..),+    newListImports,++    -- * Request Lenses+    listImports_botId,+    listImports_botVersion,+    listImports_filters,+    listImports_localeId,+    listImports_maxResults,+    listImports_nextToken,+    listImports_sortBy,++    -- * Destructuring the Response+    ListImportsResponse (..),+    newListImportsResponse,++    -- * Response Lenses+    listImportsResponse_botId,+    listImportsResponse_botVersion,+    listImportsResponse_importSummaries,+    listImportsResponse_localeId,+    listImportsResponse_nextToken,+    listImportsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListImports' smart constructor.+data ListImports = ListImports'+  { -- | The unique identifier that Amazon Lex assigned to the bot.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot to list imports for.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | Provides the specification of a filter used to limit the bots in the+    -- response to only those that match the filter specification. You can only+    -- specify one filter and one string to filter on.+    filters :: Prelude.Maybe (Prelude.NonEmpty ImportFilter),+    -- | Specifies the locale that should be present in the list. If you don\'t+    -- specify a resource type in the @filters@ parameter, the list contains+    -- both bot locales and custom vocabularies.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of imports to return in each page of results. If+    -- there are fewer results than the max page size, only the actual number+    -- of results are returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the response from the @ListImports@ operation contains more results+    -- than specified in the @maxResults@ parameter, a token is returned in the+    -- response.+    --+    -- Use the returned token in the @nextToken@ parameter of a @ListImports@+    -- request to return the next page of results. For a complete set of+    -- results, call the @ListImports@ operation until the @nextToken@ returned+    -- in the response is null.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Determines the field that the list of imports is sorted by. You can sort+    -- by the @LastUpdatedDateTime@ field in ascending or descending order.+    sortBy :: Prelude.Maybe ImportSortBy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListImports' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'listImports_botId' - The unique identifier that Amazon Lex assigned to the bot.+--+-- 'botVersion', 'listImports_botVersion' - The version of the bot to list imports for.+--+-- 'filters', 'listImports_filters' - Provides the specification of a filter used to limit the bots in the+-- response to only those that match the filter specification. You can only+-- specify one filter and one string to filter on.+--+-- 'localeId', 'listImports_localeId' - Specifies the locale that should be present in the list. If you don\'t+-- specify a resource type in the @filters@ parameter, the list contains+-- both bot locales and custom vocabularies.+--+-- 'maxResults', 'listImports_maxResults' - The maximum number of imports to return in each page of results. If+-- there are fewer results than the max page size, only the actual number+-- of results are returned.+--+-- 'nextToken', 'listImports_nextToken' - If the response from the @ListImports@ operation contains more results+-- than specified in the @maxResults@ parameter, a token is returned in the+-- response.+--+-- Use the returned token in the @nextToken@ parameter of a @ListImports@+-- request to return the next page of results. For a complete set of+-- results, call the @ListImports@ operation until the @nextToken@ returned+-- in the response is null.+--+-- 'sortBy', 'listImports_sortBy' - Determines the field that the list of imports is sorted by. You can sort+-- by the @LastUpdatedDateTime@ field in ascending or descending order.+newListImports ::+  ListImports+newListImports =+  ListImports'+    { botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      filters = Prelude.Nothing,+      localeId = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sortBy = Prelude.Nothing+    }++-- | The unique identifier that Amazon Lex assigned to the bot.+listImports_botId :: Lens.Lens' ListImports (Prelude.Maybe Prelude.Text)+listImports_botId = Lens.lens (\ListImports' {botId} -> botId) (\s@ListImports' {} a -> s {botId = a} :: ListImports)++-- | The version of the bot to list imports for.+listImports_botVersion :: Lens.Lens' ListImports (Prelude.Maybe Prelude.Text)+listImports_botVersion = Lens.lens (\ListImports' {botVersion} -> botVersion) (\s@ListImports' {} a -> s {botVersion = a} :: ListImports)++-- | Provides the specification of a filter used to limit the bots in the+-- response to only those that match the filter specification. You can only+-- specify one filter and one string to filter on.+listImports_filters :: Lens.Lens' ListImports (Prelude.Maybe (Prelude.NonEmpty ImportFilter))+listImports_filters = Lens.lens (\ListImports' {filters} -> filters) (\s@ListImports' {} a -> s {filters = a} :: ListImports) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the locale that should be present in the list. If you don\'t+-- specify a resource type in the @filters@ parameter, the list contains+-- both bot locales and custom vocabularies.+listImports_localeId :: Lens.Lens' ListImports (Prelude.Maybe Prelude.Text)+listImports_localeId = Lens.lens (\ListImports' {localeId} -> localeId) (\s@ListImports' {} a -> s {localeId = a} :: ListImports)++-- | The maximum number of imports to return in each page of results. If+-- there are fewer results than the max page size, only the actual number+-- of results are returned.+listImports_maxResults :: Lens.Lens' ListImports (Prelude.Maybe Prelude.Natural)+listImports_maxResults = Lens.lens (\ListImports' {maxResults} -> maxResults) (\s@ListImports' {} a -> s {maxResults = a} :: ListImports)++-- | If the response from the @ListImports@ operation contains more results+-- than specified in the @maxResults@ parameter, a token is returned in the+-- response.+--+-- Use the returned token in the @nextToken@ parameter of a @ListImports@+-- request to return the next page of results. For a complete set of+-- results, call the @ListImports@ operation until the @nextToken@ returned+-- in the response is null.+listImports_nextToken :: Lens.Lens' ListImports (Prelude.Maybe Prelude.Text)+listImports_nextToken = Lens.lens (\ListImports' {nextToken} -> nextToken) (\s@ListImports' {} a -> s {nextToken = a} :: ListImports)++-- | Determines the field that the list of imports is sorted by. You can sort+-- by the @LastUpdatedDateTime@ field in ascending or descending order.+listImports_sortBy :: Lens.Lens' ListImports (Prelude.Maybe ImportSortBy)+listImports_sortBy = Lens.lens (\ListImports' {sortBy} -> sortBy) (\s@ListImports' {} a -> s {sortBy = a} :: ListImports)++instance Core.AWSRequest ListImports where+  type AWSResponse ListImports = ListImportsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListImportsResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> ( x+                            Data..?> "importSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListImports where+  hashWithSalt _salt ListImports' {..} =+    _salt+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sortBy++instance Prelude.NFData ListImports where+  rnf ListImports' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf filters+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortBy++instance Data.ToHeaders ListImports where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListImports where+  toJSON ListImports' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("botId" Data..=) Prelude.<$> botId,+            ("botVersion" Data..=) Prelude.<$> botVersion,+            ("filters" Data..=) Prelude.<$> filters,+            ("localeId" Data..=) Prelude.<$> localeId,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("sortBy" Data..=) Prelude.<$> sortBy+          ]+      )++instance Data.ToPath ListImports where+  toPath = Prelude.const "/imports/"++instance Data.ToQuery ListImports where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListImportsResponse' smart constructor.+data ListImportsResponse = ListImportsResponse'+  { -- | The unique identifier assigned by Amazon Lex to the bot.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot that was imported. It will always be @DRAFT@.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | Summary information for the imports that meet the filter criteria+    -- specified in the request. The length of the list is specified in the+    -- @maxResults@ parameter. If there are more imports available, the+    -- @nextToken@ field contains a token to get the next page of results.+    importSummaries :: Prelude.Maybe [ImportSummary],+    -- | The locale specified in the request.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | A token that indicates whether there are more results to return in a+    -- response to the @ListImports@ operation. If the @nextToken@ field is+    -- present, you send the contents as the @nextToken@ parameter of a+    -- @ListImports@ operation request to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListImportsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'listImportsResponse_botId' - The unique identifier assigned by Amazon Lex to the bot.+--+-- 'botVersion', 'listImportsResponse_botVersion' - The version of the bot that was imported. It will always be @DRAFT@.+--+-- 'importSummaries', 'listImportsResponse_importSummaries' - Summary information for the imports that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- @maxResults@ parameter. If there are more imports available, the+-- @nextToken@ field contains a token to get the next page of results.+--+-- 'localeId', 'listImportsResponse_localeId' - The locale specified in the request.+--+-- 'nextToken', 'listImportsResponse_nextToken' - A token that indicates whether there are more results to return in a+-- response to the @ListImports@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListImports@ operation request to get the next page of results.+--+-- 'httpStatus', 'listImportsResponse_httpStatus' - The response's http status code.+newListImportsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListImportsResponse+newListImportsResponse pHttpStatus_ =+  ListImportsResponse'+    { botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      importSummaries = Prelude.Nothing,+      localeId = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier assigned by Amazon Lex to the bot.+listImportsResponse_botId :: Lens.Lens' ListImportsResponse (Prelude.Maybe Prelude.Text)+listImportsResponse_botId = Lens.lens (\ListImportsResponse' {botId} -> botId) (\s@ListImportsResponse' {} a -> s {botId = a} :: ListImportsResponse)++-- | The version of the bot that was imported. It will always be @DRAFT@.+listImportsResponse_botVersion :: Lens.Lens' ListImportsResponse (Prelude.Maybe Prelude.Text)+listImportsResponse_botVersion = Lens.lens (\ListImportsResponse' {botVersion} -> botVersion) (\s@ListImportsResponse' {} a -> s {botVersion = a} :: ListImportsResponse)++-- | Summary information for the imports that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- @maxResults@ parameter. If there are more imports available, the+-- @nextToken@ field contains a token to get the next page of results.+listImportsResponse_importSummaries :: Lens.Lens' ListImportsResponse (Prelude.Maybe [ImportSummary])+listImportsResponse_importSummaries = Lens.lens (\ListImportsResponse' {importSummaries} -> importSummaries) (\s@ListImportsResponse' {} a -> s {importSummaries = a} :: ListImportsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The locale specified in the request.+listImportsResponse_localeId :: Lens.Lens' ListImportsResponse (Prelude.Maybe Prelude.Text)+listImportsResponse_localeId = Lens.lens (\ListImportsResponse' {localeId} -> localeId) (\s@ListImportsResponse' {} a -> s {localeId = a} :: ListImportsResponse)++-- | A token that indicates whether there are more results to return in a+-- response to the @ListImports@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListImports@ operation request to get the next page of results.+listImportsResponse_nextToken :: Lens.Lens' ListImportsResponse (Prelude.Maybe Prelude.Text)+listImportsResponse_nextToken = Lens.lens (\ListImportsResponse' {nextToken} -> nextToken) (\s@ListImportsResponse' {} a -> s {nextToken = a} :: ListImportsResponse)++-- | The response's http status code.+listImportsResponse_httpStatus :: Lens.Lens' ListImportsResponse Prelude.Int+listImportsResponse_httpStatus = Lens.lens (\ListImportsResponse' {httpStatus} -> httpStatus) (\s@ListImportsResponse' {} a -> s {httpStatus = a} :: ListImportsResponse)++instance Prelude.NFData ListImportsResponse where+  rnf ListImportsResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf importSummaries+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/ListIntents.hs view
@@ -0,0 +1,374 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.ListIntents+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get a list of intents that meet the specified criteria.+module Amazonka.LexV2Models.ListIntents+  ( -- * Creating a Request+    ListIntents (..),+    newListIntents,++    -- * Request Lenses+    listIntents_filters,+    listIntents_maxResults,+    listIntents_nextToken,+    listIntents_sortBy,+    listIntents_botId,+    listIntents_botVersion,+    listIntents_localeId,++    -- * Destructuring the Response+    ListIntentsResponse (..),+    newListIntentsResponse,++    -- * Response Lenses+    listIntentsResponse_botId,+    listIntentsResponse_botVersion,+    listIntentsResponse_intentSummaries,+    listIntentsResponse_localeId,+    listIntentsResponse_nextToken,+    listIntentsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListIntents' smart constructor.+data ListIntents = ListIntents'+  { -- | Provides the specification of a filter used to limit the intents in the+    -- response to only those that match the filter specification. You can only+    -- specify one filter and only one string to filter on.+    filters :: Prelude.Maybe (Prelude.NonEmpty IntentFilter),+    -- | The maximum number of intents to return in each page of results. If+    -- there are fewer results than the max page size, only the actual number+    -- of results are returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the response from the @ListIntents@ operation contains more results+    -- than specified in the @maxResults@ parameter, a token is returned in the+    -- response.+    --+    -- Use the returned token in the @nextToken@ parameter of a @ListIntents@+    -- request to return the next page of results. For a complete set of+    -- results, call the @ListIntents@ operation until the @nextToken@ returned+    -- in the response is null.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Determines the sort order for the response from the @ListIntents@+    -- operation. You can choose to sort by the intent name or last updated+    -- date in either ascending or descending order.+    sortBy :: Prelude.Maybe IntentSortBy,+    -- | The unique identifier of the bot that contains the intent.+    botId :: Prelude.Text,+    -- | The version of the bot that contains the intent.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale of the intents to list. The+    -- string must match one of the supported locales. For more information,+    -- see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListIntents' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listIntents_filters' - Provides the specification of a filter used to limit the intents in the+-- response to only those that match the filter specification. You can only+-- specify one filter and only one string to filter on.+--+-- 'maxResults', 'listIntents_maxResults' - The maximum number of intents to return in each page of results. If+-- there are fewer results than the max page size, only the actual number+-- of results are returned.+--+-- 'nextToken', 'listIntents_nextToken' - If the response from the @ListIntents@ operation contains more results+-- than specified in the @maxResults@ parameter, a token is returned in the+-- response.+--+-- Use the returned token in the @nextToken@ parameter of a @ListIntents@+-- request to return the next page of results. For a complete set of+-- results, call the @ListIntents@ operation until the @nextToken@ returned+-- in the response is null.+--+-- 'sortBy', 'listIntents_sortBy' - Determines the sort order for the response from the @ListIntents@+-- operation. You can choose to sort by the intent name or last updated+-- date in either ascending or descending order.+--+-- 'botId', 'listIntents_botId' - The unique identifier of the bot that contains the intent.+--+-- 'botVersion', 'listIntents_botVersion' - The version of the bot that contains the intent.+--+-- 'localeId', 'listIntents_localeId' - The identifier of the language and locale of the intents to list. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+newListIntents ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  ListIntents+newListIntents pBotId_ pBotVersion_ pLocaleId_ =+  ListIntents'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sortBy = Prelude.Nothing,+      botId = pBotId_,+      botVersion = pBotVersion_,+      localeId = pLocaleId_+    }++-- | Provides the specification of a filter used to limit the intents in the+-- response to only those that match the filter specification. You can only+-- specify one filter and only one string to filter on.+listIntents_filters :: Lens.Lens' ListIntents (Prelude.Maybe (Prelude.NonEmpty IntentFilter))+listIntents_filters = Lens.lens (\ListIntents' {filters} -> filters) (\s@ListIntents' {} a -> s {filters = a} :: ListIntents) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of intents to return in each page of results. If+-- there are fewer results than the max page size, only the actual number+-- of results are returned.+listIntents_maxResults :: Lens.Lens' ListIntents (Prelude.Maybe Prelude.Natural)+listIntents_maxResults = Lens.lens (\ListIntents' {maxResults} -> maxResults) (\s@ListIntents' {} a -> s {maxResults = a} :: ListIntents)++-- | If the response from the @ListIntents@ operation contains more results+-- than specified in the @maxResults@ parameter, a token is returned in the+-- response.+--+-- Use the returned token in the @nextToken@ parameter of a @ListIntents@+-- request to return the next page of results. For a complete set of+-- results, call the @ListIntents@ operation until the @nextToken@ returned+-- in the response is null.+listIntents_nextToken :: Lens.Lens' ListIntents (Prelude.Maybe Prelude.Text)+listIntents_nextToken = Lens.lens (\ListIntents' {nextToken} -> nextToken) (\s@ListIntents' {} a -> s {nextToken = a} :: ListIntents)++-- | Determines the sort order for the response from the @ListIntents@+-- operation. You can choose to sort by the intent name or last updated+-- date in either ascending or descending order.+listIntents_sortBy :: Lens.Lens' ListIntents (Prelude.Maybe IntentSortBy)+listIntents_sortBy = Lens.lens (\ListIntents' {sortBy} -> sortBy) (\s@ListIntents' {} a -> s {sortBy = a} :: ListIntents)++-- | The unique identifier of the bot that contains the intent.+listIntents_botId :: Lens.Lens' ListIntents Prelude.Text+listIntents_botId = Lens.lens (\ListIntents' {botId} -> botId) (\s@ListIntents' {} a -> s {botId = a} :: ListIntents)++-- | The version of the bot that contains the intent.+listIntents_botVersion :: Lens.Lens' ListIntents Prelude.Text+listIntents_botVersion = Lens.lens (\ListIntents' {botVersion} -> botVersion) (\s@ListIntents' {} a -> s {botVersion = a} :: ListIntents)++-- | The identifier of the language and locale of the intents to list. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+listIntents_localeId :: Lens.Lens' ListIntents Prelude.Text+listIntents_localeId = Lens.lens (\ListIntents' {localeId} -> localeId) (\s@ListIntents' {} a -> s {localeId = a} :: ListIntents)++instance Core.AWSRequest ListIntents where+  type AWSResponse ListIntents = ListIntentsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListIntentsResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> ( x+                            Data..?> "intentSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListIntents where+  hashWithSalt _salt ListIntents' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sortBy+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData ListIntents where+  rnf ListIntents' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortBy+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders ListIntents where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListIntents where+  toJSON ListIntents' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("sortBy" Data..=) Prelude.<$> sortBy+          ]+      )++instance Data.ToPath ListIntents where+  toPath ListIntents' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/intents/"+      ]++instance Data.ToQuery ListIntents where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListIntentsResponse' smart constructor.+data ListIntentsResponse = ListIntentsResponse'+  { -- | The identifier of the bot that contains the intent.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot that contains the intent.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | Summary information for the intents that meet the filter criteria+    -- specified in the request. The length of the list is specified in the+    -- @maxResults@ parameter of the request. If there are more intents+    -- available, the @nextToken@ field contains a token to get the next page+    -- of results.+    intentSummaries :: Prelude.Maybe [IntentSummary],+    -- | The language and locale of the intents in the list.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | A token that indicates whether there are more results to return in a+    -- response to the @ListIntents@ operation. If the @nextToken@ field is+    -- present, you send the contents as the @nextToken@ parameter of a+    -- @ListIntents@ operation request to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListIntentsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'listIntentsResponse_botId' - The identifier of the bot that contains the intent.+--+-- 'botVersion', 'listIntentsResponse_botVersion' - The version of the bot that contains the intent.+--+-- 'intentSummaries', 'listIntentsResponse_intentSummaries' - Summary information for the intents that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- @maxResults@ parameter of the request. If there are more intents+-- available, the @nextToken@ field contains a token to get the next page+-- of results.+--+-- 'localeId', 'listIntentsResponse_localeId' - The language and locale of the intents in the list.+--+-- 'nextToken', 'listIntentsResponse_nextToken' - A token that indicates whether there are more results to return in a+-- response to the @ListIntents@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListIntents@ operation request to get the next page of results.+--+-- 'httpStatus', 'listIntentsResponse_httpStatus' - The response's http status code.+newListIntentsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListIntentsResponse+newListIntentsResponse pHttpStatus_ =+  ListIntentsResponse'+    { botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      intentSummaries = Prelude.Nothing,+      localeId = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot that contains the intent.+listIntentsResponse_botId :: Lens.Lens' ListIntentsResponse (Prelude.Maybe Prelude.Text)+listIntentsResponse_botId = Lens.lens (\ListIntentsResponse' {botId} -> botId) (\s@ListIntentsResponse' {} a -> s {botId = a} :: ListIntentsResponse)++-- | The version of the bot that contains the intent.+listIntentsResponse_botVersion :: Lens.Lens' ListIntentsResponse (Prelude.Maybe Prelude.Text)+listIntentsResponse_botVersion = Lens.lens (\ListIntentsResponse' {botVersion} -> botVersion) (\s@ListIntentsResponse' {} a -> s {botVersion = a} :: ListIntentsResponse)++-- | Summary information for the intents that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- @maxResults@ parameter of the request. If there are more intents+-- available, the @nextToken@ field contains a token to get the next page+-- of results.+listIntentsResponse_intentSummaries :: Lens.Lens' ListIntentsResponse (Prelude.Maybe [IntentSummary])+listIntentsResponse_intentSummaries = Lens.lens (\ListIntentsResponse' {intentSummaries} -> intentSummaries) (\s@ListIntentsResponse' {} a -> s {intentSummaries = a} :: ListIntentsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The language and locale of the intents in the list.+listIntentsResponse_localeId :: Lens.Lens' ListIntentsResponse (Prelude.Maybe Prelude.Text)+listIntentsResponse_localeId = Lens.lens (\ListIntentsResponse' {localeId} -> localeId) (\s@ListIntentsResponse' {} a -> s {localeId = a} :: ListIntentsResponse)++-- | A token that indicates whether there are more results to return in a+-- response to the @ListIntents@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListIntents@ operation request to get the next page of results.+listIntentsResponse_nextToken :: Lens.Lens' ListIntentsResponse (Prelude.Maybe Prelude.Text)+listIntentsResponse_nextToken = Lens.lens (\ListIntentsResponse' {nextToken} -> nextToken) (\s@ListIntentsResponse' {} a -> s {nextToken = a} :: ListIntentsResponse)++-- | The response's http status code.+listIntentsResponse_httpStatus :: Lens.Lens' ListIntentsResponse Prelude.Int+listIntentsResponse_httpStatus = Lens.lens (\ListIntentsResponse' {httpStatus} -> httpStatus) (\s@ListIntentsResponse' {} a -> s {httpStatus = a} :: ListIntentsResponse)++instance Prelude.NFData ListIntentsResponse where+  rnf ListIntentsResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf intentSummaries+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/ListRecommendedIntents.hs view
@@ -0,0 +1,374 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.ListRecommendedIntents+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a list of recommended intents provided by the bot recommendation+-- that you can use in your bot. Intents in the response are ordered by+-- relevance.+module Amazonka.LexV2Models.ListRecommendedIntents+  ( -- * Creating a Request+    ListRecommendedIntents (..),+    newListRecommendedIntents,++    -- * Request Lenses+    listRecommendedIntents_maxResults,+    listRecommendedIntents_nextToken,+    listRecommendedIntents_botId,+    listRecommendedIntents_botVersion,+    listRecommendedIntents_localeId,+    listRecommendedIntents_botRecommendationId,++    -- * Destructuring the Response+    ListRecommendedIntentsResponse (..),+    newListRecommendedIntentsResponse,++    -- * Response Lenses+    listRecommendedIntentsResponse_botId,+    listRecommendedIntentsResponse_botRecommendationId,+    listRecommendedIntentsResponse_botVersion,+    listRecommendedIntentsResponse_localeId,+    listRecommendedIntentsResponse_nextToken,+    listRecommendedIntentsResponse_summaryList,+    listRecommendedIntentsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListRecommendedIntents' smart constructor.+data ListRecommendedIntents = ListRecommendedIntents'+  { -- | The maximum number of bot recommendations to return in each page of+    -- results. If there are fewer results than the max page size, only the+    -- actual number of results are returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the response from the ListRecommendedIntents operation contains more+    -- results than specified in the maxResults parameter, a token is returned+    -- in the response. Use that token in the nextToken parameter to return the+    -- next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the bot associated with the recommended+    -- intents.+    botId :: Prelude.Text,+    -- | The version of the bot that contains the recommended intents.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale of the recommended intents.+    localeId :: Prelude.Text,+    -- | The identifier of the bot recommendation that contains the recommended+    -- intents.+    botRecommendationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecommendedIntents' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listRecommendedIntents_maxResults' - The maximum number of bot recommendations to return in each page of+-- results. If there are fewer results than the max page size, only the+-- actual number of results are returned.+--+-- 'nextToken', 'listRecommendedIntents_nextToken' - If the response from the ListRecommendedIntents operation contains more+-- results than specified in the maxResults parameter, a token is returned+-- in the response. Use that token in the nextToken parameter to return the+-- next page of results.+--+-- 'botId', 'listRecommendedIntents_botId' - The unique identifier of the bot associated with the recommended+-- intents.+--+-- 'botVersion', 'listRecommendedIntents_botVersion' - The version of the bot that contains the recommended intents.+--+-- 'localeId', 'listRecommendedIntents_localeId' - The identifier of the language and locale of the recommended intents.+--+-- 'botRecommendationId', 'listRecommendedIntents_botRecommendationId' - The identifier of the bot recommendation that contains the recommended+-- intents.+newListRecommendedIntents ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  -- | 'botRecommendationId'+  Prelude.Text ->+  ListRecommendedIntents+newListRecommendedIntents+  pBotId_+  pBotVersion_+  pLocaleId_+  pBotRecommendationId_ =+    ListRecommendedIntents'+      { maxResults =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_,+        botRecommendationId = pBotRecommendationId_+      }++-- | The maximum number of bot recommendations to return in each page of+-- results. If there are fewer results than the max page size, only the+-- actual number of results are returned.+listRecommendedIntents_maxResults :: Lens.Lens' ListRecommendedIntents (Prelude.Maybe Prelude.Natural)+listRecommendedIntents_maxResults = Lens.lens (\ListRecommendedIntents' {maxResults} -> maxResults) (\s@ListRecommendedIntents' {} a -> s {maxResults = a} :: ListRecommendedIntents)++-- | If the response from the ListRecommendedIntents operation contains more+-- results than specified in the maxResults parameter, a token is returned+-- in the response. Use that token in the nextToken parameter to return the+-- next page of results.+listRecommendedIntents_nextToken :: Lens.Lens' ListRecommendedIntents (Prelude.Maybe Prelude.Text)+listRecommendedIntents_nextToken = Lens.lens (\ListRecommendedIntents' {nextToken} -> nextToken) (\s@ListRecommendedIntents' {} a -> s {nextToken = a} :: ListRecommendedIntents)++-- | The unique identifier of the bot associated with the recommended+-- intents.+listRecommendedIntents_botId :: Lens.Lens' ListRecommendedIntents Prelude.Text+listRecommendedIntents_botId = Lens.lens (\ListRecommendedIntents' {botId} -> botId) (\s@ListRecommendedIntents' {} a -> s {botId = a} :: ListRecommendedIntents)++-- | The version of the bot that contains the recommended intents.+listRecommendedIntents_botVersion :: Lens.Lens' ListRecommendedIntents Prelude.Text+listRecommendedIntents_botVersion = Lens.lens (\ListRecommendedIntents' {botVersion} -> botVersion) (\s@ListRecommendedIntents' {} a -> s {botVersion = a} :: ListRecommendedIntents)++-- | The identifier of the language and locale of the recommended intents.+listRecommendedIntents_localeId :: Lens.Lens' ListRecommendedIntents Prelude.Text+listRecommendedIntents_localeId = Lens.lens (\ListRecommendedIntents' {localeId} -> localeId) (\s@ListRecommendedIntents' {} a -> s {localeId = a} :: ListRecommendedIntents)++-- | The identifier of the bot recommendation that contains the recommended+-- intents.+listRecommendedIntents_botRecommendationId :: Lens.Lens' ListRecommendedIntents Prelude.Text+listRecommendedIntents_botRecommendationId = Lens.lens (\ListRecommendedIntents' {botRecommendationId} -> botRecommendationId) (\s@ListRecommendedIntents' {} a -> s {botRecommendationId = a} :: ListRecommendedIntents)++instance Core.AWSRequest ListRecommendedIntents where+  type+    AWSResponse ListRecommendedIntents =+      ListRecommendedIntentsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListRecommendedIntentsResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botRecommendationId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "summaryList" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListRecommendedIntents where+  hashWithSalt _salt ListRecommendedIntents' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` botRecommendationId++instance Prelude.NFData ListRecommendedIntents where+  rnf ListRecommendedIntents' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf botRecommendationId++instance Data.ToHeaders ListRecommendedIntents where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListRecommendedIntents where+  toJSON ListRecommendedIntents' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListRecommendedIntents where+  toPath ListRecommendedIntents' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/botrecommendations/",+        Data.toBS botRecommendationId,+        "/intents"+      ]++instance Data.ToQuery ListRecommendedIntents where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListRecommendedIntentsResponse' smart constructor.+data ListRecommendedIntentsResponse = ListRecommendedIntentsResponse'+  { -- | The unique identifier of the bot associated with the recommended intent.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the bot recommendation that contains the recommended+    -- intent.+    botRecommendationId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot that contains the intent.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the language and locale of the intents to list. The+    -- string must match one of the supported locales. For more information,+    -- see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | A token that indicates whether there are more results to return in a+    -- response to the ListRecommendedIntents operation. If the nextToken field+    -- is present, you send the contents as the nextToken parameter of a+    -- ListRecommendedIntents operation request to get the next page of+    -- results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Summary information for the intents that meet the filter criteria+    -- specified in the request. The length of the list is specified in the+    -- maxResults parameter of the request. If there are more intents+    -- available, the nextToken field contains a token to get the next page of+    -- results.+    summaryList :: Prelude.Maybe [RecommendedIntentSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListRecommendedIntentsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'listRecommendedIntentsResponse_botId' - The unique identifier of the bot associated with the recommended intent.+--+-- 'botRecommendationId', 'listRecommendedIntentsResponse_botRecommendationId' - The identifier of the bot recommendation that contains the recommended+-- intent.+--+-- 'botVersion', 'listRecommendedIntentsResponse_botVersion' - The version of the bot that contains the intent.+--+-- 'localeId', 'listRecommendedIntentsResponse_localeId' - The identifier of the language and locale of the intents to list. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+--+-- 'nextToken', 'listRecommendedIntentsResponse_nextToken' - A token that indicates whether there are more results to return in a+-- response to the ListRecommendedIntents operation. If the nextToken field+-- is present, you send the contents as the nextToken parameter of a+-- ListRecommendedIntents operation request to get the next page of+-- results.+--+-- 'summaryList', 'listRecommendedIntentsResponse_summaryList' - Summary information for the intents that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- maxResults parameter of the request. If there are more intents+-- available, the nextToken field contains a token to get the next page of+-- results.+--+-- 'httpStatus', 'listRecommendedIntentsResponse_httpStatus' - The response's http status code.+newListRecommendedIntentsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListRecommendedIntentsResponse+newListRecommendedIntentsResponse pHttpStatus_ =+  ListRecommendedIntentsResponse'+    { botId =+        Prelude.Nothing,+      botRecommendationId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      localeId = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      summaryList = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the bot associated with the recommended intent.+listRecommendedIntentsResponse_botId :: Lens.Lens' ListRecommendedIntentsResponse (Prelude.Maybe Prelude.Text)+listRecommendedIntentsResponse_botId = Lens.lens (\ListRecommendedIntentsResponse' {botId} -> botId) (\s@ListRecommendedIntentsResponse' {} a -> s {botId = a} :: ListRecommendedIntentsResponse)++-- | The identifier of the bot recommendation that contains the recommended+-- intent.+listRecommendedIntentsResponse_botRecommendationId :: Lens.Lens' ListRecommendedIntentsResponse (Prelude.Maybe Prelude.Text)+listRecommendedIntentsResponse_botRecommendationId = Lens.lens (\ListRecommendedIntentsResponse' {botRecommendationId} -> botRecommendationId) (\s@ListRecommendedIntentsResponse' {} a -> s {botRecommendationId = a} :: ListRecommendedIntentsResponse)++-- | The version of the bot that contains the intent.+listRecommendedIntentsResponse_botVersion :: Lens.Lens' ListRecommendedIntentsResponse (Prelude.Maybe Prelude.Text)+listRecommendedIntentsResponse_botVersion = Lens.lens (\ListRecommendedIntentsResponse' {botVersion} -> botVersion) (\s@ListRecommendedIntentsResponse' {} a -> s {botVersion = a} :: ListRecommendedIntentsResponse)++-- | The identifier of the language and locale of the intents to list. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+listRecommendedIntentsResponse_localeId :: Lens.Lens' ListRecommendedIntentsResponse (Prelude.Maybe Prelude.Text)+listRecommendedIntentsResponse_localeId = Lens.lens (\ListRecommendedIntentsResponse' {localeId} -> localeId) (\s@ListRecommendedIntentsResponse' {} a -> s {localeId = a} :: ListRecommendedIntentsResponse)++-- | A token that indicates whether there are more results to return in a+-- response to the ListRecommendedIntents operation. If the nextToken field+-- is present, you send the contents as the nextToken parameter of a+-- ListRecommendedIntents operation request to get the next page of+-- results.+listRecommendedIntentsResponse_nextToken :: Lens.Lens' ListRecommendedIntentsResponse (Prelude.Maybe Prelude.Text)+listRecommendedIntentsResponse_nextToken = Lens.lens (\ListRecommendedIntentsResponse' {nextToken} -> nextToken) (\s@ListRecommendedIntentsResponse' {} a -> s {nextToken = a} :: ListRecommendedIntentsResponse)++-- | Summary information for the intents that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- maxResults parameter of the request. If there are more intents+-- available, the nextToken field contains a token to get the next page of+-- results.+listRecommendedIntentsResponse_summaryList :: Lens.Lens' ListRecommendedIntentsResponse (Prelude.Maybe [RecommendedIntentSummary])+listRecommendedIntentsResponse_summaryList = Lens.lens (\ListRecommendedIntentsResponse' {summaryList} -> summaryList) (\s@ListRecommendedIntentsResponse' {} a -> s {summaryList = a} :: ListRecommendedIntentsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listRecommendedIntentsResponse_httpStatus :: Lens.Lens' ListRecommendedIntentsResponse Prelude.Int+listRecommendedIntentsResponse_httpStatus = Lens.lens (\ListRecommendedIntentsResponse' {httpStatus} -> httpStatus) (\s@ListRecommendedIntentsResponse' {} a -> s {httpStatus = a} :: ListRecommendedIntentsResponse)++instance+  Prelude.NFData+    ListRecommendedIntentsResponse+  where+  rnf ListRecommendedIntentsResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botRecommendationId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf summaryList+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/ListSlotTypes.hs view
@@ -0,0 +1,364 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.ListSlotTypes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a list of slot types that match the specified criteria.+module Amazonka.LexV2Models.ListSlotTypes+  ( -- * Creating a Request+    ListSlotTypes (..),+    newListSlotTypes,++    -- * Request Lenses+    listSlotTypes_filters,+    listSlotTypes_maxResults,+    listSlotTypes_nextToken,+    listSlotTypes_sortBy,+    listSlotTypes_botId,+    listSlotTypes_botVersion,+    listSlotTypes_localeId,++    -- * Destructuring the Response+    ListSlotTypesResponse (..),+    newListSlotTypesResponse,++    -- * Response Lenses+    listSlotTypesResponse_botId,+    listSlotTypesResponse_botVersion,+    listSlotTypesResponse_localeId,+    listSlotTypesResponse_nextToken,+    listSlotTypesResponse_slotTypeSummaries,+    listSlotTypesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSlotTypes' smart constructor.+data ListSlotTypes = ListSlotTypes'+  { -- | Provides the specification of a filter used to limit the slot types in+    -- the response to only those that match the filter specification. You can+    -- only specify one filter and only one string to filter on.+    filters :: Prelude.Maybe (Prelude.NonEmpty SlotTypeFilter),+    -- | The maximum number of slot types to return in each page of results. If+    -- there are fewer results than the max page size, only the actual number+    -- of results are returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the response from the @ListSlotTypes@ operation contains more results+    -- than specified in the @maxResults@ parameter, a token is returned in the+    -- response. Use that token in the @nextToken@ parameter to return the next+    -- page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Determines the sort order for the response from the @ListSlotTypes@+    -- operation. You can choose to sort by the slot type name or last updated+    -- date in either ascending or descending order.+    sortBy :: Prelude.Maybe SlotTypeSortBy,+    -- | The unique identifier of the bot that contains the slot types.+    botId :: Prelude.Text,+    -- | The version of the bot that contains the slot type.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale of the slot types to list. The+    -- string must match one of the supported locales. For more information,+    -- see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSlotTypes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listSlotTypes_filters' - Provides the specification of a filter used to limit the slot types in+-- the response to only those that match the filter specification. You can+-- only specify one filter and only one string to filter on.+--+-- 'maxResults', 'listSlotTypes_maxResults' - The maximum number of slot types to return in each page of results. If+-- there are fewer results than the max page size, only the actual number+-- of results are returned.+--+-- 'nextToken', 'listSlotTypes_nextToken' - If the response from the @ListSlotTypes@ operation contains more results+-- than specified in the @maxResults@ parameter, a token is returned in the+-- response. Use that token in the @nextToken@ parameter to return the next+-- page of results.+--+-- 'sortBy', 'listSlotTypes_sortBy' - Determines the sort order for the response from the @ListSlotTypes@+-- operation. You can choose to sort by the slot type name or last updated+-- date in either ascending or descending order.+--+-- 'botId', 'listSlotTypes_botId' - The unique identifier of the bot that contains the slot types.+--+-- 'botVersion', 'listSlotTypes_botVersion' - The version of the bot that contains the slot type.+--+-- 'localeId', 'listSlotTypes_localeId' - The identifier of the language and locale of the slot types to list. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+newListSlotTypes ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  ListSlotTypes+newListSlotTypes pBotId_ pBotVersion_ pLocaleId_ =+  ListSlotTypes'+    { filters = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sortBy = Prelude.Nothing,+      botId = pBotId_,+      botVersion = pBotVersion_,+      localeId = pLocaleId_+    }++-- | Provides the specification of a filter used to limit the slot types in+-- the response to only those that match the filter specification. You can+-- only specify one filter and only one string to filter on.+listSlotTypes_filters :: Lens.Lens' ListSlotTypes (Prelude.Maybe (Prelude.NonEmpty SlotTypeFilter))+listSlotTypes_filters = Lens.lens (\ListSlotTypes' {filters} -> filters) (\s@ListSlotTypes' {} a -> s {filters = a} :: ListSlotTypes) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of slot types to return in each page of results. If+-- there are fewer results than the max page size, only the actual number+-- of results are returned.+listSlotTypes_maxResults :: Lens.Lens' ListSlotTypes (Prelude.Maybe Prelude.Natural)+listSlotTypes_maxResults = Lens.lens (\ListSlotTypes' {maxResults} -> maxResults) (\s@ListSlotTypes' {} a -> s {maxResults = a} :: ListSlotTypes)++-- | If the response from the @ListSlotTypes@ operation contains more results+-- than specified in the @maxResults@ parameter, a token is returned in the+-- response. Use that token in the @nextToken@ parameter to return the next+-- page of results.+listSlotTypes_nextToken :: Lens.Lens' ListSlotTypes (Prelude.Maybe Prelude.Text)+listSlotTypes_nextToken = Lens.lens (\ListSlotTypes' {nextToken} -> nextToken) (\s@ListSlotTypes' {} a -> s {nextToken = a} :: ListSlotTypes)++-- | Determines the sort order for the response from the @ListSlotTypes@+-- operation. You can choose to sort by the slot type name or last updated+-- date in either ascending or descending order.+listSlotTypes_sortBy :: Lens.Lens' ListSlotTypes (Prelude.Maybe SlotTypeSortBy)+listSlotTypes_sortBy = Lens.lens (\ListSlotTypes' {sortBy} -> sortBy) (\s@ListSlotTypes' {} a -> s {sortBy = a} :: ListSlotTypes)++-- | The unique identifier of the bot that contains the slot types.+listSlotTypes_botId :: Lens.Lens' ListSlotTypes Prelude.Text+listSlotTypes_botId = Lens.lens (\ListSlotTypes' {botId} -> botId) (\s@ListSlotTypes' {} a -> s {botId = a} :: ListSlotTypes)++-- | The version of the bot that contains the slot type.+listSlotTypes_botVersion :: Lens.Lens' ListSlotTypes Prelude.Text+listSlotTypes_botVersion = Lens.lens (\ListSlotTypes' {botVersion} -> botVersion) (\s@ListSlotTypes' {} a -> s {botVersion = a} :: ListSlotTypes)++-- | The identifier of the language and locale of the slot types to list. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+listSlotTypes_localeId :: Lens.Lens' ListSlotTypes Prelude.Text+listSlotTypes_localeId = Lens.lens (\ListSlotTypes' {localeId} -> localeId) (\s@ListSlotTypes' {} a -> s {localeId = a} :: ListSlotTypes)++instance Core.AWSRequest ListSlotTypes where+  type+    AWSResponse ListSlotTypes =+      ListSlotTypesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSlotTypesResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> ( x+                            Data..?> "slotTypeSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListSlotTypes where+  hashWithSalt _salt ListSlotTypes' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sortBy+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData ListSlotTypes where+  rnf ListSlotTypes' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortBy+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders ListSlotTypes where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSlotTypes where+  toJSON ListSlotTypes' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("sortBy" Data..=) Prelude.<$> sortBy+          ]+      )++instance Data.ToPath ListSlotTypes where+  toPath ListSlotTypes' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/slottypes/"+      ]++instance Data.ToQuery ListSlotTypes where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSlotTypesResponse' smart constructor.+data ListSlotTypesResponse = ListSlotTypesResponse'+  { -- | The identifier of the bot that contains the slot types.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot that contains the slot types.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The language and local of the slot types in the list.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | A token that indicates whether there are more results to return in a+    -- response to the @ListSlotTypes@ operation. If the @nextToken@ field is+    -- present, you send the contents as the @nextToken@ parameter of a+    -- @ListSlotTypes@ operation request to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Summary information for the slot types that meet the filter criteria+    -- specified in the request. The length of the list is specified in the+    -- @maxResults@ parameter of the request. If there are more slot types+    -- available, the @nextToken@ field contains a token to get the next page+    -- of results.+    slotTypeSummaries :: Prelude.Maybe [SlotTypeSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSlotTypesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'listSlotTypesResponse_botId' - The identifier of the bot that contains the slot types.+--+-- 'botVersion', 'listSlotTypesResponse_botVersion' - The version of the bot that contains the slot types.+--+-- 'localeId', 'listSlotTypesResponse_localeId' - The language and local of the slot types in the list.+--+-- 'nextToken', 'listSlotTypesResponse_nextToken' - A token that indicates whether there are more results to return in a+-- response to the @ListSlotTypes@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListSlotTypes@ operation request to get the next page of results.+--+-- 'slotTypeSummaries', 'listSlotTypesResponse_slotTypeSummaries' - Summary information for the slot types that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- @maxResults@ parameter of the request. If there are more slot types+-- available, the @nextToken@ field contains a token to get the next page+-- of results.+--+-- 'httpStatus', 'listSlotTypesResponse_httpStatus' - The response's http status code.+newListSlotTypesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSlotTypesResponse+newListSlotTypesResponse pHttpStatus_ =+  ListSlotTypesResponse'+    { botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      localeId = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      slotTypeSummaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot that contains the slot types.+listSlotTypesResponse_botId :: Lens.Lens' ListSlotTypesResponse (Prelude.Maybe Prelude.Text)+listSlotTypesResponse_botId = Lens.lens (\ListSlotTypesResponse' {botId} -> botId) (\s@ListSlotTypesResponse' {} a -> s {botId = a} :: ListSlotTypesResponse)++-- | The version of the bot that contains the slot types.+listSlotTypesResponse_botVersion :: Lens.Lens' ListSlotTypesResponse (Prelude.Maybe Prelude.Text)+listSlotTypesResponse_botVersion = Lens.lens (\ListSlotTypesResponse' {botVersion} -> botVersion) (\s@ListSlotTypesResponse' {} a -> s {botVersion = a} :: ListSlotTypesResponse)++-- | The language and local of the slot types in the list.+listSlotTypesResponse_localeId :: Lens.Lens' ListSlotTypesResponse (Prelude.Maybe Prelude.Text)+listSlotTypesResponse_localeId = Lens.lens (\ListSlotTypesResponse' {localeId} -> localeId) (\s@ListSlotTypesResponse' {} a -> s {localeId = a} :: ListSlotTypesResponse)++-- | A token that indicates whether there are more results to return in a+-- response to the @ListSlotTypes@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListSlotTypes@ operation request to get the next page of results.+listSlotTypesResponse_nextToken :: Lens.Lens' ListSlotTypesResponse (Prelude.Maybe Prelude.Text)+listSlotTypesResponse_nextToken = Lens.lens (\ListSlotTypesResponse' {nextToken} -> nextToken) (\s@ListSlotTypesResponse' {} a -> s {nextToken = a} :: ListSlotTypesResponse)++-- | Summary information for the slot types that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- @maxResults@ parameter of the request. If there are more slot types+-- available, the @nextToken@ field contains a token to get the next page+-- of results.+listSlotTypesResponse_slotTypeSummaries :: Lens.Lens' ListSlotTypesResponse (Prelude.Maybe [SlotTypeSummary])+listSlotTypesResponse_slotTypeSummaries = Lens.lens (\ListSlotTypesResponse' {slotTypeSummaries} -> slotTypeSummaries) (\s@ListSlotTypesResponse' {} a -> s {slotTypeSummaries = a} :: ListSlotTypesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSlotTypesResponse_httpStatus :: Lens.Lens' ListSlotTypesResponse Prelude.Int+listSlotTypesResponse_httpStatus = Lens.lens (\ListSlotTypesResponse' {httpStatus} -> httpStatus) (\s@ListSlotTypesResponse' {} a -> s {httpStatus = a} :: ListSlotTypesResponse)++instance Prelude.NFData ListSlotTypesResponse where+  rnf ListSlotTypesResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf slotTypeSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/ListSlots.hs view
@@ -0,0 +1,391 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.ListSlots+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a list of slots that match the specified criteria.+module Amazonka.LexV2Models.ListSlots+  ( -- * Creating a Request+    ListSlots (..),+    newListSlots,++    -- * Request Lenses+    listSlots_filters,+    listSlots_maxResults,+    listSlots_nextToken,+    listSlots_sortBy,+    listSlots_botId,+    listSlots_botVersion,+    listSlots_localeId,+    listSlots_intentId,++    -- * Destructuring the Response+    ListSlotsResponse (..),+    newListSlotsResponse,++    -- * Response Lenses+    listSlotsResponse_botId,+    listSlotsResponse_botVersion,+    listSlotsResponse_intentId,+    listSlotsResponse_localeId,+    listSlotsResponse_nextToken,+    listSlotsResponse_slotSummaries,+    listSlotsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSlots' smart constructor.+data ListSlots = ListSlots'+  { -- | Provides the specification of a filter used to limit the slots in the+    -- response to only those that match the filter specification. You can only+    -- specify one filter and only one string to filter on.+    filters :: Prelude.Maybe (Prelude.NonEmpty SlotFilter),+    -- | The maximum number of slots to return in each page of results. If there+    -- are fewer results than the max page size, only the actual number of+    -- results are returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the response from the @ListSlots@ operation contains more results+    -- than specified in the @maxResults@ parameter, a token is returned in the+    -- response. Use that token in the @nextToken@ parameter to return the next+    -- page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Determines the sort order for the response from the @ListSlots@+    -- operation. You can choose to sort by the slot name or last updated date+    -- in either ascending or descending order.+    sortBy :: Prelude.Maybe SlotSortBy,+    -- | The identifier of the bot that contains the slot.+    botId :: Prelude.Text,+    -- | The version of the bot that contains the slot.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale of the slots to list. The+    -- string must match one of the supported locales. For more information,+    -- see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text,+    -- | The unique identifier of the intent that contains the slot.+    intentId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSlots' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filters', 'listSlots_filters' - Provides the specification of a filter used to limit the slots in the+-- response to only those that match the filter specification. You can only+-- specify one filter and only one string to filter on.+--+-- 'maxResults', 'listSlots_maxResults' - The maximum number of slots to return in each page of results. If there+-- are fewer results than the max page size, only the actual number of+-- results are returned.+--+-- 'nextToken', 'listSlots_nextToken' - If the response from the @ListSlots@ operation contains more results+-- than specified in the @maxResults@ parameter, a token is returned in the+-- response. Use that token in the @nextToken@ parameter to return the next+-- page of results.+--+-- 'sortBy', 'listSlots_sortBy' - Determines the sort order for the response from the @ListSlots@+-- operation. You can choose to sort by the slot name or last updated date+-- in either ascending or descending order.+--+-- 'botId', 'listSlots_botId' - The identifier of the bot that contains the slot.+--+-- 'botVersion', 'listSlots_botVersion' - The version of the bot that contains the slot.+--+-- 'localeId', 'listSlots_localeId' - The identifier of the language and locale of the slots to list. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+--+-- 'intentId', 'listSlots_intentId' - The unique identifier of the intent that contains the slot.+newListSlots ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  -- | 'intentId'+  Prelude.Text ->+  ListSlots+newListSlots+  pBotId_+  pBotVersion_+  pLocaleId_+  pIntentId_ =+    ListSlots'+      { filters = Prelude.Nothing,+        maxResults = Prelude.Nothing,+        nextToken = Prelude.Nothing,+        sortBy = Prelude.Nothing,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_,+        intentId = pIntentId_+      }++-- | Provides the specification of a filter used to limit the slots in the+-- response to only those that match the filter specification. You can only+-- specify one filter and only one string to filter on.+listSlots_filters :: Lens.Lens' ListSlots (Prelude.Maybe (Prelude.NonEmpty SlotFilter))+listSlots_filters = Lens.lens (\ListSlots' {filters} -> filters) (\s@ListSlots' {} a -> s {filters = a} :: ListSlots) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of slots to return in each page of results. If there+-- are fewer results than the max page size, only the actual number of+-- results are returned.+listSlots_maxResults :: Lens.Lens' ListSlots (Prelude.Maybe Prelude.Natural)+listSlots_maxResults = Lens.lens (\ListSlots' {maxResults} -> maxResults) (\s@ListSlots' {} a -> s {maxResults = a} :: ListSlots)++-- | If the response from the @ListSlots@ operation contains more results+-- than specified in the @maxResults@ parameter, a token is returned in the+-- response. Use that token in the @nextToken@ parameter to return the next+-- page of results.+listSlots_nextToken :: Lens.Lens' ListSlots (Prelude.Maybe Prelude.Text)+listSlots_nextToken = Lens.lens (\ListSlots' {nextToken} -> nextToken) (\s@ListSlots' {} a -> s {nextToken = a} :: ListSlots)++-- | Determines the sort order for the response from the @ListSlots@+-- operation. You can choose to sort by the slot name or last updated date+-- in either ascending or descending order.+listSlots_sortBy :: Lens.Lens' ListSlots (Prelude.Maybe SlotSortBy)+listSlots_sortBy = Lens.lens (\ListSlots' {sortBy} -> sortBy) (\s@ListSlots' {} a -> s {sortBy = a} :: ListSlots)++-- | The identifier of the bot that contains the slot.+listSlots_botId :: Lens.Lens' ListSlots Prelude.Text+listSlots_botId = Lens.lens (\ListSlots' {botId} -> botId) (\s@ListSlots' {} a -> s {botId = a} :: ListSlots)++-- | The version of the bot that contains the slot.+listSlots_botVersion :: Lens.Lens' ListSlots Prelude.Text+listSlots_botVersion = Lens.lens (\ListSlots' {botVersion} -> botVersion) (\s@ListSlots' {} a -> s {botVersion = a} :: ListSlots)++-- | The identifier of the language and locale of the slots to list. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+listSlots_localeId :: Lens.Lens' ListSlots Prelude.Text+listSlots_localeId = Lens.lens (\ListSlots' {localeId} -> localeId) (\s@ListSlots' {} a -> s {localeId = a} :: ListSlots)++-- | The unique identifier of the intent that contains the slot.+listSlots_intentId :: Lens.Lens' ListSlots Prelude.Text+listSlots_intentId = Lens.lens (\ListSlots' {intentId} -> intentId) (\s@ListSlots' {} a -> s {intentId = a} :: ListSlots)++instance Core.AWSRequest ListSlots where+  type AWSResponse ListSlots = ListSlotsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSlotsResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "intentId")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "nextToken")+            Prelude.<*> (x Data..?> "slotSummaries" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListSlots where+  hashWithSalt _salt ListSlots' {..} =+    _salt+      `Prelude.hashWithSalt` filters+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sortBy+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` intentId++instance Prelude.NFData ListSlots where+  rnf ListSlots' {..} =+    Prelude.rnf filters+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortBy+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf intentId++instance Data.ToHeaders ListSlots where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListSlots where+  toJSON ListSlots' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filters" Data..=) Prelude.<$> filters,+            ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextToken" Data..=) Prelude.<$> nextToken,+            ("sortBy" Data..=) Prelude.<$> sortBy+          ]+      )++instance Data.ToPath ListSlots where+  toPath ListSlots' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/intents/",+        Data.toBS intentId,+        "/slots/"+      ]++instance Data.ToQuery ListSlots where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSlotsResponse' smart constructor.+data ListSlotsResponse = ListSlotsResponse'+  { -- | The identifier of the bot that contains the slots.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot that contains the slots.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the intent that contains the slots.+    intentId :: Prelude.Maybe Prelude.Text,+    -- | The language and locale of the slots in the list.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | A token that indicates whether there are more results to return in a+    -- response to the @ListSlots@ operation. If the @nextToken@ field is+    -- present, you send the contents as the @nextToken@ parameter of a+    -- @ListSlots@ operation request to get the next page of results.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | Summary information for the slots that meet the filter criteria+    -- specified in the request. The length of the list is specified in the+    -- @maxResults@ parameter of the request. If there are more slots+    -- available, the @nextToken@ field contains a token to get the next page+    -- of results.+    slotSummaries :: Prelude.Maybe [SlotSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSlotsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'listSlotsResponse_botId' - The identifier of the bot that contains the slots.+--+-- 'botVersion', 'listSlotsResponse_botVersion' - The version of the bot that contains the slots.+--+-- 'intentId', 'listSlotsResponse_intentId' - The identifier of the intent that contains the slots.+--+-- 'localeId', 'listSlotsResponse_localeId' - The language and locale of the slots in the list.+--+-- 'nextToken', 'listSlotsResponse_nextToken' - A token that indicates whether there are more results to return in a+-- response to the @ListSlots@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListSlots@ operation request to get the next page of results.+--+-- 'slotSummaries', 'listSlotsResponse_slotSummaries' - Summary information for the slots that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- @maxResults@ parameter of the request. If there are more slots+-- available, the @nextToken@ field contains a token to get the next page+-- of results.+--+-- 'httpStatus', 'listSlotsResponse_httpStatus' - The response's http status code.+newListSlotsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSlotsResponse+newListSlotsResponse pHttpStatus_ =+  ListSlotsResponse'+    { botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      intentId = Prelude.Nothing,+      localeId = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      slotSummaries = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot that contains the slots.+listSlotsResponse_botId :: Lens.Lens' ListSlotsResponse (Prelude.Maybe Prelude.Text)+listSlotsResponse_botId = Lens.lens (\ListSlotsResponse' {botId} -> botId) (\s@ListSlotsResponse' {} a -> s {botId = a} :: ListSlotsResponse)++-- | The version of the bot that contains the slots.+listSlotsResponse_botVersion :: Lens.Lens' ListSlotsResponse (Prelude.Maybe Prelude.Text)+listSlotsResponse_botVersion = Lens.lens (\ListSlotsResponse' {botVersion} -> botVersion) (\s@ListSlotsResponse' {} a -> s {botVersion = a} :: ListSlotsResponse)++-- | The identifier of the intent that contains the slots.+listSlotsResponse_intentId :: Lens.Lens' ListSlotsResponse (Prelude.Maybe Prelude.Text)+listSlotsResponse_intentId = Lens.lens (\ListSlotsResponse' {intentId} -> intentId) (\s@ListSlotsResponse' {} a -> s {intentId = a} :: ListSlotsResponse)++-- | The language and locale of the slots in the list.+listSlotsResponse_localeId :: Lens.Lens' ListSlotsResponse (Prelude.Maybe Prelude.Text)+listSlotsResponse_localeId = Lens.lens (\ListSlotsResponse' {localeId} -> localeId) (\s@ListSlotsResponse' {} a -> s {localeId = a} :: ListSlotsResponse)++-- | A token that indicates whether there are more results to return in a+-- response to the @ListSlots@ operation. If the @nextToken@ field is+-- present, you send the contents as the @nextToken@ parameter of a+-- @ListSlots@ operation request to get the next page of results.+listSlotsResponse_nextToken :: Lens.Lens' ListSlotsResponse (Prelude.Maybe Prelude.Text)+listSlotsResponse_nextToken = Lens.lens (\ListSlotsResponse' {nextToken} -> nextToken) (\s@ListSlotsResponse' {} a -> s {nextToken = a} :: ListSlotsResponse)++-- | Summary information for the slots that meet the filter criteria+-- specified in the request. The length of the list is specified in the+-- @maxResults@ parameter of the request. If there are more slots+-- available, the @nextToken@ field contains a token to get the next page+-- of results.+listSlotsResponse_slotSummaries :: Lens.Lens' ListSlotsResponse (Prelude.Maybe [SlotSummary])+listSlotsResponse_slotSummaries = Lens.lens (\ListSlotsResponse' {slotSummaries} -> slotSummaries) (\s@ListSlotsResponse' {} a -> s {slotSummaries = a} :: ListSlotsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listSlotsResponse_httpStatus :: Lens.Lens' ListSlotsResponse Prelude.Int+listSlotsResponse_httpStatus = Lens.lens (\ListSlotsResponse' {httpStatus} -> httpStatus) (\s@ListSlotsResponse' {} a -> s {httpStatus = a} :: ListSlotsResponse)++instance Prelude.NFData ListSlotsResponse where+  rnf ListSlotsResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf intentId+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf slotSummaries+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/ListTagsForResource.hs view
@@ -0,0 +1,163 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.ListTagsForResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets a list of tags associated with a resource. Only bots, bot aliases,+-- and bot channels can have tags associated with them.+module Amazonka.LexV2Models.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceARN,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The Amazon Resource Name (ARN) of the resource to get a list of tags+    -- for.+    resourceARN :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceARN', 'listTagsForResource_resourceARN' - The Amazon Resource Name (ARN) of the resource to get a list of tags+-- for.+newListTagsForResource ::+  -- | 'resourceARN'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceARN_ =+  ListTagsForResource' {resourceARN = pResourceARN_}++-- | The Amazon Resource Name (ARN) of the resource to get a list of tags+-- for.+listTagsForResource_resourceARN :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceARN = Lens.lens (\ListTagsForResource' {resourceARN} -> resourceARN) (\s@ListTagsForResource' {} a -> s {resourceARN = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.get (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "tags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceARN++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceARN++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath ListTagsForResource where+  toPath ListTagsForResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceARN]++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | The tags associated with a resource.+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tags', 'listTagsForResourceResponse_tags' - The tags associated with a resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The tags associated with a resource.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+listTagsForResourceResponse_tags = Lens.lens (\ListTagsForResourceResponse' {tags} -> tags) (\s@ListTagsForResourceResponse' {} a -> s {tags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf tags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/SearchAssociatedTranscripts.hs view
@@ -0,0 +1,428 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.SearchAssociatedTranscripts+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Search for associated transcripts that meet the specified criteria.+module Amazonka.LexV2Models.SearchAssociatedTranscripts+  ( -- * Creating a Request+    SearchAssociatedTranscripts (..),+    newSearchAssociatedTranscripts,++    -- * Request Lenses+    searchAssociatedTranscripts_maxResults,+    searchAssociatedTranscripts_nextIndex,+    searchAssociatedTranscripts_searchOrder,+    searchAssociatedTranscripts_botId,+    searchAssociatedTranscripts_botVersion,+    searchAssociatedTranscripts_localeId,+    searchAssociatedTranscripts_botRecommendationId,+    searchAssociatedTranscripts_filters,++    -- * Destructuring the Response+    SearchAssociatedTranscriptsResponse (..),+    newSearchAssociatedTranscriptsResponse,++    -- * Response Lenses+    searchAssociatedTranscriptsResponse_associatedTranscripts,+    searchAssociatedTranscriptsResponse_botId,+    searchAssociatedTranscriptsResponse_botRecommendationId,+    searchAssociatedTranscriptsResponse_botVersion,+    searchAssociatedTranscriptsResponse_localeId,+    searchAssociatedTranscriptsResponse_nextIndex,+    searchAssociatedTranscriptsResponse_totalResults,+    searchAssociatedTranscriptsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newSearchAssociatedTranscripts' smart constructor.+data SearchAssociatedTranscripts = SearchAssociatedTranscripts'+  { -- | The maximum number of bot recommendations to return in each page of+    -- results. If there are fewer results than the max page size, only the+    -- actual number of results are returned.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the response from the SearchAssociatedTranscriptsRequest operation+    -- contains more results than specified in the maxResults parameter, an+    -- index is returned in the response. Use that index in the nextIndex+    -- parameter to return the next page of results.+    nextIndex :: Prelude.Maybe Prelude.Natural,+    -- | How SearchResults are ordered. Valid values are Ascending or Descending.+    -- The default is Descending.+    searchOrder :: Prelude.Maybe SearchOrder,+    -- | The unique identifier of the bot associated with the transcripts that+    -- you are searching.+    botId :: Prelude.Text,+    -- | The version of the bot containing the transcripts that you are+    -- searching.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale of the transcripts to search.+    -- The string must match one of the supported locales. For more+    -- information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+    localeId :: Prelude.Text,+    -- | The unique identifier of the bot recommendation associated with the+    -- transcripts to search.+    botRecommendationId :: Prelude.Text,+    -- | A list of filter objects.+    filters :: Prelude.NonEmpty AssociatedTranscriptFilter+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchAssociatedTranscripts' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'searchAssociatedTranscripts_maxResults' - The maximum number of bot recommendations to return in each page of+-- results. If there are fewer results than the max page size, only the+-- actual number of results are returned.+--+-- 'nextIndex', 'searchAssociatedTranscripts_nextIndex' - If the response from the SearchAssociatedTranscriptsRequest operation+-- contains more results than specified in the maxResults parameter, an+-- index is returned in the response. Use that index in the nextIndex+-- parameter to return the next page of results.+--+-- 'searchOrder', 'searchAssociatedTranscripts_searchOrder' - How SearchResults are ordered. Valid values are Ascending or Descending.+-- The default is Descending.+--+-- 'botId', 'searchAssociatedTranscripts_botId' - The unique identifier of the bot associated with the transcripts that+-- you are searching.+--+-- 'botVersion', 'searchAssociatedTranscripts_botVersion' - The version of the bot containing the transcripts that you are+-- searching.+--+-- 'localeId', 'searchAssociatedTranscripts_localeId' - The identifier of the language and locale of the transcripts to search.+-- The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+--+-- 'botRecommendationId', 'searchAssociatedTranscripts_botRecommendationId' - The unique identifier of the bot recommendation associated with the+-- transcripts to search.+--+-- 'filters', 'searchAssociatedTranscripts_filters' - A list of filter objects.+newSearchAssociatedTranscripts ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  -- | 'botRecommendationId'+  Prelude.Text ->+  -- | 'filters'+  Prelude.NonEmpty AssociatedTranscriptFilter ->+  SearchAssociatedTranscripts+newSearchAssociatedTranscripts+  pBotId_+  pBotVersion_+  pLocaleId_+  pBotRecommendationId_+  pFilters_ =+    SearchAssociatedTranscripts'+      { maxResults =+          Prelude.Nothing,+        nextIndex = Prelude.Nothing,+        searchOrder = Prelude.Nothing,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_,+        botRecommendationId = pBotRecommendationId_,+        filters = Lens.coerced Lens.# pFilters_+      }++-- | The maximum number of bot recommendations to return in each page of+-- results. If there are fewer results than the max page size, only the+-- actual number of results are returned.+searchAssociatedTranscripts_maxResults :: Lens.Lens' SearchAssociatedTranscripts (Prelude.Maybe Prelude.Natural)+searchAssociatedTranscripts_maxResults = Lens.lens (\SearchAssociatedTranscripts' {maxResults} -> maxResults) (\s@SearchAssociatedTranscripts' {} a -> s {maxResults = a} :: SearchAssociatedTranscripts)++-- | If the response from the SearchAssociatedTranscriptsRequest operation+-- contains more results than specified in the maxResults parameter, an+-- index is returned in the response. Use that index in the nextIndex+-- parameter to return the next page of results.+searchAssociatedTranscripts_nextIndex :: Lens.Lens' SearchAssociatedTranscripts (Prelude.Maybe Prelude.Natural)+searchAssociatedTranscripts_nextIndex = Lens.lens (\SearchAssociatedTranscripts' {nextIndex} -> nextIndex) (\s@SearchAssociatedTranscripts' {} a -> s {nextIndex = a} :: SearchAssociatedTranscripts)++-- | How SearchResults are ordered. Valid values are Ascending or Descending.+-- The default is Descending.+searchAssociatedTranscripts_searchOrder :: Lens.Lens' SearchAssociatedTranscripts (Prelude.Maybe SearchOrder)+searchAssociatedTranscripts_searchOrder = Lens.lens (\SearchAssociatedTranscripts' {searchOrder} -> searchOrder) (\s@SearchAssociatedTranscripts' {} a -> s {searchOrder = a} :: SearchAssociatedTranscripts)++-- | The unique identifier of the bot associated with the transcripts that+-- you are searching.+searchAssociatedTranscripts_botId :: Lens.Lens' SearchAssociatedTranscripts Prelude.Text+searchAssociatedTranscripts_botId = Lens.lens (\SearchAssociatedTranscripts' {botId} -> botId) (\s@SearchAssociatedTranscripts' {} a -> s {botId = a} :: SearchAssociatedTranscripts)++-- | The version of the bot containing the transcripts that you are+-- searching.+searchAssociatedTranscripts_botVersion :: Lens.Lens' SearchAssociatedTranscripts Prelude.Text+searchAssociatedTranscripts_botVersion = Lens.lens (\SearchAssociatedTranscripts' {botVersion} -> botVersion) (\s@SearchAssociatedTranscripts' {} a -> s {botVersion = a} :: SearchAssociatedTranscripts)++-- | The identifier of the language and locale of the transcripts to search.+-- The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+searchAssociatedTranscripts_localeId :: Lens.Lens' SearchAssociatedTranscripts Prelude.Text+searchAssociatedTranscripts_localeId = Lens.lens (\SearchAssociatedTranscripts' {localeId} -> localeId) (\s@SearchAssociatedTranscripts' {} a -> s {localeId = a} :: SearchAssociatedTranscripts)++-- | The unique identifier of the bot recommendation associated with the+-- transcripts to search.+searchAssociatedTranscripts_botRecommendationId :: Lens.Lens' SearchAssociatedTranscripts Prelude.Text+searchAssociatedTranscripts_botRecommendationId = Lens.lens (\SearchAssociatedTranscripts' {botRecommendationId} -> botRecommendationId) (\s@SearchAssociatedTranscripts' {} a -> s {botRecommendationId = a} :: SearchAssociatedTranscripts)++-- | A list of filter objects.+searchAssociatedTranscripts_filters :: Lens.Lens' SearchAssociatedTranscripts (Prelude.NonEmpty AssociatedTranscriptFilter)+searchAssociatedTranscripts_filters = Lens.lens (\SearchAssociatedTranscripts' {filters} -> filters) (\s@SearchAssociatedTranscripts' {} a -> s {filters = a} :: SearchAssociatedTranscripts) Prelude.. Lens.coerced++instance Core.AWSRequest SearchAssociatedTranscripts where+  type+    AWSResponse SearchAssociatedTranscripts =+      SearchAssociatedTranscriptsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          SearchAssociatedTranscriptsResponse'+            Prelude.<$> ( x+                            Data..?> "associatedTranscripts"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botRecommendationId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "nextIndex")+            Prelude.<*> (x Data..?> "totalResults")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable SearchAssociatedTranscripts where+  hashWithSalt _salt SearchAssociatedTranscripts' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextIndex+      `Prelude.hashWithSalt` searchOrder+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` botRecommendationId+      `Prelude.hashWithSalt` filters++instance Prelude.NFData SearchAssociatedTranscripts where+  rnf SearchAssociatedTranscripts' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextIndex+      `Prelude.seq` Prelude.rnf searchOrder+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf botRecommendationId+      `Prelude.seq` Prelude.rnf filters++instance Data.ToHeaders SearchAssociatedTranscripts where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON SearchAssociatedTranscripts where+  toJSON SearchAssociatedTranscripts' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("maxResults" Data..=) Prelude.<$> maxResults,+            ("nextIndex" Data..=) Prelude.<$> nextIndex,+            ("searchOrder" Data..=) Prelude.<$> searchOrder,+            Prelude.Just ("filters" Data..= filters)+          ]+      )++instance Data.ToPath SearchAssociatedTranscripts where+  toPath SearchAssociatedTranscripts' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/botrecommendations/",+        Data.toBS botRecommendationId,+        "/associatedtranscripts"+      ]++instance Data.ToQuery SearchAssociatedTranscripts where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newSearchAssociatedTranscriptsResponse' smart constructor.+data SearchAssociatedTranscriptsResponse = SearchAssociatedTranscriptsResponse'+  { -- | The object that contains the associated transcript that meet the+    -- criteria you specified.+    associatedTranscripts :: Prelude.Maybe [AssociatedTranscript],+    -- | The unique identifier of the bot associated with the transcripts that+    -- you are searching.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the bot recommendation associated with the+    -- transcripts to search.+    botRecommendationId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot containing the transcripts that you are+    -- searching.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the language and locale of the transcripts to search.+    -- The string must match one of the supported locales. For more+    -- information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+    localeId :: Prelude.Maybe Prelude.Text,+    -- | A index that indicates whether there are more results to return in a+    -- response to the SearchAssociatedTranscripts operation. If the nextIndex+    -- field is present, you send the contents as the nextIndex parameter of a+    -- SearchAssociatedTranscriptsRequest operation to get the next page of+    -- results.+    nextIndex :: Prelude.Maybe Prelude.Natural,+    -- | The total number of transcripts returned by the search.+    totalResults :: Prelude.Maybe Prelude.Natural,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SearchAssociatedTranscriptsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associatedTranscripts', 'searchAssociatedTranscriptsResponse_associatedTranscripts' - The object that contains the associated transcript that meet the+-- criteria you specified.+--+-- 'botId', 'searchAssociatedTranscriptsResponse_botId' - The unique identifier of the bot associated with the transcripts that+-- you are searching.+--+-- 'botRecommendationId', 'searchAssociatedTranscriptsResponse_botRecommendationId' - The unique identifier of the bot recommendation associated with the+-- transcripts to search.+--+-- 'botVersion', 'searchAssociatedTranscriptsResponse_botVersion' - The version of the bot containing the transcripts that you are+-- searching.+--+-- 'localeId', 'searchAssociatedTranscriptsResponse_localeId' - The identifier of the language and locale of the transcripts to search.+-- The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+--+-- 'nextIndex', 'searchAssociatedTranscriptsResponse_nextIndex' - A index that indicates whether there are more results to return in a+-- response to the SearchAssociatedTranscripts operation. If the nextIndex+-- field is present, you send the contents as the nextIndex parameter of a+-- SearchAssociatedTranscriptsRequest operation to get the next page of+-- results.+--+-- 'totalResults', 'searchAssociatedTranscriptsResponse_totalResults' - The total number of transcripts returned by the search.+--+-- 'httpStatus', 'searchAssociatedTranscriptsResponse_httpStatus' - The response's http status code.+newSearchAssociatedTranscriptsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  SearchAssociatedTranscriptsResponse+newSearchAssociatedTranscriptsResponse pHttpStatus_ =+  SearchAssociatedTranscriptsResponse'+    { associatedTranscripts =+        Prelude.Nothing,+      botId = Prelude.Nothing,+      botRecommendationId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      localeId = Prelude.Nothing,+      nextIndex = Prelude.Nothing,+      totalResults = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The object that contains the associated transcript that meet the+-- criteria you specified.+searchAssociatedTranscriptsResponse_associatedTranscripts :: Lens.Lens' SearchAssociatedTranscriptsResponse (Prelude.Maybe [AssociatedTranscript])+searchAssociatedTranscriptsResponse_associatedTranscripts = Lens.lens (\SearchAssociatedTranscriptsResponse' {associatedTranscripts} -> associatedTranscripts) (\s@SearchAssociatedTranscriptsResponse' {} a -> s {associatedTranscripts = a} :: SearchAssociatedTranscriptsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The unique identifier of the bot associated with the transcripts that+-- you are searching.+searchAssociatedTranscriptsResponse_botId :: Lens.Lens' SearchAssociatedTranscriptsResponse (Prelude.Maybe Prelude.Text)+searchAssociatedTranscriptsResponse_botId = Lens.lens (\SearchAssociatedTranscriptsResponse' {botId} -> botId) (\s@SearchAssociatedTranscriptsResponse' {} a -> s {botId = a} :: SearchAssociatedTranscriptsResponse)++-- | The unique identifier of the bot recommendation associated with the+-- transcripts to search.+searchAssociatedTranscriptsResponse_botRecommendationId :: Lens.Lens' SearchAssociatedTranscriptsResponse (Prelude.Maybe Prelude.Text)+searchAssociatedTranscriptsResponse_botRecommendationId = Lens.lens (\SearchAssociatedTranscriptsResponse' {botRecommendationId} -> botRecommendationId) (\s@SearchAssociatedTranscriptsResponse' {} a -> s {botRecommendationId = a} :: SearchAssociatedTranscriptsResponse)++-- | The version of the bot containing the transcripts that you are+-- searching.+searchAssociatedTranscriptsResponse_botVersion :: Lens.Lens' SearchAssociatedTranscriptsResponse (Prelude.Maybe Prelude.Text)+searchAssociatedTranscriptsResponse_botVersion = Lens.lens (\SearchAssociatedTranscriptsResponse' {botVersion} -> botVersion) (\s@SearchAssociatedTranscriptsResponse' {} a -> s {botVersion = a} :: SearchAssociatedTranscriptsResponse)++-- | The identifier of the language and locale of the transcripts to search.+-- The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+searchAssociatedTranscriptsResponse_localeId :: Lens.Lens' SearchAssociatedTranscriptsResponse (Prelude.Maybe Prelude.Text)+searchAssociatedTranscriptsResponse_localeId = Lens.lens (\SearchAssociatedTranscriptsResponse' {localeId} -> localeId) (\s@SearchAssociatedTranscriptsResponse' {} a -> s {localeId = a} :: SearchAssociatedTranscriptsResponse)++-- | A index that indicates whether there are more results to return in a+-- response to the SearchAssociatedTranscripts operation. If the nextIndex+-- field is present, you send the contents as the nextIndex parameter of a+-- SearchAssociatedTranscriptsRequest operation to get the next page of+-- results.+searchAssociatedTranscriptsResponse_nextIndex :: Lens.Lens' SearchAssociatedTranscriptsResponse (Prelude.Maybe Prelude.Natural)+searchAssociatedTranscriptsResponse_nextIndex = Lens.lens (\SearchAssociatedTranscriptsResponse' {nextIndex} -> nextIndex) (\s@SearchAssociatedTranscriptsResponse' {} a -> s {nextIndex = a} :: SearchAssociatedTranscriptsResponse)++-- | The total number of transcripts returned by the search.+searchAssociatedTranscriptsResponse_totalResults :: Lens.Lens' SearchAssociatedTranscriptsResponse (Prelude.Maybe Prelude.Natural)+searchAssociatedTranscriptsResponse_totalResults = Lens.lens (\SearchAssociatedTranscriptsResponse' {totalResults} -> totalResults) (\s@SearchAssociatedTranscriptsResponse' {} a -> s {totalResults = a} :: SearchAssociatedTranscriptsResponse)++-- | The response's http status code.+searchAssociatedTranscriptsResponse_httpStatus :: Lens.Lens' SearchAssociatedTranscriptsResponse Prelude.Int+searchAssociatedTranscriptsResponse_httpStatus = Lens.lens (\SearchAssociatedTranscriptsResponse' {httpStatus} -> httpStatus) (\s@SearchAssociatedTranscriptsResponse' {} a -> s {httpStatus = a} :: SearchAssociatedTranscriptsResponse)++instance+  Prelude.NFData+    SearchAssociatedTranscriptsResponse+  where+  rnf SearchAssociatedTranscriptsResponse' {..} =+    Prelude.rnf associatedTranscripts+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botRecommendationId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf nextIndex+      `Prelude.seq` Prelude.rnf totalResults+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/StartBotRecommendation.hs view
@@ -0,0 +1,378 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.StartBotRecommendation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Use this to provide your transcript data, and to start the bot+-- recommendation process.+module Amazonka.LexV2Models.StartBotRecommendation+  ( -- * Creating a Request+    StartBotRecommendation (..),+    newStartBotRecommendation,++    -- * Request Lenses+    startBotRecommendation_encryptionSetting,+    startBotRecommendation_botId,+    startBotRecommendation_botVersion,+    startBotRecommendation_localeId,+    startBotRecommendation_transcriptSourceSetting,++    -- * Destructuring the Response+    StartBotRecommendationResponse (..),+    newStartBotRecommendationResponse,++    -- * Response Lenses+    startBotRecommendationResponse_botId,+    startBotRecommendationResponse_botRecommendationId,+    startBotRecommendationResponse_botRecommendationStatus,+    startBotRecommendationResponse_botVersion,+    startBotRecommendationResponse_creationDateTime,+    startBotRecommendationResponse_encryptionSetting,+    startBotRecommendationResponse_localeId,+    startBotRecommendationResponse_transcriptSourceSetting,+    startBotRecommendationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartBotRecommendation' smart constructor.+data StartBotRecommendation = StartBotRecommendation'+  { -- | The object representing the passwords that will be used to encrypt the+    -- data related to the bot recommendation results, as well as the KMS key+    -- ARN used to encrypt the associated metadata.+    encryptionSetting :: Prelude.Maybe EncryptionSetting,+    -- | The unique identifier of the bot containing the bot recommendation.+    botId :: Prelude.Text,+    -- | The version of the bot containing the bot recommendation.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale of the bot recommendation to+    -- start. The string must match one of the supported locales. For more+    -- information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+    localeId :: Prelude.Text,+    -- | The object representing the Amazon S3 bucket containing the transcript,+    -- as well as the associated metadata.+    transcriptSourceSetting :: TranscriptSourceSetting+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartBotRecommendation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'encryptionSetting', 'startBotRecommendation_encryptionSetting' - The object representing the passwords that will be used to encrypt the+-- data related to the bot recommendation results, as well as the KMS key+-- ARN used to encrypt the associated metadata.+--+-- 'botId', 'startBotRecommendation_botId' - The unique identifier of the bot containing the bot recommendation.+--+-- 'botVersion', 'startBotRecommendation_botVersion' - The version of the bot containing the bot recommendation.+--+-- 'localeId', 'startBotRecommendation_localeId' - The identifier of the language and locale of the bot recommendation to+-- start. The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+--+-- 'transcriptSourceSetting', 'startBotRecommendation_transcriptSourceSetting' - The object representing the Amazon S3 bucket containing the transcript,+-- as well as the associated metadata.+newStartBotRecommendation ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  -- | 'transcriptSourceSetting'+  TranscriptSourceSetting ->+  StartBotRecommendation+newStartBotRecommendation+  pBotId_+  pBotVersion_+  pLocaleId_+  pTranscriptSourceSetting_ =+    StartBotRecommendation'+      { encryptionSetting =+          Prelude.Nothing,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_,+        transcriptSourceSetting = pTranscriptSourceSetting_+      }++-- | The object representing the passwords that will be used to encrypt the+-- data related to the bot recommendation results, as well as the KMS key+-- ARN used to encrypt the associated metadata.+startBotRecommendation_encryptionSetting :: Lens.Lens' StartBotRecommendation (Prelude.Maybe EncryptionSetting)+startBotRecommendation_encryptionSetting = Lens.lens (\StartBotRecommendation' {encryptionSetting} -> encryptionSetting) (\s@StartBotRecommendation' {} a -> s {encryptionSetting = a} :: StartBotRecommendation)++-- | The unique identifier of the bot containing the bot recommendation.+startBotRecommendation_botId :: Lens.Lens' StartBotRecommendation Prelude.Text+startBotRecommendation_botId = Lens.lens (\StartBotRecommendation' {botId} -> botId) (\s@StartBotRecommendation' {} a -> s {botId = a} :: StartBotRecommendation)++-- | The version of the bot containing the bot recommendation.+startBotRecommendation_botVersion :: Lens.Lens' StartBotRecommendation Prelude.Text+startBotRecommendation_botVersion = Lens.lens (\StartBotRecommendation' {botVersion} -> botVersion) (\s@StartBotRecommendation' {} a -> s {botVersion = a} :: StartBotRecommendation)++-- | The identifier of the language and locale of the bot recommendation to+-- start. The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+startBotRecommendation_localeId :: Lens.Lens' StartBotRecommendation Prelude.Text+startBotRecommendation_localeId = Lens.lens (\StartBotRecommendation' {localeId} -> localeId) (\s@StartBotRecommendation' {} a -> s {localeId = a} :: StartBotRecommendation)++-- | The object representing the Amazon S3 bucket containing the transcript,+-- as well as the associated metadata.+startBotRecommendation_transcriptSourceSetting :: Lens.Lens' StartBotRecommendation TranscriptSourceSetting+startBotRecommendation_transcriptSourceSetting = Lens.lens (\StartBotRecommendation' {transcriptSourceSetting} -> transcriptSourceSetting) (\s@StartBotRecommendation' {} a -> s {transcriptSourceSetting = a} :: StartBotRecommendation)++instance Core.AWSRequest StartBotRecommendation where+  type+    AWSResponse StartBotRecommendation =+      StartBotRecommendationResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartBotRecommendationResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botRecommendationId")+            Prelude.<*> (x Data..?> "botRecommendationStatus")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "encryptionSetting")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "transcriptSourceSetting")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartBotRecommendation where+  hashWithSalt _salt StartBotRecommendation' {..} =+    _salt+      `Prelude.hashWithSalt` encryptionSetting+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` transcriptSourceSetting++instance Prelude.NFData StartBotRecommendation where+  rnf StartBotRecommendation' {..} =+    Prelude.rnf encryptionSetting+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf transcriptSourceSetting++instance Data.ToHeaders StartBotRecommendation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartBotRecommendation where+  toJSON StartBotRecommendation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("encryptionSetting" Data..=)+              Prelude.<$> encryptionSetting,+            Prelude.Just+              ( "transcriptSourceSetting"+                  Data..= transcriptSourceSetting+              )+          ]+      )++instance Data.ToPath StartBotRecommendation where+  toPath StartBotRecommendation' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/botrecommendations/"+      ]++instance Data.ToQuery StartBotRecommendation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartBotRecommendationResponse' smart constructor.+data StartBotRecommendationResponse = StartBotRecommendationResponse'+  { -- | The unique identifier of the bot containing the bot recommendation.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the bot recommendation that you have created.+    botRecommendationId :: Prelude.Maybe Prelude.Text,+    -- | The status of the bot recommendation.+    --+    -- If the status is Failed, then the reasons for the failure are listed in+    -- the failureReasons field.+    botRecommendationStatus :: Prelude.Maybe BotRecommendationStatus,+    -- | The version of the bot containing the bot recommendation.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | A timestamp of the date and time that the bot recommendation was+    -- created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The object representing the passwords that were used to encrypt the data+    -- related to the bot recommendation results, as well as the KMS key ARN+    -- used to encrypt the associated metadata.+    encryptionSetting :: Prelude.Maybe EncryptionSetting,+    -- | The identifier of the language and locale of the bot recommendation to+    -- start. The string must match one of the supported locales. For more+    -- information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The object representing the Amazon S3 bucket containing the transcript,+    -- as well as the associated metadata.+    transcriptSourceSetting :: Prelude.Maybe TranscriptSourceSetting,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartBotRecommendationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'startBotRecommendationResponse_botId' - The unique identifier of the bot containing the bot recommendation.+--+-- 'botRecommendationId', 'startBotRecommendationResponse_botRecommendationId' - The identifier of the bot recommendation that you have created.+--+-- 'botRecommendationStatus', 'startBotRecommendationResponse_botRecommendationStatus' - The status of the bot recommendation.+--+-- If the status is Failed, then the reasons for the failure are listed in+-- the failureReasons field.+--+-- 'botVersion', 'startBotRecommendationResponse_botVersion' - The version of the bot containing the bot recommendation.+--+-- 'creationDateTime', 'startBotRecommendationResponse_creationDateTime' - A timestamp of the date and time that the bot recommendation was+-- created.+--+-- 'encryptionSetting', 'startBotRecommendationResponse_encryptionSetting' - The object representing the passwords that were used to encrypt the data+-- related to the bot recommendation results, as well as the KMS key ARN+-- used to encrypt the associated metadata.+--+-- 'localeId', 'startBotRecommendationResponse_localeId' - The identifier of the language and locale of the bot recommendation to+-- start. The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+--+-- 'transcriptSourceSetting', 'startBotRecommendationResponse_transcriptSourceSetting' - The object representing the Amazon S3 bucket containing the transcript,+-- as well as the associated metadata.+--+-- 'httpStatus', 'startBotRecommendationResponse_httpStatus' - The response's http status code.+newStartBotRecommendationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartBotRecommendationResponse+newStartBotRecommendationResponse pHttpStatus_ =+  StartBotRecommendationResponse'+    { botId =+        Prelude.Nothing,+      botRecommendationId = Prelude.Nothing,+      botRecommendationStatus = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      encryptionSetting = Prelude.Nothing,+      localeId = Prelude.Nothing,+      transcriptSourceSetting = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the bot containing the bot recommendation.+startBotRecommendationResponse_botId :: Lens.Lens' StartBotRecommendationResponse (Prelude.Maybe Prelude.Text)+startBotRecommendationResponse_botId = Lens.lens (\StartBotRecommendationResponse' {botId} -> botId) (\s@StartBotRecommendationResponse' {} a -> s {botId = a} :: StartBotRecommendationResponse)++-- | The identifier of the bot recommendation that you have created.+startBotRecommendationResponse_botRecommendationId :: Lens.Lens' StartBotRecommendationResponse (Prelude.Maybe Prelude.Text)+startBotRecommendationResponse_botRecommendationId = Lens.lens (\StartBotRecommendationResponse' {botRecommendationId} -> botRecommendationId) (\s@StartBotRecommendationResponse' {} a -> s {botRecommendationId = a} :: StartBotRecommendationResponse)++-- | The status of the bot recommendation.+--+-- If the status is Failed, then the reasons for the failure are listed in+-- the failureReasons field.+startBotRecommendationResponse_botRecommendationStatus :: Lens.Lens' StartBotRecommendationResponse (Prelude.Maybe BotRecommendationStatus)+startBotRecommendationResponse_botRecommendationStatus = Lens.lens (\StartBotRecommendationResponse' {botRecommendationStatus} -> botRecommendationStatus) (\s@StartBotRecommendationResponse' {} a -> s {botRecommendationStatus = a} :: StartBotRecommendationResponse)++-- | The version of the bot containing the bot recommendation.+startBotRecommendationResponse_botVersion :: Lens.Lens' StartBotRecommendationResponse (Prelude.Maybe Prelude.Text)+startBotRecommendationResponse_botVersion = Lens.lens (\StartBotRecommendationResponse' {botVersion} -> botVersion) (\s@StartBotRecommendationResponse' {} a -> s {botVersion = a} :: StartBotRecommendationResponse)++-- | A timestamp of the date and time that the bot recommendation was+-- created.+startBotRecommendationResponse_creationDateTime :: Lens.Lens' StartBotRecommendationResponse (Prelude.Maybe Prelude.UTCTime)+startBotRecommendationResponse_creationDateTime = Lens.lens (\StartBotRecommendationResponse' {creationDateTime} -> creationDateTime) (\s@StartBotRecommendationResponse' {} a -> s {creationDateTime = a} :: StartBotRecommendationResponse) Prelude.. Lens.mapping Data._Time++-- | The object representing the passwords that were used to encrypt the data+-- related to the bot recommendation results, as well as the KMS key ARN+-- used to encrypt the associated metadata.+startBotRecommendationResponse_encryptionSetting :: Lens.Lens' StartBotRecommendationResponse (Prelude.Maybe EncryptionSetting)+startBotRecommendationResponse_encryptionSetting = Lens.lens (\StartBotRecommendationResponse' {encryptionSetting} -> encryptionSetting) (\s@StartBotRecommendationResponse' {} a -> s {encryptionSetting = a} :: StartBotRecommendationResponse)++-- | The identifier of the language and locale of the bot recommendation to+-- start. The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+startBotRecommendationResponse_localeId :: Lens.Lens' StartBotRecommendationResponse (Prelude.Maybe Prelude.Text)+startBotRecommendationResponse_localeId = Lens.lens (\StartBotRecommendationResponse' {localeId} -> localeId) (\s@StartBotRecommendationResponse' {} a -> s {localeId = a} :: StartBotRecommendationResponse)++-- | The object representing the Amazon S3 bucket containing the transcript,+-- as well as the associated metadata.+startBotRecommendationResponse_transcriptSourceSetting :: Lens.Lens' StartBotRecommendationResponse (Prelude.Maybe TranscriptSourceSetting)+startBotRecommendationResponse_transcriptSourceSetting = Lens.lens (\StartBotRecommendationResponse' {transcriptSourceSetting} -> transcriptSourceSetting) (\s@StartBotRecommendationResponse' {} a -> s {transcriptSourceSetting = a} :: StartBotRecommendationResponse)++-- | The response's http status code.+startBotRecommendationResponse_httpStatus :: Lens.Lens' StartBotRecommendationResponse Prelude.Int+startBotRecommendationResponse_httpStatus = Lens.lens (\StartBotRecommendationResponse' {httpStatus} -> httpStatus) (\s@StartBotRecommendationResponse' {} a -> s {httpStatus = a} :: StartBotRecommendationResponse)++instance+  Prelude.NFData+    StartBotRecommendationResponse+  where+  rnf StartBotRecommendationResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botRecommendationId+      `Prelude.seq` Prelude.rnf botRecommendationStatus+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf encryptionSetting+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf transcriptSourceSetting+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/StartImport.hs view
@@ -0,0 +1,302 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.StartImport+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Starts importing a bot, bot locale, or custom vocabulary from a zip+-- archive that you uploaded to an S3 bucket.+module Amazonka.LexV2Models.StartImport+  ( -- * Creating a Request+    StartImport (..),+    newStartImport,++    -- * Request Lenses+    startImport_filePassword,+    startImport_importId,+    startImport_resourceSpecification,+    startImport_mergeStrategy,++    -- * Destructuring the Response+    StartImportResponse (..),+    newStartImportResponse,++    -- * Response Lenses+    startImportResponse_creationDateTime,+    startImportResponse_importId,+    startImportResponse_importStatus,+    startImportResponse_mergeStrategy,+    startImportResponse_resourceSpecification,+    startImportResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartImport' smart constructor.+data StartImport = StartImport'+  { -- | The password used to encrypt the zip archive that contains the resource+    -- definition. You should always encrypt the zip archive to protect it+    -- during transit between your site and Amazon Lex.+    filePassword :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The unique identifier for the import. It is included in the response+    -- from the+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/API_CreateUploadUrl.html CreateUploadUrl>+    -- operation.+    importId :: Prelude.Text,+    -- | Parameters for creating the bot, bot locale or custom vocabulary.+    resourceSpecification :: ImportResourceSpecification,+    -- | The strategy to use when there is a name conflict between the imported+    -- resource and an existing resource. When the merge strategy is+    -- @FailOnConflict@ existing resources are not overwritten and the import+    -- fails.+    mergeStrategy :: MergeStrategy+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartImport' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filePassword', 'startImport_filePassword' - The password used to encrypt the zip archive that contains the resource+-- definition. You should always encrypt the zip archive to protect it+-- during transit between your site and Amazon Lex.+--+-- 'importId', 'startImport_importId' - The unique identifier for the import. It is included in the response+-- from the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_CreateUploadUrl.html CreateUploadUrl>+-- operation.+--+-- 'resourceSpecification', 'startImport_resourceSpecification' - Parameters for creating the bot, bot locale or custom vocabulary.+--+-- 'mergeStrategy', 'startImport_mergeStrategy' - The strategy to use when there is a name conflict between the imported+-- resource and an existing resource. When the merge strategy is+-- @FailOnConflict@ existing resources are not overwritten and the import+-- fails.+newStartImport ::+  -- | 'importId'+  Prelude.Text ->+  -- | 'resourceSpecification'+  ImportResourceSpecification ->+  -- | 'mergeStrategy'+  MergeStrategy ->+  StartImport+newStartImport+  pImportId_+  pResourceSpecification_+  pMergeStrategy_ =+    StartImport'+      { filePassword = Prelude.Nothing,+        importId = pImportId_,+        resourceSpecification = pResourceSpecification_,+        mergeStrategy = pMergeStrategy_+      }++-- | The password used to encrypt the zip archive that contains the resource+-- definition. You should always encrypt the zip archive to protect it+-- during transit between your site and Amazon Lex.+startImport_filePassword :: Lens.Lens' StartImport (Prelude.Maybe Prelude.Text)+startImport_filePassword = Lens.lens (\StartImport' {filePassword} -> filePassword) (\s@StartImport' {} a -> s {filePassword = a} :: StartImport) Prelude.. Lens.mapping Data._Sensitive++-- | The unique identifier for the import. It is included in the response+-- from the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_CreateUploadUrl.html CreateUploadUrl>+-- operation.+startImport_importId :: Lens.Lens' StartImport Prelude.Text+startImport_importId = Lens.lens (\StartImport' {importId} -> importId) (\s@StartImport' {} a -> s {importId = a} :: StartImport)++-- | Parameters for creating the bot, bot locale or custom vocabulary.+startImport_resourceSpecification :: Lens.Lens' StartImport ImportResourceSpecification+startImport_resourceSpecification = Lens.lens (\StartImport' {resourceSpecification} -> resourceSpecification) (\s@StartImport' {} a -> s {resourceSpecification = a} :: StartImport)++-- | The strategy to use when there is a name conflict between the imported+-- resource and an existing resource. When the merge strategy is+-- @FailOnConflict@ existing resources are not overwritten and the import+-- fails.+startImport_mergeStrategy :: Lens.Lens' StartImport MergeStrategy+startImport_mergeStrategy = Lens.lens (\StartImport' {mergeStrategy} -> mergeStrategy) (\s@StartImport' {} a -> s {mergeStrategy = a} :: StartImport)++instance Core.AWSRequest StartImport where+  type AWSResponse StartImport = StartImportResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartImportResponse'+            Prelude.<$> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "importId")+            Prelude.<*> (x Data..?> "importStatus")+            Prelude.<*> (x Data..?> "mergeStrategy")+            Prelude.<*> (x Data..?> "resourceSpecification")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartImport where+  hashWithSalt _salt StartImport' {..} =+    _salt+      `Prelude.hashWithSalt` filePassword+      `Prelude.hashWithSalt` importId+      `Prelude.hashWithSalt` resourceSpecification+      `Prelude.hashWithSalt` mergeStrategy++instance Prelude.NFData StartImport where+  rnf StartImport' {..} =+    Prelude.rnf filePassword+      `Prelude.seq` Prelude.rnf importId+      `Prelude.seq` Prelude.rnf resourceSpecification+      `Prelude.seq` Prelude.rnf mergeStrategy++instance Data.ToHeaders StartImport where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartImport where+  toJSON StartImport' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("filePassword" Data..=) Prelude.<$> filePassword,+            Prelude.Just ("importId" Data..= importId),+            Prelude.Just+              ( "resourceSpecification"+                  Data..= resourceSpecification+              ),+            Prelude.Just+              ("mergeStrategy" Data..= mergeStrategy)+          ]+      )++instance Data.ToPath StartImport where+  toPath = Prelude.const "/imports/"++instance Data.ToQuery StartImport where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartImportResponse' smart constructor.+data StartImportResponse = StartImportResponse'+  { -- | The date and time that the import request was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | A unique identifier for the import.+    importId :: Prelude.Maybe Prelude.Text,+    -- | The current status of the import. When the status is @Complete@ the bot,+    -- bot alias, or custom vocabulary is ready to use.+    importStatus :: Prelude.Maybe ImportStatus,+    -- | The strategy used when there was a name conflict between the imported+    -- resource and an existing resource. When the merge strategy is+    -- @FailOnConflict@ existing resources are not overwritten and the import+    -- fails.+    mergeStrategy :: Prelude.Maybe MergeStrategy,+    -- | The parameters used when importing the resource.+    resourceSpecification :: Prelude.Maybe ImportResourceSpecification,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartImportResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'startImportResponse_creationDateTime' - The date and time that the import request was created.+--+-- 'importId', 'startImportResponse_importId' - A unique identifier for the import.+--+-- 'importStatus', 'startImportResponse_importStatus' - The current status of the import. When the status is @Complete@ the bot,+-- bot alias, or custom vocabulary is ready to use.+--+-- 'mergeStrategy', 'startImportResponse_mergeStrategy' - The strategy used when there was a name conflict between the imported+-- resource and an existing resource. When the merge strategy is+-- @FailOnConflict@ existing resources are not overwritten and the import+-- fails.+--+-- 'resourceSpecification', 'startImportResponse_resourceSpecification' - The parameters used when importing the resource.+--+-- 'httpStatus', 'startImportResponse_httpStatus' - The response's http status code.+newStartImportResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartImportResponse+newStartImportResponse pHttpStatus_ =+  StartImportResponse'+    { creationDateTime =+        Prelude.Nothing,+      importId = Prelude.Nothing,+      importStatus = Prelude.Nothing,+      mergeStrategy = Prelude.Nothing,+      resourceSpecification = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The date and time that the import request was created.+startImportResponse_creationDateTime :: Lens.Lens' StartImportResponse (Prelude.Maybe Prelude.UTCTime)+startImportResponse_creationDateTime = Lens.lens (\StartImportResponse' {creationDateTime} -> creationDateTime) (\s@StartImportResponse' {} a -> s {creationDateTime = a} :: StartImportResponse) Prelude.. Lens.mapping Data._Time++-- | A unique identifier for the import.+startImportResponse_importId :: Lens.Lens' StartImportResponse (Prelude.Maybe Prelude.Text)+startImportResponse_importId = Lens.lens (\StartImportResponse' {importId} -> importId) (\s@StartImportResponse' {} a -> s {importId = a} :: StartImportResponse)++-- | The current status of the import. When the status is @Complete@ the bot,+-- bot alias, or custom vocabulary is ready to use.+startImportResponse_importStatus :: Lens.Lens' StartImportResponse (Prelude.Maybe ImportStatus)+startImportResponse_importStatus = Lens.lens (\StartImportResponse' {importStatus} -> importStatus) (\s@StartImportResponse' {} a -> s {importStatus = a} :: StartImportResponse)++-- | The strategy used when there was a name conflict between the imported+-- resource and an existing resource. When the merge strategy is+-- @FailOnConflict@ existing resources are not overwritten and the import+-- fails.+startImportResponse_mergeStrategy :: Lens.Lens' StartImportResponse (Prelude.Maybe MergeStrategy)+startImportResponse_mergeStrategy = Lens.lens (\StartImportResponse' {mergeStrategy} -> mergeStrategy) (\s@StartImportResponse' {} a -> s {mergeStrategy = a} :: StartImportResponse)++-- | The parameters used when importing the resource.+startImportResponse_resourceSpecification :: Lens.Lens' StartImportResponse (Prelude.Maybe ImportResourceSpecification)+startImportResponse_resourceSpecification = Lens.lens (\StartImportResponse' {resourceSpecification} -> resourceSpecification) (\s@StartImportResponse' {} a -> s {resourceSpecification = a} :: StartImportResponse)++-- | The response's http status code.+startImportResponse_httpStatus :: Lens.Lens' StartImportResponse Prelude.Int+startImportResponse_httpStatus = Lens.lens (\StartImportResponse' {httpStatus} -> httpStatus) (\s@StartImportResponse' {} a -> s {httpStatus = a} :: StartImportResponse)++instance Prelude.NFData StartImportResponse where+  rnf StartImportResponse' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf importId+      `Prelude.seq` Prelude.rnf importStatus+      `Prelude.seq` Prelude.rnf mergeStrategy+      `Prelude.seq` Prelude.rnf resourceSpecification+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/StopBotRecommendation.hs view
@@ -0,0 +1,299 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.StopBotRecommendation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stop an already running Bot Recommendation request.+module Amazonka.LexV2Models.StopBotRecommendation+  ( -- * Creating a Request+    StopBotRecommendation (..),+    newStopBotRecommendation,++    -- * Request Lenses+    stopBotRecommendation_botId,+    stopBotRecommendation_botVersion,+    stopBotRecommendation_localeId,+    stopBotRecommendation_botRecommendationId,++    -- * Destructuring the Response+    StopBotRecommendationResponse (..),+    newStopBotRecommendationResponse,++    -- * Response Lenses+    stopBotRecommendationResponse_botId,+    stopBotRecommendationResponse_botRecommendationId,+    stopBotRecommendationResponse_botRecommendationStatus,+    stopBotRecommendationResponse_botVersion,+    stopBotRecommendationResponse_localeId,+    stopBotRecommendationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStopBotRecommendation' smart constructor.+data StopBotRecommendation = StopBotRecommendation'+  { -- | The unique identifier of the bot containing the bot recommendation to be+    -- stopped.+    botId :: Prelude.Text,+    -- | The version of the bot containing the bot recommendation.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale of the bot recommendation to+    -- stop. The string must match one of the supported locales. For more+    -- information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+    localeId :: Prelude.Text,+    -- | The unique identifier of the bot recommendation to be stopped.+    botRecommendationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopBotRecommendation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'stopBotRecommendation_botId' - The unique identifier of the bot containing the bot recommendation to be+-- stopped.+--+-- 'botVersion', 'stopBotRecommendation_botVersion' - The version of the bot containing the bot recommendation.+--+-- 'localeId', 'stopBotRecommendation_localeId' - The identifier of the language and locale of the bot recommendation to+-- stop. The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+--+-- 'botRecommendationId', 'stopBotRecommendation_botRecommendationId' - The unique identifier of the bot recommendation to be stopped.+newStopBotRecommendation ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  -- | 'botRecommendationId'+  Prelude.Text ->+  StopBotRecommendation+newStopBotRecommendation+  pBotId_+  pBotVersion_+  pLocaleId_+  pBotRecommendationId_ =+    StopBotRecommendation'+      { botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_,+        botRecommendationId = pBotRecommendationId_+      }++-- | The unique identifier of the bot containing the bot recommendation to be+-- stopped.+stopBotRecommendation_botId :: Lens.Lens' StopBotRecommendation Prelude.Text+stopBotRecommendation_botId = Lens.lens (\StopBotRecommendation' {botId} -> botId) (\s@StopBotRecommendation' {} a -> s {botId = a} :: StopBotRecommendation)++-- | The version of the bot containing the bot recommendation.+stopBotRecommendation_botVersion :: Lens.Lens' StopBotRecommendation Prelude.Text+stopBotRecommendation_botVersion = Lens.lens (\StopBotRecommendation' {botVersion} -> botVersion) (\s@StopBotRecommendation' {} a -> s {botVersion = a} :: StopBotRecommendation)++-- | The identifier of the language and locale of the bot recommendation to+-- stop. The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+stopBotRecommendation_localeId :: Lens.Lens' StopBotRecommendation Prelude.Text+stopBotRecommendation_localeId = Lens.lens (\StopBotRecommendation' {localeId} -> localeId) (\s@StopBotRecommendation' {} a -> s {localeId = a} :: StopBotRecommendation)++-- | The unique identifier of the bot recommendation to be stopped.+stopBotRecommendation_botRecommendationId :: Lens.Lens' StopBotRecommendation Prelude.Text+stopBotRecommendation_botRecommendationId = Lens.lens (\StopBotRecommendation' {botRecommendationId} -> botRecommendationId) (\s@StopBotRecommendation' {} a -> s {botRecommendationId = a} :: StopBotRecommendation)++instance Core.AWSRequest StopBotRecommendation where+  type+    AWSResponse StopBotRecommendation =+      StopBotRecommendationResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StopBotRecommendationResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botRecommendationId")+            Prelude.<*> (x Data..?> "botRecommendationStatus")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StopBotRecommendation where+  hashWithSalt _salt StopBotRecommendation' {..} =+    _salt+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` botRecommendationId++instance Prelude.NFData StopBotRecommendation where+  rnf StopBotRecommendation' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf botRecommendationId++instance Data.ToHeaders StopBotRecommendation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StopBotRecommendation where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance Data.ToPath StopBotRecommendation where+  toPath StopBotRecommendation' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/botrecommendations/",+        Data.toBS botRecommendationId,+        "/stopbotrecommendation"+      ]++instance Data.ToQuery StopBotRecommendation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStopBotRecommendationResponse' smart constructor.+data StopBotRecommendationResponse = StopBotRecommendationResponse'+  { -- | The unique identifier of the bot containing the bot recommendation that+    -- is being stopped.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the bot recommendation that is being stopped.+    botRecommendationId :: Prelude.Maybe Prelude.Text,+    -- | The status of the bot recommendation. If the status is Failed, then the+    -- reasons for the failure are listed in the failureReasons field.+    botRecommendationStatus :: Prelude.Maybe BotRecommendationStatus,+    -- | The version of the bot containing the recommendation that is being+    -- stopped.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the language and locale of the bot response to stop.+    -- The string must match one of the supported locales. For more+    -- information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopBotRecommendationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'stopBotRecommendationResponse_botId' - The unique identifier of the bot containing the bot recommendation that+-- is being stopped.+--+-- 'botRecommendationId', 'stopBotRecommendationResponse_botRecommendationId' - The unique identifier of the bot recommendation that is being stopped.+--+-- 'botRecommendationStatus', 'stopBotRecommendationResponse_botRecommendationStatus' - The status of the bot recommendation. If the status is Failed, then the+-- reasons for the failure are listed in the failureReasons field.+--+-- 'botVersion', 'stopBotRecommendationResponse_botVersion' - The version of the bot containing the recommendation that is being+-- stopped.+--+-- 'localeId', 'stopBotRecommendationResponse_localeId' - The identifier of the language and locale of the bot response to stop.+-- The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+--+-- 'httpStatus', 'stopBotRecommendationResponse_httpStatus' - The response's http status code.+newStopBotRecommendationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StopBotRecommendationResponse+newStopBotRecommendationResponse pHttpStatus_ =+  StopBotRecommendationResponse'+    { botId =+        Prelude.Nothing,+      botRecommendationId = Prelude.Nothing,+      botRecommendationStatus = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      localeId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the bot containing the bot recommendation that+-- is being stopped.+stopBotRecommendationResponse_botId :: Lens.Lens' StopBotRecommendationResponse (Prelude.Maybe Prelude.Text)+stopBotRecommendationResponse_botId = Lens.lens (\StopBotRecommendationResponse' {botId} -> botId) (\s@StopBotRecommendationResponse' {} a -> s {botId = a} :: StopBotRecommendationResponse)++-- | The unique identifier of the bot recommendation that is being stopped.+stopBotRecommendationResponse_botRecommendationId :: Lens.Lens' StopBotRecommendationResponse (Prelude.Maybe Prelude.Text)+stopBotRecommendationResponse_botRecommendationId = Lens.lens (\StopBotRecommendationResponse' {botRecommendationId} -> botRecommendationId) (\s@StopBotRecommendationResponse' {} a -> s {botRecommendationId = a} :: StopBotRecommendationResponse)++-- | The status of the bot recommendation. If the status is Failed, then the+-- reasons for the failure are listed in the failureReasons field.+stopBotRecommendationResponse_botRecommendationStatus :: Lens.Lens' StopBotRecommendationResponse (Prelude.Maybe BotRecommendationStatus)+stopBotRecommendationResponse_botRecommendationStatus = Lens.lens (\StopBotRecommendationResponse' {botRecommendationStatus} -> botRecommendationStatus) (\s@StopBotRecommendationResponse' {} a -> s {botRecommendationStatus = a} :: StopBotRecommendationResponse)++-- | The version of the bot containing the recommendation that is being+-- stopped.+stopBotRecommendationResponse_botVersion :: Lens.Lens' StopBotRecommendationResponse (Prelude.Maybe Prelude.Text)+stopBotRecommendationResponse_botVersion = Lens.lens (\StopBotRecommendationResponse' {botVersion} -> botVersion) (\s@StopBotRecommendationResponse' {} a -> s {botVersion = a} :: StopBotRecommendationResponse)++-- | The identifier of the language and locale of the bot response to stop.+-- The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+stopBotRecommendationResponse_localeId :: Lens.Lens' StopBotRecommendationResponse (Prelude.Maybe Prelude.Text)+stopBotRecommendationResponse_localeId = Lens.lens (\StopBotRecommendationResponse' {localeId} -> localeId) (\s@StopBotRecommendationResponse' {} a -> s {localeId = a} :: StopBotRecommendationResponse)++-- | The response's http status code.+stopBotRecommendationResponse_httpStatus :: Lens.Lens' StopBotRecommendationResponse Prelude.Int+stopBotRecommendationResponse_httpStatus = Lens.lens (\StopBotRecommendationResponse' {httpStatus} -> httpStatus) (\s@StopBotRecommendationResponse' {} a -> s {httpStatus = a} :: StopBotRecommendationResponse)++instance Prelude.NFData StopBotRecommendationResponse where+  rnf StopBotRecommendationResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botRecommendationId+      `Prelude.seq` Prelude.rnf botRecommendationStatus+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/TagResource.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.TagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds the specified tags to the specified resource. If a tag key already+-- exists, the existing value is replaced with the new value.+module Amazonka.LexV2Models.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceARN,+    tagResource_tags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,++    -- * Response Lenses+    tagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The Amazon Resource Name (ARN) of the bot, bot alias, or bot channel to+    -- tag.+    resourceARN :: Prelude.Text,+    -- | A list of tag keys to add to the resource. If a tag key already exists,+    -- the existing value is replaced with the new value.+    tags :: Prelude.HashMap Prelude.Text Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceARN', 'tagResource_resourceARN' - The Amazon Resource Name (ARN) of the bot, bot alias, or bot channel to+-- tag.+--+-- 'tags', 'tagResource_tags' - A list of tag keys to add to the resource. If a tag key already exists,+-- the existing value is replaced with the new value.+newTagResource ::+  -- | 'resourceARN'+  Prelude.Text ->+  TagResource+newTagResource pResourceARN_ =+  TagResource'+    { resourceARN = pResourceARN_,+      tags = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the bot, bot alias, or bot channel to+-- tag.+tagResource_resourceARN :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceARN = Lens.lens (\TagResource' {resourceARN} -> resourceARN) (\s@TagResource' {} a -> s {resourceARN = a} :: TagResource)++-- | A list of tag keys to add to the resource. If a tag key already exists,+-- the existing value is replaced with the new value.+tagResource_tags :: Lens.Lens' TagResource (Prelude.HashMap Prelude.Text Prelude.Text)+tagResource_tags = Lens.lens (\TagResource' {tags} -> tags) (\s@TagResource' {} a -> s {tags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          TagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceARN+      `Prelude.hashWithSalt` tags++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf resourceARN+      `Prelude.seq` Prelude.rnf tags++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("tags" Data..= tags)]+      )++instance Data.ToPath TagResource where+  toPath TagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceARN]++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TagResourceResponse+newTagResourceResponse pHttpStatus_ =+  TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/Types.hs view
@@ -0,0 +1,1473 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _ConflictException,+    _InternalServerException,+    _PreconditionFailedException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,+    _ThrottlingException,+    _ValidationException,++    -- * AggregatedUtterancesFilterName+    AggregatedUtterancesFilterName (..),++    -- * AggregatedUtterancesFilterOperator+    AggregatedUtterancesFilterOperator (..),++    -- * AggregatedUtterancesSortAttribute+    AggregatedUtterancesSortAttribute (..),++    -- * AssociatedTranscriptFilterName+    AssociatedTranscriptFilterName (..),++    -- * AudioRecognitionStrategy+    AudioRecognitionStrategy (..),++    -- * BotAliasStatus+    BotAliasStatus (..),++    -- * BotFilterName+    BotFilterName (..),++    -- * BotFilterOperator+    BotFilterOperator (..),++    -- * BotLocaleFilterName+    BotLocaleFilterName (..),++    -- * BotLocaleFilterOperator+    BotLocaleFilterOperator (..),++    -- * BotLocaleSortAttribute+    BotLocaleSortAttribute (..),++    -- * BotLocaleStatus+    BotLocaleStatus (..),++    -- * BotRecommendationStatus+    BotRecommendationStatus (..),++    -- * BotSortAttribute+    BotSortAttribute (..),++    -- * BotStatus+    BotStatus (..),++    -- * BotVersionSortAttribute+    BotVersionSortAttribute (..),++    -- * BuiltInIntentSortAttribute+    BuiltInIntentSortAttribute (..),++    -- * BuiltInSlotTypeSortAttribute+    BuiltInSlotTypeSortAttribute (..),++    -- * CustomVocabularyStatus+    CustomVocabularyStatus (..),++    -- * DialogActionType+    DialogActionType (..),++    -- * Effect+    Effect (..),++    -- * ErrorCode+    ErrorCode (..),++    -- * ExportFilterName+    ExportFilterName (..),++    -- * ExportFilterOperator+    ExportFilterOperator (..),++    -- * ExportSortAttribute+    ExportSortAttribute (..),++    -- * ExportStatus+    ExportStatus (..),++    -- * ImportExportFileFormat+    ImportExportFileFormat (..),++    -- * ImportFilterName+    ImportFilterName (..),++    -- * ImportFilterOperator+    ImportFilterOperator (..),++    -- * ImportResourceType+    ImportResourceType (..),++    -- * ImportSortAttribute+    ImportSortAttribute (..),++    -- * ImportStatus+    ImportStatus (..),++    -- * IntentFilterName+    IntentFilterName (..),++    -- * IntentFilterOperator+    IntentFilterOperator (..),++    -- * IntentSortAttribute+    IntentSortAttribute (..),++    -- * MergeStrategy+    MergeStrategy (..),++    -- * MessageSelectionStrategy+    MessageSelectionStrategy (..),++    -- * ObfuscationSettingType+    ObfuscationSettingType (..),++    -- * PromptAttempt+    PromptAttempt (..),++    -- * SearchOrder+    SearchOrder (..),++    -- * SlotConstraint+    SlotConstraint (..),++    -- * SlotFilterName+    SlotFilterName (..),++    -- * SlotFilterOperator+    SlotFilterOperator (..),++    -- * SlotShape+    SlotShape (..),++    -- * SlotSortAttribute+    SlotSortAttribute (..),++    -- * SlotTypeCategory+    SlotTypeCategory (..),++    -- * SlotTypeFilterName+    SlotTypeFilterName (..),++    -- * SlotTypeFilterOperator+    SlotTypeFilterOperator (..),++    -- * SlotTypeSortAttribute+    SlotTypeSortAttribute (..),++    -- * SlotValueResolutionStrategy+    SlotValueResolutionStrategy (..),++    -- * SortOrder+    SortOrder (..),++    -- * TimeDimension+    TimeDimension (..),++    -- * TranscriptFormat+    TranscriptFormat (..),++    -- * VoiceEngine+    VoiceEngine (..),++    -- * AdvancedRecognitionSetting+    AdvancedRecognitionSetting (..),+    newAdvancedRecognitionSetting,+    advancedRecognitionSetting_audioRecognitionStrategy,++    -- * AggregatedUtterancesFilter+    AggregatedUtterancesFilter (..),+    newAggregatedUtterancesFilter,+    aggregatedUtterancesFilter_name,+    aggregatedUtterancesFilter_values,+    aggregatedUtterancesFilter_operator,++    -- * AggregatedUtterancesSortBy+    AggregatedUtterancesSortBy (..),+    newAggregatedUtterancesSortBy,+    aggregatedUtterancesSortBy_attribute,+    aggregatedUtterancesSortBy_order,++    -- * AggregatedUtterancesSummary+    AggregatedUtterancesSummary (..),+    newAggregatedUtterancesSummary,+    aggregatedUtterancesSummary_containsDataFromDeletedResources,+    aggregatedUtterancesSummary_hitCount,+    aggregatedUtterancesSummary_missedCount,+    aggregatedUtterancesSummary_utterance,+    aggregatedUtterancesSummary_utteranceFirstRecordedInAggregationDuration,+    aggregatedUtterancesSummary_utteranceLastRecordedInAggregationDuration,++    -- * AllowedInputTypes+    AllowedInputTypes (..),+    newAllowedInputTypes,+    allowedInputTypes_allowAudioInput,+    allowedInputTypes_allowDTMFInput,++    -- * AssociatedTranscript+    AssociatedTranscript (..),+    newAssociatedTranscript,+    associatedTranscript_transcript,++    -- * AssociatedTranscriptFilter+    AssociatedTranscriptFilter (..),+    newAssociatedTranscriptFilter,+    associatedTranscriptFilter_name,+    associatedTranscriptFilter_values,++    -- * AudioAndDTMFInputSpecification+    AudioAndDTMFInputSpecification (..),+    newAudioAndDTMFInputSpecification,+    audioAndDTMFInputSpecification_audioSpecification,+    audioAndDTMFInputSpecification_dtmfSpecification,+    audioAndDTMFInputSpecification_startTimeoutMs,++    -- * AudioLogDestination+    AudioLogDestination (..),+    newAudioLogDestination,+    audioLogDestination_s3Bucket,++    -- * AudioLogSetting+    AudioLogSetting (..),+    newAudioLogSetting,+    audioLogSetting_enabled,+    audioLogSetting_destination,++    -- * AudioSpecification+    AudioSpecification (..),+    newAudioSpecification,+    audioSpecification_maxLengthMs,+    audioSpecification_endTimeoutMs,++    -- * BotAliasHistoryEvent+    BotAliasHistoryEvent (..),+    newBotAliasHistoryEvent,+    botAliasHistoryEvent_botVersion,+    botAliasHistoryEvent_endDate,+    botAliasHistoryEvent_startDate,++    -- * BotAliasLocaleSettings+    BotAliasLocaleSettings (..),+    newBotAliasLocaleSettings,+    botAliasLocaleSettings_codeHookSpecification,+    botAliasLocaleSettings_enabled,++    -- * BotAliasSummary+    BotAliasSummary (..),+    newBotAliasSummary,+    botAliasSummary_botAliasId,+    botAliasSummary_botAliasName,+    botAliasSummary_botAliasStatus,+    botAliasSummary_botVersion,+    botAliasSummary_creationDateTime,+    botAliasSummary_description,+    botAliasSummary_lastUpdatedDateTime,++    -- * BotExportSpecification+    BotExportSpecification (..),+    newBotExportSpecification,+    botExportSpecification_botId,+    botExportSpecification_botVersion,++    -- * BotFilter+    BotFilter (..),+    newBotFilter,+    botFilter_name,+    botFilter_values,+    botFilter_operator,++    -- * BotImportSpecification+    BotImportSpecification (..),+    newBotImportSpecification,+    botImportSpecification_botTags,+    botImportSpecification_idleSessionTTLInSeconds,+    botImportSpecification_testBotAliasTags,+    botImportSpecification_botName,+    botImportSpecification_roleArn,+    botImportSpecification_dataPrivacy,++    -- * BotLocaleExportSpecification+    BotLocaleExportSpecification (..),+    newBotLocaleExportSpecification,+    botLocaleExportSpecification_botId,+    botLocaleExportSpecification_botVersion,+    botLocaleExportSpecification_localeId,++    -- * BotLocaleFilter+    BotLocaleFilter (..),+    newBotLocaleFilter,+    botLocaleFilter_name,+    botLocaleFilter_values,+    botLocaleFilter_operator,++    -- * BotLocaleHistoryEvent+    BotLocaleHistoryEvent (..),+    newBotLocaleHistoryEvent,+    botLocaleHistoryEvent_event,+    botLocaleHistoryEvent_eventDate,++    -- * BotLocaleImportSpecification+    BotLocaleImportSpecification (..),+    newBotLocaleImportSpecification,+    botLocaleImportSpecification_nluIntentConfidenceThreshold,+    botLocaleImportSpecification_voiceSettings,+    botLocaleImportSpecification_botId,+    botLocaleImportSpecification_botVersion,+    botLocaleImportSpecification_localeId,++    -- * BotLocaleSortBy+    BotLocaleSortBy (..),+    newBotLocaleSortBy,+    botLocaleSortBy_attribute,+    botLocaleSortBy_order,++    -- * BotLocaleSummary+    BotLocaleSummary (..),+    newBotLocaleSummary,+    botLocaleSummary_botLocaleStatus,+    botLocaleSummary_description,+    botLocaleSummary_lastBuildSubmittedDateTime,+    botLocaleSummary_lastUpdatedDateTime,+    botLocaleSummary_localeId,+    botLocaleSummary_localeName,++    -- * BotRecommendationResultStatistics+    BotRecommendationResultStatistics (..),+    newBotRecommendationResultStatistics,+    botRecommendationResultStatistics_intents,+    botRecommendationResultStatistics_slotTypes,++    -- * BotRecommendationResults+    BotRecommendationResults (..),+    newBotRecommendationResults,+    botRecommendationResults_associatedTranscriptsUrl,+    botRecommendationResults_botLocaleExportUrl,+    botRecommendationResults_statistics,++    -- * BotRecommendationSummary+    BotRecommendationSummary (..),+    newBotRecommendationSummary,+    botRecommendationSummary_creationDateTime,+    botRecommendationSummary_lastUpdatedDateTime,+    botRecommendationSummary_botRecommendationStatus,+    botRecommendationSummary_botRecommendationId,++    -- * BotSortBy+    BotSortBy (..),+    newBotSortBy,+    botSortBy_attribute,+    botSortBy_order,++    -- * BotSummary+    BotSummary (..),+    newBotSummary,+    botSummary_botId,+    botSummary_botName,+    botSummary_botStatus,+    botSummary_description,+    botSummary_lastUpdatedDateTime,+    botSummary_latestBotVersion,++    -- * BotVersionLocaleDetails+    BotVersionLocaleDetails (..),+    newBotVersionLocaleDetails,+    botVersionLocaleDetails_sourceBotVersion,++    -- * BotVersionSortBy+    BotVersionSortBy (..),+    newBotVersionSortBy,+    botVersionSortBy_attribute,+    botVersionSortBy_order,++    -- * BotVersionSummary+    BotVersionSummary (..),+    newBotVersionSummary,+    botVersionSummary_botName,+    botVersionSummary_botStatus,+    botVersionSummary_botVersion,+    botVersionSummary_creationDateTime,+    botVersionSummary_description,++    -- * BuiltInIntentSortBy+    BuiltInIntentSortBy (..),+    newBuiltInIntentSortBy,+    builtInIntentSortBy_attribute,+    builtInIntentSortBy_order,++    -- * BuiltInIntentSummary+    BuiltInIntentSummary (..),+    newBuiltInIntentSummary,+    builtInIntentSummary_description,+    builtInIntentSummary_intentSignature,++    -- * BuiltInSlotTypeSortBy+    BuiltInSlotTypeSortBy (..),+    newBuiltInSlotTypeSortBy,+    builtInSlotTypeSortBy_attribute,+    builtInSlotTypeSortBy_order,++    -- * BuiltInSlotTypeSummary+    BuiltInSlotTypeSummary (..),+    newBuiltInSlotTypeSummary,+    builtInSlotTypeSummary_description,+    builtInSlotTypeSummary_slotTypeSignature,++    -- * Button+    Button (..),+    newButton,+    button_text,+    button_value,++    -- * CloudWatchLogGroupLogDestination+    CloudWatchLogGroupLogDestination (..),+    newCloudWatchLogGroupLogDestination,+    cloudWatchLogGroupLogDestination_cloudWatchLogGroupArn,+    cloudWatchLogGroupLogDestination_logPrefix,++    -- * CodeHookSpecification+    CodeHookSpecification (..),+    newCodeHookSpecification,+    codeHookSpecification_lambdaCodeHook,++    -- * CompositeSlotTypeSetting+    CompositeSlotTypeSetting (..),+    newCompositeSlotTypeSetting,+    compositeSlotTypeSetting_subSlots,++    -- * Condition+    Condition (..),+    newCondition,+    condition_expressionString,++    -- * ConditionalBranch+    ConditionalBranch (..),+    newConditionalBranch,+    conditionalBranch_response,+    conditionalBranch_name,+    conditionalBranch_condition,+    conditionalBranch_nextStep,++    -- * ConditionalSpecification+    ConditionalSpecification (..),+    newConditionalSpecification,+    conditionalSpecification_active,+    conditionalSpecification_conditionalBranches,+    conditionalSpecification_defaultBranch,++    -- * ConversationLogSettings+    ConversationLogSettings (..),+    newConversationLogSettings,+    conversationLogSettings_audioLogSettings,+    conversationLogSettings_textLogSettings,++    -- * CustomPayload+    CustomPayload (..),+    newCustomPayload,+    customPayload_value,++    -- * CustomVocabularyEntryId+    CustomVocabularyEntryId (..),+    newCustomVocabularyEntryId,+    customVocabularyEntryId_itemId,++    -- * CustomVocabularyExportSpecification+    CustomVocabularyExportSpecification (..),+    newCustomVocabularyExportSpecification,+    customVocabularyExportSpecification_botId,+    customVocabularyExportSpecification_botVersion,+    customVocabularyExportSpecification_localeId,++    -- * CustomVocabularyImportSpecification+    CustomVocabularyImportSpecification (..),+    newCustomVocabularyImportSpecification,+    customVocabularyImportSpecification_botId,+    customVocabularyImportSpecification_botVersion,+    customVocabularyImportSpecification_localeId,++    -- * CustomVocabularyItem+    CustomVocabularyItem (..),+    newCustomVocabularyItem,+    customVocabularyItem_displayAs,+    customVocabularyItem_weight,+    customVocabularyItem_itemId,+    customVocabularyItem_phrase,++    -- * DTMFSpecification+    DTMFSpecification (..),+    newDTMFSpecification,+    dTMFSpecification_maxLength,+    dTMFSpecification_endTimeoutMs,+    dTMFSpecification_deletionCharacter,+    dTMFSpecification_endCharacter,++    -- * DataPrivacy+    DataPrivacy (..),+    newDataPrivacy,+    dataPrivacy_childDirected,++    -- * DateRangeFilter+    DateRangeFilter (..),+    newDateRangeFilter,+    dateRangeFilter_startDateTime,+    dateRangeFilter_endDateTime,++    -- * DefaultConditionalBranch+    DefaultConditionalBranch (..),+    newDefaultConditionalBranch,+    defaultConditionalBranch_nextStep,+    defaultConditionalBranch_response,++    -- * DialogAction+    DialogAction (..),+    newDialogAction,+    dialogAction_slotToElicit,+    dialogAction_suppressNextMessage,+    dialogAction_type,++    -- * DialogCodeHookInvocationSetting+    DialogCodeHookInvocationSetting (..),+    newDialogCodeHookInvocationSetting,+    dialogCodeHookInvocationSetting_invocationLabel,+    dialogCodeHookInvocationSetting_enableCodeHookInvocation,+    dialogCodeHookInvocationSetting_active,+    dialogCodeHookInvocationSetting_postCodeHookSpecification,++    -- * DialogCodeHookSettings+    DialogCodeHookSettings (..),+    newDialogCodeHookSettings,+    dialogCodeHookSettings_enabled,++    -- * DialogState+    DialogState (..),+    newDialogState,+    dialogState_dialogAction,+    dialogState_intent,+    dialogState_sessionAttributes,++    -- * ElicitationCodeHookInvocationSetting+    ElicitationCodeHookInvocationSetting (..),+    newElicitationCodeHookInvocationSetting,+    elicitationCodeHookInvocationSetting_invocationLabel,+    elicitationCodeHookInvocationSetting_enableCodeHookInvocation,++    -- * EncryptionSetting+    EncryptionSetting (..),+    newEncryptionSetting,+    encryptionSetting_associatedTranscriptsPassword,+    encryptionSetting_botLocaleExportPassword,+    encryptionSetting_kmsKeyArn,++    -- * ExportFilter+    ExportFilter (..),+    newExportFilter,+    exportFilter_name,+    exportFilter_values,+    exportFilter_operator,++    -- * ExportResourceSpecification+    ExportResourceSpecification (..),+    newExportResourceSpecification,+    exportResourceSpecification_botExportSpecification,+    exportResourceSpecification_botLocaleExportSpecification,+    exportResourceSpecification_customVocabularyExportSpecification,++    -- * ExportSortBy+    ExportSortBy (..),+    newExportSortBy,+    exportSortBy_attribute,+    exportSortBy_order,++    -- * ExportSummary+    ExportSummary (..),+    newExportSummary,+    exportSummary_creationDateTime,+    exportSummary_exportId,+    exportSummary_exportStatus,+    exportSummary_fileFormat,+    exportSummary_lastUpdatedDateTime,+    exportSummary_resourceSpecification,++    -- * ExternalSourceSetting+    ExternalSourceSetting (..),+    newExternalSourceSetting,+    externalSourceSetting_grammarSlotTypeSetting,++    -- * FailedCustomVocabularyItem+    FailedCustomVocabularyItem (..),+    newFailedCustomVocabularyItem,+    failedCustomVocabularyItem_errorCode,+    failedCustomVocabularyItem_errorMessage,+    failedCustomVocabularyItem_itemId,++    -- * FulfillmentCodeHookSettings+    FulfillmentCodeHookSettings (..),+    newFulfillmentCodeHookSettings,+    fulfillmentCodeHookSettings_active,+    fulfillmentCodeHookSettings_fulfillmentUpdatesSpecification,+    fulfillmentCodeHookSettings_postFulfillmentStatusSpecification,+    fulfillmentCodeHookSettings_enabled,++    -- * FulfillmentStartResponseSpecification+    FulfillmentStartResponseSpecification (..),+    newFulfillmentStartResponseSpecification,+    fulfillmentStartResponseSpecification_allowInterrupt,+    fulfillmentStartResponseSpecification_delayInSeconds,+    fulfillmentStartResponseSpecification_messageGroups,++    -- * FulfillmentUpdateResponseSpecification+    FulfillmentUpdateResponseSpecification (..),+    newFulfillmentUpdateResponseSpecification,+    fulfillmentUpdateResponseSpecification_allowInterrupt,+    fulfillmentUpdateResponseSpecification_frequencyInSeconds,+    fulfillmentUpdateResponseSpecification_messageGroups,++    -- * FulfillmentUpdatesSpecification+    FulfillmentUpdatesSpecification (..),+    newFulfillmentUpdatesSpecification,+    fulfillmentUpdatesSpecification_startResponse,+    fulfillmentUpdatesSpecification_timeoutInSeconds,+    fulfillmentUpdatesSpecification_updateResponse,+    fulfillmentUpdatesSpecification_active,++    -- * GrammarSlotTypeSetting+    GrammarSlotTypeSetting (..),+    newGrammarSlotTypeSetting,+    grammarSlotTypeSetting_source,++    -- * GrammarSlotTypeSource+    GrammarSlotTypeSource (..),+    newGrammarSlotTypeSource,+    grammarSlotTypeSource_kmsKeyArn,+    grammarSlotTypeSource_s3BucketName,+    grammarSlotTypeSource_s3ObjectKey,++    -- * ImageResponseCard+    ImageResponseCard (..),+    newImageResponseCard,+    imageResponseCard_buttons,+    imageResponseCard_imageUrl,+    imageResponseCard_subtitle,+    imageResponseCard_title,++    -- * ImportFilter+    ImportFilter (..),+    newImportFilter,+    importFilter_name,+    importFilter_values,+    importFilter_operator,++    -- * ImportResourceSpecification+    ImportResourceSpecification (..),+    newImportResourceSpecification,+    importResourceSpecification_botImportSpecification,+    importResourceSpecification_botLocaleImportSpecification,+    importResourceSpecification_customVocabularyImportSpecification,++    -- * ImportSortBy+    ImportSortBy (..),+    newImportSortBy,+    importSortBy_attribute,+    importSortBy_order,++    -- * ImportSummary+    ImportSummary (..),+    newImportSummary,+    importSummary_creationDateTime,+    importSummary_importId,+    importSummary_importStatus,+    importSummary_importedResourceId,+    importSummary_importedResourceName,+    importSummary_importedResourceType,+    importSummary_lastUpdatedDateTime,+    importSummary_mergeStrategy,++    -- * InitialResponseSetting+    InitialResponseSetting (..),+    newInitialResponseSetting,+    initialResponseSetting_codeHook,+    initialResponseSetting_conditional,+    initialResponseSetting_initialResponse,+    initialResponseSetting_nextStep,++    -- * InputContext+    InputContext (..),+    newInputContext,+    inputContext_name,++    -- * IntentClosingSetting+    IntentClosingSetting (..),+    newIntentClosingSetting,+    intentClosingSetting_active,+    intentClosingSetting_closingResponse,+    intentClosingSetting_conditional,+    intentClosingSetting_nextStep,++    -- * IntentConfirmationSetting+    IntentConfirmationSetting (..),+    newIntentConfirmationSetting,+    intentConfirmationSetting_active,+    intentConfirmationSetting_codeHook,+    intentConfirmationSetting_confirmationConditional,+    intentConfirmationSetting_confirmationNextStep,+    intentConfirmationSetting_confirmationResponse,+    intentConfirmationSetting_declinationConditional,+    intentConfirmationSetting_declinationNextStep,+    intentConfirmationSetting_declinationResponse,+    intentConfirmationSetting_elicitationCodeHook,+    intentConfirmationSetting_failureConditional,+    intentConfirmationSetting_failureNextStep,+    intentConfirmationSetting_failureResponse,+    intentConfirmationSetting_promptSpecification,++    -- * IntentFilter+    IntentFilter (..),+    newIntentFilter,+    intentFilter_name,+    intentFilter_values,+    intentFilter_operator,++    -- * IntentOverride+    IntentOverride (..),+    newIntentOverride,+    intentOverride_name,+    intentOverride_slots,++    -- * IntentSortBy+    IntentSortBy (..),+    newIntentSortBy,+    intentSortBy_attribute,+    intentSortBy_order,++    -- * IntentStatistics+    IntentStatistics (..),+    newIntentStatistics,+    intentStatistics_discoveredIntentCount,++    -- * IntentSummary+    IntentSummary (..),+    newIntentSummary,+    intentSummary_description,+    intentSummary_inputContexts,+    intentSummary_intentId,+    intentSummary_intentName,+    intentSummary_lastUpdatedDateTime,+    intentSummary_outputContexts,+    intentSummary_parentIntentSignature,++    -- * KendraConfiguration+    KendraConfiguration (..),+    newKendraConfiguration,+    kendraConfiguration_queryFilterString,+    kendraConfiguration_queryFilterStringEnabled,+    kendraConfiguration_kendraIndex,++    -- * LambdaCodeHook+    LambdaCodeHook (..),+    newLambdaCodeHook,+    lambdaCodeHook_lambdaARN,+    lambdaCodeHook_codeHookInterfaceVersion,++    -- * LexTranscriptFilter+    LexTranscriptFilter (..),+    newLexTranscriptFilter,+    lexTranscriptFilter_dateRangeFilter,++    -- * Message+    Message (..),+    newMessage,+    message_customPayload,+    message_imageResponseCard,+    message_plainTextMessage,+    message_ssmlMessage,++    -- * MessageGroup+    MessageGroup (..),+    newMessageGroup,+    messageGroup_variations,+    messageGroup_message,++    -- * MultipleValuesSetting+    MultipleValuesSetting (..),+    newMultipleValuesSetting,+    multipleValuesSetting_allowMultipleValues,++    -- * NewCustomVocabularyItem+    NewCustomVocabularyItem (..),+    newNewCustomVocabularyItem,+    newCustomVocabularyItem_displayAs,+    newCustomVocabularyItem_weight,+    newCustomVocabularyItem_phrase,++    -- * ObfuscationSetting+    ObfuscationSetting (..),+    newObfuscationSetting,+    obfuscationSetting_obfuscationSettingType,++    -- * OutputContext+    OutputContext (..),+    newOutputContext,+    outputContext_name,+    outputContext_timeToLiveInSeconds,+    outputContext_turnsToLive,++    -- * PathFormat+    PathFormat (..),+    newPathFormat,+    pathFormat_objectPrefixes,++    -- * PlainTextMessage+    PlainTextMessage (..),+    newPlainTextMessage,+    plainTextMessage_value,++    -- * PostDialogCodeHookInvocationSpecification+    PostDialogCodeHookInvocationSpecification (..),+    newPostDialogCodeHookInvocationSpecification,+    postDialogCodeHookInvocationSpecification_failureConditional,+    postDialogCodeHookInvocationSpecification_failureNextStep,+    postDialogCodeHookInvocationSpecification_failureResponse,+    postDialogCodeHookInvocationSpecification_successConditional,+    postDialogCodeHookInvocationSpecification_successNextStep,+    postDialogCodeHookInvocationSpecification_successResponse,+    postDialogCodeHookInvocationSpecification_timeoutConditional,+    postDialogCodeHookInvocationSpecification_timeoutNextStep,+    postDialogCodeHookInvocationSpecification_timeoutResponse,++    -- * PostFulfillmentStatusSpecification+    PostFulfillmentStatusSpecification (..),+    newPostFulfillmentStatusSpecification,+    postFulfillmentStatusSpecification_failureConditional,+    postFulfillmentStatusSpecification_failureNextStep,+    postFulfillmentStatusSpecification_failureResponse,+    postFulfillmentStatusSpecification_successConditional,+    postFulfillmentStatusSpecification_successNextStep,+    postFulfillmentStatusSpecification_successResponse,+    postFulfillmentStatusSpecification_timeoutConditional,+    postFulfillmentStatusSpecification_timeoutNextStep,+    postFulfillmentStatusSpecification_timeoutResponse,++    -- * Principal+    Principal (..),+    newPrincipal,+    principal_arn,+    principal_service,++    -- * PromptAttemptSpecification+    PromptAttemptSpecification (..),+    newPromptAttemptSpecification,+    promptAttemptSpecification_allowInterrupt,+    promptAttemptSpecification_audioAndDTMFInputSpecification,+    promptAttemptSpecification_textInputSpecification,+    promptAttemptSpecification_allowedInputTypes,++    -- * PromptSpecification+    PromptSpecification (..),+    newPromptSpecification,+    promptSpecification_allowInterrupt,+    promptSpecification_messageSelectionStrategy,+    promptSpecification_promptAttemptsSpecification,+    promptSpecification_messageGroups,+    promptSpecification_maxRetries,++    -- * RecommendedIntentSummary+    RecommendedIntentSummary (..),+    newRecommendedIntentSummary,+    recommendedIntentSummary_intentId,+    recommendedIntentSummary_intentName,+    recommendedIntentSummary_sampleUtterancesCount,++    -- * RelativeAggregationDuration+    RelativeAggregationDuration (..),+    newRelativeAggregationDuration,+    relativeAggregationDuration_timeDimension,+    relativeAggregationDuration_timeValue,++    -- * ResponseSpecification+    ResponseSpecification (..),+    newResponseSpecification,+    responseSpecification_allowInterrupt,+    responseSpecification_messageGroups,++    -- * S3BucketLogDestination+    S3BucketLogDestination (..),+    newS3BucketLogDestination,+    s3BucketLogDestination_kmsKeyArn,+    s3BucketLogDestination_s3BucketArn,+    s3BucketLogDestination_logPrefix,++    -- * S3BucketTranscriptSource+    S3BucketTranscriptSource (..),+    newS3BucketTranscriptSource,+    s3BucketTranscriptSource_kmsKeyArn,+    s3BucketTranscriptSource_pathFormat,+    s3BucketTranscriptSource_transcriptFilter,+    s3BucketTranscriptSource_s3BucketName,+    s3BucketTranscriptSource_transcriptFormat,++    -- * SSMLMessage+    SSMLMessage (..),+    newSSMLMessage,+    sSMLMessage_value,++    -- * SampleUtterance+    SampleUtterance (..),+    newSampleUtterance,+    sampleUtterance_utterance,++    -- * SampleValue+    SampleValue (..),+    newSampleValue,+    sampleValue_value,++    -- * SentimentAnalysisSettings+    SentimentAnalysisSettings (..),+    newSentimentAnalysisSettings,+    sentimentAnalysisSettings_detectSentiment,++    -- * SlotCaptureSetting+    SlotCaptureSetting (..),+    newSlotCaptureSetting,+    slotCaptureSetting_captureConditional,+    slotCaptureSetting_captureNextStep,+    slotCaptureSetting_captureResponse,+    slotCaptureSetting_codeHook,+    slotCaptureSetting_elicitationCodeHook,+    slotCaptureSetting_failureConditional,+    slotCaptureSetting_failureNextStep,+    slotCaptureSetting_failureResponse,++    -- * SlotDefaultValue+    SlotDefaultValue (..),+    newSlotDefaultValue,+    slotDefaultValue_defaultValue,++    -- * SlotDefaultValueSpecification+    SlotDefaultValueSpecification (..),+    newSlotDefaultValueSpecification,+    slotDefaultValueSpecification_defaultValueList,++    -- * SlotFilter+    SlotFilter (..),+    newSlotFilter,+    slotFilter_name,+    slotFilter_values,+    slotFilter_operator,++    -- * SlotPriority+    SlotPriority (..),+    newSlotPriority,+    slotPriority_priority,+    slotPriority_slotId,++    -- * SlotSortBy+    SlotSortBy (..),+    newSlotSortBy,+    slotSortBy_attribute,+    slotSortBy_order,++    -- * SlotSummary+    SlotSummary (..),+    newSlotSummary,+    slotSummary_description,+    slotSummary_lastUpdatedDateTime,+    slotSummary_slotConstraint,+    slotSummary_slotId,+    slotSummary_slotName,+    slotSummary_slotTypeId,+    slotSummary_valueElicitationPromptSpecification,++    -- * SlotTypeFilter+    SlotTypeFilter (..),+    newSlotTypeFilter,+    slotTypeFilter_name,+    slotTypeFilter_values,+    slotTypeFilter_operator,++    -- * SlotTypeSortBy+    SlotTypeSortBy (..),+    newSlotTypeSortBy,+    slotTypeSortBy_attribute,+    slotTypeSortBy_order,++    -- * SlotTypeStatistics+    SlotTypeStatistics (..),+    newSlotTypeStatistics,+    slotTypeStatistics_discoveredSlotTypeCount,++    -- * SlotTypeSummary+    SlotTypeSummary (..),+    newSlotTypeSummary,+    slotTypeSummary_description,+    slotTypeSummary_lastUpdatedDateTime,+    slotTypeSummary_parentSlotTypeSignature,+    slotTypeSummary_slotTypeCategory,+    slotTypeSummary_slotTypeId,+    slotTypeSummary_slotTypeName,++    -- * SlotTypeValue+    SlotTypeValue (..),+    newSlotTypeValue,+    slotTypeValue_sampleValue,+    slotTypeValue_synonyms,++    -- * SlotValue+    SlotValue (..),+    newSlotValue,+    slotValue_interpretedValue,++    -- * SlotValueElicitationSetting+    SlotValueElicitationSetting (..),+    newSlotValueElicitationSetting,+    slotValueElicitationSetting_defaultValueSpecification,+    slotValueElicitationSetting_promptSpecification,+    slotValueElicitationSetting_sampleUtterances,+    slotValueElicitationSetting_slotCaptureSetting,+    slotValueElicitationSetting_waitAndContinueSpecification,+    slotValueElicitationSetting_slotConstraint,++    -- * SlotValueOverride+    SlotValueOverride (..),+    newSlotValueOverride,+    slotValueOverride_shape,+    slotValueOverride_value,+    slotValueOverride_values,++    -- * SlotValueRegexFilter+    SlotValueRegexFilter (..),+    newSlotValueRegexFilter,+    slotValueRegexFilter_pattern,++    -- * SlotValueSelectionSetting+    SlotValueSelectionSetting (..),+    newSlotValueSelectionSetting,+    slotValueSelectionSetting_advancedRecognitionSetting,+    slotValueSelectionSetting_regexFilter,+    slotValueSelectionSetting_resolutionStrategy,++    -- * Specifications+    Specifications (..),+    newSpecifications,+    specifications_slotTypeId,+    specifications_valueElicitationSetting,++    -- * StillWaitingResponseSpecification+    StillWaitingResponseSpecification (..),+    newStillWaitingResponseSpecification,+    stillWaitingResponseSpecification_allowInterrupt,+    stillWaitingResponseSpecification_messageGroups,+    stillWaitingResponseSpecification_frequencyInSeconds,+    stillWaitingResponseSpecification_timeoutInSeconds,++    -- * SubSlotSetting+    SubSlotSetting (..),+    newSubSlotSetting,+    subSlotSetting_expression,+    subSlotSetting_slotSpecifications,++    -- * SubSlotTypeComposition+    SubSlotTypeComposition (..),+    newSubSlotTypeComposition,+    subSlotTypeComposition_name,+    subSlotTypeComposition_slotTypeId,++    -- * SubSlotValueElicitationSetting+    SubSlotValueElicitationSetting (..),+    newSubSlotValueElicitationSetting,+    subSlotValueElicitationSetting_defaultValueSpecification,+    subSlotValueElicitationSetting_sampleUtterances,+    subSlotValueElicitationSetting_waitAndContinueSpecification,+    subSlotValueElicitationSetting_promptSpecification,++    -- * TextInputSpecification+    TextInputSpecification (..),+    newTextInputSpecification,+    textInputSpecification_startTimeoutMs,++    -- * TextLogDestination+    TextLogDestination (..),+    newTextLogDestination,+    textLogDestination_cloudWatch,++    -- * TextLogSetting+    TextLogSetting (..),+    newTextLogSetting,+    textLogSetting_enabled,+    textLogSetting_destination,++    -- * TranscriptFilter+    TranscriptFilter (..),+    newTranscriptFilter,+    transcriptFilter_lexTranscriptFilter,++    -- * TranscriptSourceSetting+    TranscriptSourceSetting (..),+    newTranscriptSourceSetting,+    transcriptSourceSetting_s3BucketTranscriptSource,++    -- * UtteranceAggregationDuration+    UtteranceAggregationDuration (..),+    newUtteranceAggregationDuration,+    utteranceAggregationDuration_relativeAggregationDuration,++    -- * VoiceSettings+    VoiceSettings (..),+    newVoiceSettings,+    voiceSettings_engine,+    voiceSettings_voiceId,++    -- * WaitAndContinueSpecification+    WaitAndContinueSpecification (..),+    newWaitAndContinueSpecification,+    waitAndContinueSpecification_active,+    waitAndContinueSpecification_stillWaitingResponse,+    waitAndContinueSpecification_waitingResponse,+    waitAndContinueSpecification_continueResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.LexV2Models.Types.AdvancedRecognitionSetting+import Amazonka.LexV2Models.Types.AggregatedUtterancesFilter+import Amazonka.LexV2Models.Types.AggregatedUtterancesFilterName+import Amazonka.LexV2Models.Types.AggregatedUtterancesFilterOperator+import Amazonka.LexV2Models.Types.AggregatedUtterancesSortAttribute+import Amazonka.LexV2Models.Types.AggregatedUtterancesSortBy+import Amazonka.LexV2Models.Types.AggregatedUtterancesSummary+import Amazonka.LexV2Models.Types.AllowedInputTypes+import Amazonka.LexV2Models.Types.AssociatedTranscript+import Amazonka.LexV2Models.Types.AssociatedTranscriptFilter+import Amazonka.LexV2Models.Types.AssociatedTranscriptFilterName+import Amazonka.LexV2Models.Types.AudioAndDTMFInputSpecification+import Amazonka.LexV2Models.Types.AudioLogDestination+import Amazonka.LexV2Models.Types.AudioLogSetting+import Amazonka.LexV2Models.Types.AudioRecognitionStrategy+import Amazonka.LexV2Models.Types.AudioSpecification+import Amazonka.LexV2Models.Types.BotAliasHistoryEvent+import Amazonka.LexV2Models.Types.BotAliasLocaleSettings+import Amazonka.LexV2Models.Types.BotAliasStatus+import Amazonka.LexV2Models.Types.BotAliasSummary+import Amazonka.LexV2Models.Types.BotExportSpecification+import Amazonka.LexV2Models.Types.BotFilter+import Amazonka.LexV2Models.Types.BotFilterName+import Amazonka.LexV2Models.Types.BotFilterOperator+import Amazonka.LexV2Models.Types.BotImportSpecification+import Amazonka.LexV2Models.Types.BotLocaleExportSpecification+import Amazonka.LexV2Models.Types.BotLocaleFilter+import Amazonka.LexV2Models.Types.BotLocaleFilterName+import Amazonka.LexV2Models.Types.BotLocaleFilterOperator+import Amazonka.LexV2Models.Types.BotLocaleHistoryEvent+import Amazonka.LexV2Models.Types.BotLocaleImportSpecification+import Amazonka.LexV2Models.Types.BotLocaleSortAttribute+import Amazonka.LexV2Models.Types.BotLocaleSortBy+import Amazonka.LexV2Models.Types.BotLocaleStatus+import Amazonka.LexV2Models.Types.BotLocaleSummary+import Amazonka.LexV2Models.Types.BotRecommendationResultStatistics+import Amazonka.LexV2Models.Types.BotRecommendationResults+import Amazonka.LexV2Models.Types.BotRecommendationStatus+import Amazonka.LexV2Models.Types.BotRecommendationSummary+import Amazonka.LexV2Models.Types.BotSortAttribute+import Amazonka.LexV2Models.Types.BotSortBy+import Amazonka.LexV2Models.Types.BotStatus+import Amazonka.LexV2Models.Types.BotSummary+import Amazonka.LexV2Models.Types.BotVersionLocaleDetails+import Amazonka.LexV2Models.Types.BotVersionSortAttribute+import Amazonka.LexV2Models.Types.BotVersionSortBy+import Amazonka.LexV2Models.Types.BotVersionSummary+import Amazonka.LexV2Models.Types.BuiltInIntentSortAttribute+import Amazonka.LexV2Models.Types.BuiltInIntentSortBy+import Amazonka.LexV2Models.Types.BuiltInIntentSummary+import Amazonka.LexV2Models.Types.BuiltInSlotTypeSortAttribute+import Amazonka.LexV2Models.Types.BuiltInSlotTypeSortBy+import Amazonka.LexV2Models.Types.BuiltInSlotTypeSummary+import Amazonka.LexV2Models.Types.Button+import Amazonka.LexV2Models.Types.CloudWatchLogGroupLogDestination+import Amazonka.LexV2Models.Types.CodeHookSpecification+import Amazonka.LexV2Models.Types.CompositeSlotTypeSetting+import Amazonka.LexV2Models.Types.Condition+import Amazonka.LexV2Models.Types.ConditionalBranch+import Amazonka.LexV2Models.Types.ConditionalSpecification+import Amazonka.LexV2Models.Types.ConversationLogSettings+import Amazonka.LexV2Models.Types.CustomPayload+import Amazonka.LexV2Models.Types.CustomVocabularyEntryId+import Amazonka.LexV2Models.Types.CustomVocabularyExportSpecification+import Amazonka.LexV2Models.Types.CustomVocabularyImportSpecification+import Amazonka.LexV2Models.Types.CustomVocabularyItem+import Amazonka.LexV2Models.Types.CustomVocabularyStatus+import Amazonka.LexV2Models.Types.DTMFSpecification+import Amazonka.LexV2Models.Types.DataPrivacy+import Amazonka.LexV2Models.Types.DateRangeFilter+import Amazonka.LexV2Models.Types.DefaultConditionalBranch+import Amazonka.LexV2Models.Types.DialogAction+import Amazonka.LexV2Models.Types.DialogActionType+import Amazonka.LexV2Models.Types.DialogCodeHookInvocationSetting+import Amazonka.LexV2Models.Types.DialogCodeHookSettings+import Amazonka.LexV2Models.Types.DialogState+import Amazonka.LexV2Models.Types.Effect+import Amazonka.LexV2Models.Types.ElicitationCodeHookInvocationSetting+import Amazonka.LexV2Models.Types.EncryptionSetting+import Amazonka.LexV2Models.Types.ErrorCode+import Amazonka.LexV2Models.Types.ExportFilter+import Amazonka.LexV2Models.Types.ExportFilterName+import Amazonka.LexV2Models.Types.ExportFilterOperator+import Amazonka.LexV2Models.Types.ExportResourceSpecification+import Amazonka.LexV2Models.Types.ExportSortAttribute+import Amazonka.LexV2Models.Types.ExportSortBy+import Amazonka.LexV2Models.Types.ExportStatus+import Amazonka.LexV2Models.Types.ExportSummary+import Amazonka.LexV2Models.Types.ExternalSourceSetting+import Amazonka.LexV2Models.Types.FailedCustomVocabularyItem+import Amazonka.LexV2Models.Types.FulfillmentCodeHookSettings+import Amazonka.LexV2Models.Types.FulfillmentStartResponseSpecification+import Amazonka.LexV2Models.Types.FulfillmentUpdateResponseSpecification+import Amazonka.LexV2Models.Types.FulfillmentUpdatesSpecification+import Amazonka.LexV2Models.Types.GrammarSlotTypeSetting+import Amazonka.LexV2Models.Types.GrammarSlotTypeSource+import Amazonka.LexV2Models.Types.ImageResponseCard+import Amazonka.LexV2Models.Types.ImportExportFileFormat+import Amazonka.LexV2Models.Types.ImportFilter+import Amazonka.LexV2Models.Types.ImportFilterName+import Amazonka.LexV2Models.Types.ImportFilterOperator+import Amazonka.LexV2Models.Types.ImportResourceSpecification+import Amazonka.LexV2Models.Types.ImportResourceType+import Amazonka.LexV2Models.Types.ImportSortAttribute+import Amazonka.LexV2Models.Types.ImportSortBy+import Amazonka.LexV2Models.Types.ImportStatus+import Amazonka.LexV2Models.Types.ImportSummary+import Amazonka.LexV2Models.Types.InitialResponseSetting+import Amazonka.LexV2Models.Types.InputContext+import Amazonka.LexV2Models.Types.IntentClosingSetting+import Amazonka.LexV2Models.Types.IntentConfirmationSetting+import Amazonka.LexV2Models.Types.IntentFilter+import Amazonka.LexV2Models.Types.IntentFilterName+import Amazonka.LexV2Models.Types.IntentFilterOperator+import Amazonka.LexV2Models.Types.IntentOverride+import Amazonka.LexV2Models.Types.IntentSortAttribute+import Amazonka.LexV2Models.Types.IntentSortBy+import Amazonka.LexV2Models.Types.IntentStatistics+import Amazonka.LexV2Models.Types.IntentSummary+import Amazonka.LexV2Models.Types.KendraConfiguration+import Amazonka.LexV2Models.Types.LambdaCodeHook+import Amazonka.LexV2Models.Types.LexTranscriptFilter+import Amazonka.LexV2Models.Types.MergeStrategy+import Amazonka.LexV2Models.Types.Message+import Amazonka.LexV2Models.Types.MessageGroup+import Amazonka.LexV2Models.Types.MessageSelectionStrategy+import Amazonka.LexV2Models.Types.MultipleValuesSetting+import Amazonka.LexV2Models.Types.NewCustomVocabularyItem+import Amazonka.LexV2Models.Types.ObfuscationSetting+import Amazonka.LexV2Models.Types.ObfuscationSettingType+import Amazonka.LexV2Models.Types.OutputContext+import Amazonka.LexV2Models.Types.PathFormat+import Amazonka.LexV2Models.Types.PlainTextMessage+import Amazonka.LexV2Models.Types.PostDialogCodeHookInvocationSpecification+import Amazonka.LexV2Models.Types.PostFulfillmentStatusSpecification+import Amazonka.LexV2Models.Types.Principal+import Amazonka.LexV2Models.Types.PromptAttempt+import Amazonka.LexV2Models.Types.PromptAttemptSpecification+import Amazonka.LexV2Models.Types.PromptSpecification+import Amazonka.LexV2Models.Types.RecommendedIntentSummary+import Amazonka.LexV2Models.Types.RelativeAggregationDuration+import Amazonka.LexV2Models.Types.ResponseSpecification+import Amazonka.LexV2Models.Types.S3BucketLogDestination+import Amazonka.LexV2Models.Types.S3BucketTranscriptSource+import Amazonka.LexV2Models.Types.SSMLMessage+import Amazonka.LexV2Models.Types.SampleUtterance+import Amazonka.LexV2Models.Types.SampleValue+import Amazonka.LexV2Models.Types.SearchOrder+import Amazonka.LexV2Models.Types.SentimentAnalysisSettings+import Amazonka.LexV2Models.Types.SlotCaptureSetting+import Amazonka.LexV2Models.Types.SlotConstraint+import Amazonka.LexV2Models.Types.SlotDefaultValue+import Amazonka.LexV2Models.Types.SlotDefaultValueSpecification+import Amazonka.LexV2Models.Types.SlotFilter+import Amazonka.LexV2Models.Types.SlotFilterName+import Amazonka.LexV2Models.Types.SlotFilterOperator+import Amazonka.LexV2Models.Types.SlotPriority+import Amazonka.LexV2Models.Types.SlotShape+import Amazonka.LexV2Models.Types.SlotSortAttribute+import Amazonka.LexV2Models.Types.SlotSortBy+import Amazonka.LexV2Models.Types.SlotSummary+import Amazonka.LexV2Models.Types.SlotTypeCategory+import Amazonka.LexV2Models.Types.SlotTypeFilter+import Amazonka.LexV2Models.Types.SlotTypeFilterName+import Amazonka.LexV2Models.Types.SlotTypeFilterOperator+import Amazonka.LexV2Models.Types.SlotTypeSortAttribute+import Amazonka.LexV2Models.Types.SlotTypeSortBy+import Amazonka.LexV2Models.Types.SlotTypeStatistics+import Amazonka.LexV2Models.Types.SlotTypeSummary+import Amazonka.LexV2Models.Types.SlotTypeValue+import Amazonka.LexV2Models.Types.SlotValue+import Amazonka.LexV2Models.Types.SlotValueElicitationSetting+import Amazonka.LexV2Models.Types.SlotValueOverride+import Amazonka.LexV2Models.Types.SlotValueRegexFilter+import Amazonka.LexV2Models.Types.SlotValueResolutionStrategy+import Amazonka.LexV2Models.Types.SlotValueSelectionSetting+import Amazonka.LexV2Models.Types.SortOrder+import Amazonka.LexV2Models.Types.Specifications+import Amazonka.LexV2Models.Types.StillWaitingResponseSpecification+import Amazonka.LexV2Models.Types.SubSlotSetting+import Amazonka.LexV2Models.Types.SubSlotTypeComposition+import Amazonka.LexV2Models.Types.SubSlotValueElicitationSetting+import Amazonka.LexV2Models.Types.TextInputSpecification+import Amazonka.LexV2Models.Types.TextLogDestination+import Amazonka.LexV2Models.Types.TextLogSetting+import Amazonka.LexV2Models.Types.TimeDimension+import Amazonka.LexV2Models.Types.TranscriptFilter+import Amazonka.LexV2Models.Types.TranscriptFormat+import Amazonka.LexV2Models.Types.TranscriptSourceSetting+import Amazonka.LexV2Models.Types.UtteranceAggregationDuration+import Amazonka.LexV2Models.Types.VoiceEngine+import Amazonka.LexV2Models.Types.VoiceSettings+import Amazonka.LexV2Models.Types.WaitAndContinueSpecification+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2020-08-07@ of the Amazon Lex Model Building V2 SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "LexV2Models",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "models-v2-lex",+      Core.signingName = "lex",+      Core.version = "2020-08-07",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "LexV2Models",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | The action that you tried to perform couldn\'t be completed because the+-- resource is in a conflicting state. For example, deleting a bot that is+-- in the CREATING state. Try your request again.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"+    Prelude.. Core.hasStatus 409++-- | The service encountered an unexpected condition. Try your request again.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"+    Prelude.. Core.hasStatus 500++-- | Your request couldn\'t be completed because one or more request fields+-- aren\'t valid. Check the fields in your request and try again.+_PreconditionFailedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_PreconditionFailedException =+  Core._MatchServiceError+    defaultService+    "PreconditionFailedException"+    Prelude.. Core.hasStatus 412++-- | You asked to describe a resource that doesn\'t exist. Check the resource+-- that you are requesting and try again.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"+    Prelude.. Core.hasStatus 404++-- | You have reached a quota for your bot.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"+    Prelude.. Core.hasStatus 402++-- | Your request rate is too high. Reduce the frequency of requests.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"+    Prelude.. Core.hasStatus 429++-- | One of the input parameters in your request isn\'t valid. Check the+-- parameters and try your request again.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"+    Prelude.. Core.hasStatus 400
+ gen/Amazonka/LexV2Models/Types/AdvancedRecognitionSetting.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.AdvancedRecognitionSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.AdvancedRecognitionSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.AudioRecognitionStrategy+import qualified Amazonka.Prelude as Prelude++-- | Provides settings that enable advanced recognition settings for slot+-- values.+--+-- /See:/ 'newAdvancedRecognitionSetting' smart constructor.+data AdvancedRecognitionSetting = AdvancedRecognitionSetting'+  { -- | Enables using the slot values as a custom vocabulary for recognizing+    -- user utterances.+    audioRecognitionStrategy :: Prelude.Maybe AudioRecognitionStrategy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AdvancedRecognitionSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'audioRecognitionStrategy', 'advancedRecognitionSetting_audioRecognitionStrategy' - Enables using the slot values as a custom vocabulary for recognizing+-- user utterances.+newAdvancedRecognitionSetting ::+  AdvancedRecognitionSetting+newAdvancedRecognitionSetting =+  AdvancedRecognitionSetting'+    { audioRecognitionStrategy =+        Prelude.Nothing+    }++-- | Enables using the slot values as a custom vocabulary for recognizing+-- user utterances.+advancedRecognitionSetting_audioRecognitionStrategy :: Lens.Lens' AdvancedRecognitionSetting (Prelude.Maybe AudioRecognitionStrategy)+advancedRecognitionSetting_audioRecognitionStrategy = Lens.lens (\AdvancedRecognitionSetting' {audioRecognitionStrategy} -> audioRecognitionStrategy) (\s@AdvancedRecognitionSetting' {} a -> s {audioRecognitionStrategy = a} :: AdvancedRecognitionSetting)++instance Data.FromJSON AdvancedRecognitionSetting where+  parseJSON =+    Data.withObject+      "AdvancedRecognitionSetting"+      ( \x ->+          AdvancedRecognitionSetting'+            Prelude.<$> (x Data..:? "audioRecognitionStrategy")+      )++instance Prelude.Hashable AdvancedRecognitionSetting where+  hashWithSalt _salt AdvancedRecognitionSetting' {..} =+    _salt+      `Prelude.hashWithSalt` audioRecognitionStrategy++instance Prelude.NFData AdvancedRecognitionSetting where+  rnf AdvancedRecognitionSetting' {..} =+    Prelude.rnf audioRecognitionStrategy++instance Data.ToJSON AdvancedRecognitionSetting where+  toJSON AdvancedRecognitionSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("audioRecognitionStrategy" Data..=)+              Prelude.<$> audioRecognitionStrategy+          ]+      )
+ gen/Amazonka/LexV2Models/Types/AggregatedUtterancesFilter.hs view
@@ -0,0 +1,118 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.AggregatedUtterancesFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.AggregatedUtterancesFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.AggregatedUtterancesFilterName+import Amazonka.LexV2Models.Types.AggregatedUtterancesFilterOperator+import qualified Amazonka.Prelude as Prelude++-- | Filters responses returned by the @ListAggregatedUtterances@ operation.+--+-- /See:/ 'newAggregatedUtterancesFilter' smart constructor.+data AggregatedUtterancesFilter = AggregatedUtterancesFilter'+  { -- | The name of the field to filter the utterance list.+    name :: AggregatedUtterancesFilterName,+    -- | The value to use for filtering the list of bots.+    values :: Prelude.NonEmpty Prelude.Text,+    -- | The operator to use for the filter. Specify @EQ@ when the+    -- @ListAggregatedUtterances@ operation should return only utterances that+    -- equal the specified value. Specify @CO@ when the+    -- @ListAggregatedUtterances@ operation should return utterances that+    -- contain the specified value.+    operator :: AggregatedUtterancesFilterOperator+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AggregatedUtterancesFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'aggregatedUtterancesFilter_name' - The name of the field to filter the utterance list.+--+-- 'values', 'aggregatedUtterancesFilter_values' - The value to use for filtering the list of bots.+--+-- 'operator', 'aggregatedUtterancesFilter_operator' - The operator to use for the filter. Specify @EQ@ when the+-- @ListAggregatedUtterances@ operation should return only utterances that+-- equal the specified value. Specify @CO@ when the+-- @ListAggregatedUtterances@ operation should return utterances that+-- contain the specified value.+newAggregatedUtterancesFilter ::+  -- | 'name'+  AggregatedUtterancesFilterName ->+  -- | 'values'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'operator'+  AggregatedUtterancesFilterOperator ->+  AggregatedUtterancesFilter+newAggregatedUtterancesFilter+  pName_+  pValues_+  pOperator_ =+    AggregatedUtterancesFilter'+      { name = pName_,+        values = Lens.coerced Lens.# pValues_,+        operator = pOperator_+      }++-- | The name of the field to filter the utterance list.+aggregatedUtterancesFilter_name :: Lens.Lens' AggregatedUtterancesFilter AggregatedUtterancesFilterName+aggregatedUtterancesFilter_name = Lens.lens (\AggregatedUtterancesFilter' {name} -> name) (\s@AggregatedUtterancesFilter' {} a -> s {name = a} :: AggregatedUtterancesFilter)++-- | The value to use for filtering the list of bots.+aggregatedUtterancesFilter_values :: Lens.Lens' AggregatedUtterancesFilter (Prelude.NonEmpty Prelude.Text)+aggregatedUtterancesFilter_values = Lens.lens (\AggregatedUtterancesFilter' {values} -> values) (\s@AggregatedUtterancesFilter' {} a -> s {values = a} :: AggregatedUtterancesFilter) Prelude.. Lens.coerced++-- | The operator to use for the filter. Specify @EQ@ when the+-- @ListAggregatedUtterances@ operation should return only utterances that+-- equal the specified value. Specify @CO@ when the+-- @ListAggregatedUtterances@ operation should return utterances that+-- contain the specified value.+aggregatedUtterancesFilter_operator :: Lens.Lens' AggregatedUtterancesFilter AggregatedUtterancesFilterOperator+aggregatedUtterancesFilter_operator = Lens.lens (\AggregatedUtterancesFilter' {operator} -> operator) (\s@AggregatedUtterancesFilter' {} a -> s {operator = a} :: AggregatedUtterancesFilter)++instance Prelude.Hashable AggregatedUtterancesFilter where+  hashWithSalt _salt AggregatedUtterancesFilter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values+      `Prelude.hashWithSalt` operator++instance Prelude.NFData AggregatedUtterancesFilter where+  rnf AggregatedUtterancesFilter' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf values+      `Prelude.seq` Prelude.rnf operator++instance Data.ToJSON AggregatedUtterancesFilter where+  toJSON AggregatedUtterancesFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("name" Data..= name),+            Prelude.Just ("values" Data..= values),+            Prelude.Just ("operator" Data..= operator)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/AggregatedUtterancesFilterName.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.AggregatedUtterancesFilterName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.AggregatedUtterancesFilterName+  ( AggregatedUtterancesFilterName+      ( ..,+        AggregatedUtterancesFilterName_Utterance+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AggregatedUtterancesFilterName = AggregatedUtterancesFilterName'+  { fromAggregatedUtterancesFilterName ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern AggregatedUtterancesFilterName_Utterance :: AggregatedUtterancesFilterName+pattern AggregatedUtterancesFilterName_Utterance = AggregatedUtterancesFilterName' "Utterance"++{-# COMPLETE+  AggregatedUtterancesFilterName_Utterance,+  AggregatedUtterancesFilterName'+  #-}
+ gen/Amazonka/LexV2Models/Types/AggregatedUtterancesFilterOperator.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.AggregatedUtterancesFilterOperator+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.AggregatedUtterancesFilterOperator+  ( AggregatedUtterancesFilterOperator+      ( ..,+        AggregatedUtterancesFilterOperator_CO,+        AggregatedUtterancesFilterOperator_EQ+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AggregatedUtterancesFilterOperator = AggregatedUtterancesFilterOperator'+  { fromAggregatedUtterancesFilterOperator ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern AggregatedUtterancesFilterOperator_CO :: AggregatedUtterancesFilterOperator+pattern AggregatedUtterancesFilterOperator_CO = AggregatedUtterancesFilterOperator' "CO"++pattern AggregatedUtterancesFilterOperator_EQ :: AggregatedUtterancesFilterOperator+pattern AggregatedUtterancesFilterOperator_EQ = AggregatedUtterancesFilterOperator' "EQ"++{-# COMPLETE+  AggregatedUtterancesFilterOperator_CO,+  AggregatedUtterancesFilterOperator_EQ,+  AggregatedUtterancesFilterOperator'+  #-}
+ gen/Amazonka/LexV2Models/Types/AggregatedUtterancesSortAttribute.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.AggregatedUtterancesSortAttribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.AggregatedUtterancesSortAttribute+  ( AggregatedUtterancesSortAttribute+      ( ..,+        AggregatedUtterancesSortAttribute_HitCount,+        AggregatedUtterancesSortAttribute_MissedCount+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AggregatedUtterancesSortAttribute = AggregatedUtterancesSortAttribute'+  { fromAggregatedUtterancesSortAttribute ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern AggregatedUtterancesSortAttribute_HitCount :: AggregatedUtterancesSortAttribute+pattern AggregatedUtterancesSortAttribute_HitCount = AggregatedUtterancesSortAttribute' "HitCount"++pattern AggregatedUtterancesSortAttribute_MissedCount :: AggregatedUtterancesSortAttribute+pattern AggregatedUtterancesSortAttribute_MissedCount = AggregatedUtterancesSortAttribute' "MissedCount"++{-# COMPLETE+  AggregatedUtterancesSortAttribute_HitCount,+  AggregatedUtterancesSortAttribute_MissedCount,+  AggregatedUtterancesSortAttribute'+  #-}
+ gen/Amazonka/LexV2Models/Types/AggregatedUtterancesSortBy.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.AggregatedUtterancesSortBy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.AggregatedUtterancesSortBy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.AggregatedUtterancesSortAttribute+import Amazonka.LexV2Models.Types.SortOrder+import qualified Amazonka.Prelude as Prelude++-- | Specifies attributes for sorting a list of utterances.+--+-- /See:/ 'newAggregatedUtterancesSortBy' smart constructor.+data AggregatedUtterancesSortBy = AggregatedUtterancesSortBy'+  { -- | The utterance attribute to sort by.+    attribute :: AggregatedUtterancesSortAttribute,+    -- | Specifies whether to sort the aggregated utterances in ascending or+    -- descending order.+    order :: SortOrder+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AggregatedUtterancesSortBy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attribute', 'aggregatedUtterancesSortBy_attribute' - The utterance attribute to sort by.+--+-- 'order', 'aggregatedUtterancesSortBy_order' - Specifies whether to sort the aggregated utterances in ascending or+-- descending order.+newAggregatedUtterancesSortBy ::+  -- | 'attribute'+  AggregatedUtterancesSortAttribute ->+  -- | 'order'+  SortOrder ->+  AggregatedUtterancesSortBy+newAggregatedUtterancesSortBy pAttribute_ pOrder_ =+  AggregatedUtterancesSortBy'+    { attribute =+        pAttribute_,+      order = pOrder_+    }++-- | The utterance attribute to sort by.+aggregatedUtterancesSortBy_attribute :: Lens.Lens' AggregatedUtterancesSortBy AggregatedUtterancesSortAttribute+aggregatedUtterancesSortBy_attribute = Lens.lens (\AggregatedUtterancesSortBy' {attribute} -> attribute) (\s@AggregatedUtterancesSortBy' {} a -> s {attribute = a} :: AggregatedUtterancesSortBy)++-- | Specifies whether to sort the aggregated utterances in ascending or+-- descending order.+aggregatedUtterancesSortBy_order :: Lens.Lens' AggregatedUtterancesSortBy SortOrder+aggregatedUtterancesSortBy_order = Lens.lens (\AggregatedUtterancesSortBy' {order} -> order) (\s@AggregatedUtterancesSortBy' {} a -> s {order = a} :: AggregatedUtterancesSortBy)++instance Prelude.Hashable AggregatedUtterancesSortBy where+  hashWithSalt _salt AggregatedUtterancesSortBy' {..} =+    _salt+      `Prelude.hashWithSalt` attribute+      `Prelude.hashWithSalt` order++instance Prelude.NFData AggregatedUtterancesSortBy where+  rnf AggregatedUtterancesSortBy' {..} =+    Prelude.rnf attribute+      `Prelude.seq` Prelude.rnf order++instance Data.ToJSON AggregatedUtterancesSortBy where+  toJSON AggregatedUtterancesSortBy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("attribute" Data..= attribute),+            Prelude.Just ("order" Data..= order)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/AggregatedUtterancesSummary.hs view
@@ -0,0 +1,179 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.AggregatedUtterancesSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.AggregatedUtterancesSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides summary information for aggregated utterances. The+-- @ListAggregatedUtterances@ operations combines all instances of the same+-- utterance into a single aggregated summary.+--+-- /See:/ 'newAggregatedUtterancesSummary' smart constructor.+data AggregatedUtterancesSummary = AggregatedUtterancesSummary'+  { -- | Aggregated utterance data may contain utterances from versions of your+    -- bot that have since been deleted. When the aggregated contains this kind+    -- of data, this field is set to true.+    containsDataFromDeletedResources :: Prelude.Maybe Prelude.Bool,+    -- | The number of times that the utterance was detected by Amazon Lex during+    -- the time period. When an utterance is detected, it activates an intent+    -- or a slot.+    hitCount :: Prelude.Maybe Prelude.Int,+    -- | The number of times that the utterance was missed by Amazon Lex An+    -- utterance is missed when it doesn\'t activate an intent or slot.+    missedCount :: Prelude.Maybe Prelude.Int,+    -- | The text of the utterance. If the utterance was used with the+    -- @RecognizeUtterance@ operation, the text is the transcription of the+    -- audio utterance.+    utterance :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the utterance was first recorded in the time+    -- window for aggregation. An utterance may have been sent to Amazon Lex+    -- before that time, but only utterances within the time window are+    -- counted.+    utteranceFirstRecordedInAggregationDuration :: Prelude.Maybe Data.POSIX,+    -- | The last date and time that an utterance was recorded in the time window+    -- for aggregation. An utterance may be sent to Amazon Lex after that time,+    -- but only utterances within the time window are counted.+    utteranceLastRecordedInAggregationDuration :: Prelude.Maybe Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AggregatedUtterancesSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'containsDataFromDeletedResources', 'aggregatedUtterancesSummary_containsDataFromDeletedResources' - Aggregated utterance data may contain utterances from versions of your+-- bot that have since been deleted. When the aggregated contains this kind+-- of data, this field is set to true.+--+-- 'hitCount', 'aggregatedUtterancesSummary_hitCount' - The number of times that the utterance was detected by Amazon Lex during+-- the time period. When an utterance is detected, it activates an intent+-- or a slot.+--+-- 'missedCount', 'aggregatedUtterancesSummary_missedCount' - The number of times that the utterance was missed by Amazon Lex An+-- utterance is missed when it doesn\'t activate an intent or slot.+--+-- 'utterance', 'aggregatedUtterancesSummary_utterance' - The text of the utterance. If the utterance was used with the+-- @RecognizeUtterance@ operation, the text is the transcription of the+-- audio utterance.+--+-- 'utteranceFirstRecordedInAggregationDuration', 'aggregatedUtterancesSummary_utteranceFirstRecordedInAggregationDuration' - The date and time that the utterance was first recorded in the time+-- window for aggregation. An utterance may have been sent to Amazon Lex+-- before that time, but only utterances within the time window are+-- counted.+--+-- 'utteranceLastRecordedInAggregationDuration', 'aggregatedUtterancesSummary_utteranceLastRecordedInAggregationDuration' - The last date and time that an utterance was recorded in the time window+-- for aggregation. An utterance may be sent to Amazon Lex after that time,+-- but only utterances within the time window are counted.+newAggregatedUtterancesSummary ::+  AggregatedUtterancesSummary+newAggregatedUtterancesSummary =+  AggregatedUtterancesSummary'+    { containsDataFromDeletedResources =+        Prelude.Nothing,+      hitCount = Prelude.Nothing,+      missedCount = Prelude.Nothing,+      utterance = Prelude.Nothing,+      utteranceFirstRecordedInAggregationDuration =+        Prelude.Nothing,+      utteranceLastRecordedInAggregationDuration =+        Prelude.Nothing+    }++-- | Aggregated utterance data may contain utterances from versions of your+-- bot that have since been deleted. When the aggregated contains this kind+-- of data, this field is set to true.+aggregatedUtterancesSummary_containsDataFromDeletedResources :: Lens.Lens' AggregatedUtterancesSummary (Prelude.Maybe Prelude.Bool)+aggregatedUtterancesSummary_containsDataFromDeletedResources = Lens.lens (\AggregatedUtterancesSummary' {containsDataFromDeletedResources} -> containsDataFromDeletedResources) (\s@AggregatedUtterancesSummary' {} a -> s {containsDataFromDeletedResources = a} :: AggregatedUtterancesSummary)++-- | The number of times that the utterance was detected by Amazon Lex during+-- the time period. When an utterance is detected, it activates an intent+-- or a slot.+aggregatedUtterancesSummary_hitCount :: Lens.Lens' AggregatedUtterancesSummary (Prelude.Maybe Prelude.Int)+aggregatedUtterancesSummary_hitCount = Lens.lens (\AggregatedUtterancesSummary' {hitCount} -> hitCount) (\s@AggregatedUtterancesSummary' {} a -> s {hitCount = a} :: AggregatedUtterancesSummary)++-- | The number of times that the utterance was missed by Amazon Lex An+-- utterance is missed when it doesn\'t activate an intent or slot.+aggregatedUtterancesSummary_missedCount :: Lens.Lens' AggregatedUtterancesSummary (Prelude.Maybe Prelude.Int)+aggregatedUtterancesSummary_missedCount = Lens.lens (\AggregatedUtterancesSummary' {missedCount} -> missedCount) (\s@AggregatedUtterancesSummary' {} a -> s {missedCount = a} :: AggregatedUtterancesSummary)++-- | The text of the utterance. If the utterance was used with the+-- @RecognizeUtterance@ operation, the text is the transcription of the+-- audio utterance.+aggregatedUtterancesSummary_utterance :: Lens.Lens' AggregatedUtterancesSummary (Prelude.Maybe Prelude.Text)+aggregatedUtterancesSummary_utterance = Lens.lens (\AggregatedUtterancesSummary' {utterance} -> utterance) (\s@AggregatedUtterancesSummary' {} a -> s {utterance = a} :: AggregatedUtterancesSummary)++-- | The date and time that the utterance was first recorded in the time+-- window for aggregation. An utterance may have been sent to Amazon Lex+-- before that time, but only utterances within the time window are+-- counted.+aggregatedUtterancesSummary_utteranceFirstRecordedInAggregationDuration :: Lens.Lens' AggregatedUtterancesSummary (Prelude.Maybe Prelude.UTCTime)+aggregatedUtterancesSummary_utteranceFirstRecordedInAggregationDuration = Lens.lens (\AggregatedUtterancesSummary' {utteranceFirstRecordedInAggregationDuration} -> utteranceFirstRecordedInAggregationDuration) (\s@AggregatedUtterancesSummary' {} a -> s {utteranceFirstRecordedInAggregationDuration = a} :: AggregatedUtterancesSummary) Prelude.. Lens.mapping Data._Time++-- | The last date and time that an utterance was recorded in the time window+-- for aggregation. An utterance may be sent to Amazon Lex after that time,+-- but only utterances within the time window are counted.+aggregatedUtterancesSummary_utteranceLastRecordedInAggregationDuration :: Lens.Lens' AggregatedUtterancesSummary (Prelude.Maybe Prelude.UTCTime)+aggregatedUtterancesSummary_utteranceLastRecordedInAggregationDuration = Lens.lens (\AggregatedUtterancesSummary' {utteranceLastRecordedInAggregationDuration} -> utteranceLastRecordedInAggregationDuration) (\s@AggregatedUtterancesSummary' {} a -> s {utteranceLastRecordedInAggregationDuration = a} :: AggregatedUtterancesSummary) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON AggregatedUtterancesSummary where+  parseJSON =+    Data.withObject+      "AggregatedUtterancesSummary"+      ( \x ->+          AggregatedUtterancesSummary'+            Prelude.<$> (x Data..:? "containsDataFromDeletedResources")+            Prelude.<*> (x Data..:? "hitCount")+            Prelude.<*> (x Data..:? "missedCount")+            Prelude.<*> (x Data..:? "utterance")+            Prelude.<*> ( x+                            Data..:? "utteranceFirstRecordedInAggregationDuration"+                        )+            Prelude.<*> ( x+                            Data..:? "utteranceLastRecordedInAggregationDuration"+                        )+      )++instance Prelude.Hashable AggregatedUtterancesSummary where+  hashWithSalt _salt AggregatedUtterancesSummary' {..} =+    _salt+      `Prelude.hashWithSalt` containsDataFromDeletedResources+      `Prelude.hashWithSalt` hitCount+      `Prelude.hashWithSalt` missedCount+      `Prelude.hashWithSalt` utterance+      `Prelude.hashWithSalt` utteranceFirstRecordedInAggregationDuration+      `Prelude.hashWithSalt` utteranceLastRecordedInAggregationDuration++instance Prelude.NFData AggregatedUtterancesSummary where+  rnf AggregatedUtterancesSummary' {..} =+    Prelude.rnf containsDataFromDeletedResources+      `Prelude.seq` Prelude.rnf hitCount+      `Prelude.seq` Prelude.rnf missedCount+      `Prelude.seq` Prelude.rnf utterance+      `Prelude.seq` Prelude.rnf+        utteranceFirstRecordedInAggregationDuration+      `Prelude.seq` Prelude.rnf+        utteranceLastRecordedInAggregationDuration
+ gen/Amazonka/LexV2Models/Types/AllowedInputTypes.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.AllowedInputTypes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.AllowedInputTypes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies the allowed input types.+--+-- /See:/ 'newAllowedInputTypes' smart constructor.+data AllowedInputTypes = AllowedInputTypes'+  { -- | Indicates whether audio input is allowed.+    allowAudioInput :: Prelude.Bool,+    -- | Indicates whether DTMF input is allowed.+    allowDTMFInput :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AllowedInputTypes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowAudioInput', 'allowedInputTypes_allowAudioInput' - Indicates whether audio input is allowed.+--+-- 'allowDTMFInput', 'allowedInputTypes_allowDTMFInput' - Indicates whether DTMF input is allowed.+newAllowedInputTypes ::+  -- | 'allowAudioInput'+  Prelude.Bool ->+  -- | 'allowDTMFInput'+  Prelude.Bool ->+  AllowedInputTypes+newAllowedInputTypes+  pAllowAudioInput_+  pAllowDTMFInput_ =+    AllowedInputTypes'+      { allowAudioInput =+          pAllowAudioInput_,+        allowDTMFInput = pAllowDTMFInput_+      }++-- | Indicates whether audio input is allowed.+allowedInputTypes_allowAudioInput :: Lens.Lens' AllowedInputTypes Prelude.Bool+allowedInputTypes_allowAudioInput = Lens.lens (\AllowedInputTypes' {allowAudioInput} -> allowAudioInput) (\s@AllowedInputTypes' {} a -> s {allowAudioInput = a} :: AllowedInputTypes)++-- | Indicates whether DTMF input is allowed.+allowedInputTypes_allowDTMFInput :: Lens.Lens' AllowedInputTypes Prelude.Bool+allowedInputTypes_allowDTMFInput = Lens.lens (\AllowedInputTypes' {allowDTMFInput} -> allowDTMFInput) (\s@AllowedInputTypes' {} a -> s {allowDTMFInput = a} :: AllowedInputTypes)++instance Data.FromJSON AllowedInputTypes where+  parseJSON =+    Data.withObject+      "AllowedInputTypes"+      ( \x ->+          AllowedInputTypes'+            Prelude.<$> (x Data..: "allowAudioInput")+            Prelude.<*> (x Data..: "allowDTMFInput")+      )++instance Prelude.Hashable AllowedInputTypes where+  hashWithSalt _salt AllowedInputTypes' {..} =+    _salt+      `Prelude.hashWithSalt` allowAudioInput+      `Prelude.hashWithSalt` allowDTMFInput++instance Prelude.NFData AllowedInputTypes where+  rnf AllowedInputTypes' {..} =+    Prelude.rnf allowAudioInput+      `Prelude.seq` Prelude.rnf allowDTMFInput++instance Data.ToJSON AllowedInputTypes where+  toJSON AllowedInputTypes' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("allowAudioInput" Data..= allowAudioInput),+            Prelude.Just+              ("allowDTMFInput" Data..= allowDTMFInput)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/AssociatedTranscript.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.AssociatedTranscript+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.AssociatedTranscript where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The object containing information that associates the recommended+-- intent\/slot type with a conversation.+--+-- /See:/ 'newAssociatedTranscript' smart constructor.+data AssociatedTranscript = AssociatedTranscript'+  { -- | The content of the transcript that meets the search filter criteria. For+    -- the JSON format of the transcript, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/designing-output-format.html Output transcript format>.+    transcript :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociatedTranscript' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'transcript', 'associatedTranscript_transcript' - The content of the transcript that meets the search filter criteria. For+-- the JSON format of the transcript, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/designing-output-format.html Output transcript format>.+newAssociatedTranscript ::+  AssociatedTranscript+newAssociatedTranscript =+  AssociatedTranscript' {transcript = Prelude.Nothing}++-- | The content of the transcript that meets the search filter criteria. For+-- the JSON format of the transcript, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/designing-output-format.html Output transcript format>.+associatedTranscript_transcript :: Lens.Lens' AssociatedTranscript (Prelude.Maybe Prelude.Text)+associatedTranscript_transcript = Lens.lens (\AssociatedTranscript' {transcript} -> transcript) (\s@AssociatedTranscript' {} a -> s {transcript = a} :: AssociatedTranscript)++instance Data.FromJSON AssociatedTranscript where+  parseJSON =+    Data.withObject+      "AssociatedTranscript"+      ( \x ->+          AssociatedTranscript'+            Prelude.<$> (x Data..:? "transcript")+      )++instance Prelude.Hashable AssociatedTranscript where+  hashWithSalt _salt AssociatedTranscript' {..} =+    _salt `Prelude.hashWithSalt` transcript++instance Prelude.NFData AssociatedTranscript where+  rnf AssociatedTranscript' {..} =+    Prelude.rnf transcript
+ gen/Amazonka/LexV2Models/Types/AssociatedTranscriptFilter.hs view
@@ -0,0 +1,90 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.AssociatedTranscriptFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.AssociatedTranscriptFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.AssociatedTranscriptFilterName+import qualified Amazonka.Prelude as Prelude++-- | Filters to search for the associated transcript.+--+-- /See:/ 'newAssociatedTranscriptFilter' smart constructor.+data AssociatedTranscriptFilter = AssociatedTranscriptFilter'+  { -- | The name of the field to use for filtering. The allowed names are+    -- IntentId and SlotTypeId.+    name :: AssociatedTranscriptFilterName,+    -- | The values to use to filter the transcript.+    values :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociatedTranscriptFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'associatedTranscriptFilter_name' - The name of the field to use for filtering. The allowed names are+-- IntentId and SlotTypeId.+--+-- 'values', 'associatedTranscriptFilter_values' - The values to use to filter the transcript.+newAssociatedTranscriptFilter ::+  -- | 'name'+  AssociatedTranscriptFilterName ->+  -- | 'values'+  Prelude.NonEmpty Prelude.Text ->+  AssociatedTranscriptFilter+newAssociatedTranscriptFilter pName_ pValues_ =+  AssociatedTranscriptFilter'+    { name = pName_,+      values = Lens.coerced Lens.# pValues_+    }++-- | The name of the field to use for filtering. The allowed names are+-- IntentId and SlotTypeId.+associatedTranscriptFilter_name :: Lens.Lens' AssociatedTranscriptFilter AssociatedTranscriptFilterName+associatedTranscriptFilter_name = Lens.lens (\AssociatedTranscriptFilter' {name} -> name) (\s@AssociatedTranscriptFilter' {} a -> s {name = a} :: AssociatedTranscriptFilter)++-- | The values to use to filter the transcript.+associatedTranscriptFilter_values :: Lens.Lens' AssociatedTranscriptFilter (Prelude.NonEmpty Prelude.Text)+associatedTranscriptFilter_values = Lens.lens (\AssociatedTranscriptFilter' {values} -> values) (\s@AssociatedTranscriptFilter' {} a -> s {values = a} :: AssociatedTranscriptFilter) Prelude.. Lens.coerced++instance Prelude.Hashable AssociatedTranscriptFilter where+  hashWithSalt _salt AssociatedTranscriptFilter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values++instance Prelude.NFData AssociatedTranscriptFilter where+  rnf AssociatedTranscriptFilter' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf values++instance Data.ToJSON AssociatedTranscriptFilter where+  toJSON AssociatedTranscriptFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("name" Data..= name),+            Prelude.Just ("values" Data..= values)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/AssociatedTranscriptFilterName.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.AssociatedTranscriptFilterName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.AssociatedTranscriptFilterName+  ( AssociatedTranscriptFilterName+      ( ..,+        AssociatedTranscriptFilterName_IntentId,+        AssociatedTranscriptFilterName_SlotTypeId+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AssociatedTranscriptFilterName = AssociatedTranscriptFilterName'+  { fromAssociatedTranscriptFilterName ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern AssociatedTranscriptFilterName_IntentId :: AssociatedTranscriptFilterName+pattern AssociatedTranscriptFilterName_IntentId = AssociatedTranscriptFilterName' "IntentId"++pattern AssociatedTranscriptFilterName_SlotTypeId :: AssociatedTranscriptFilterName+pattern AssociatedTranscriptFilterName_SlotTypeId = AssociatedTranscriptFilterName' "SlotTypeId"++{-# COMPLETE+  AssociatedTranscriptFilterName_IntentId,+  AssociatedTranscriptFilterName_SlotTypeId,+  AssociatedTranscriptFilterName'+  #-}
+ gen/Amazonka/LexV2Models/Types/AudioAndDTMFInputSpecification.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.AudioAndDTMFInputSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.AudioAndDTMFInputSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.AudioSpecification+import Amazonka.LexV2Models.Types.DTMFSpecification+import qualified Amazonka.Prelude as Prelude++-- | Specifies the audio and DTMF input specification.+--+-- /See:/ 'newAudioAndDTMFInputSpecification' smart constructor.+data AudioAndDTMFInputSpecification = AudioAndDTMFInputSpecification'+  { -- | Specifies the settings on audio input.+    audioSpecification :: Prelude.Maybe AudioSpecification,+    -- | Specifies the settings on DTMF input.+    dtmfSpecification :: Prelude.Maybe DTMFSpecification,+    -- | Time for which a bot waits before assuming that the customer isn\'t+    -- going to speak or press a key. This timeout is shared between Audio and+    -- DTMF inputs.+    startTimeoutMs :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AudioAndDTMFInputSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'audioSpecification', 'audioAndDTMFInputSpecification_audioSpecification' - Specifies the settings on audio input.+--+-- 'dtmfSpecification', 'audioAndDTMFInputSpecification_dtmfSpecification' - Specifies the settings on DTMF input.+--+-- 'startTimeoutMs', 'audioAndDTMFInputSpecification_startTimeoutMs' - Time for which a bot waits before assuming that the customer isn\'t+-- going to speak or press a key. This timeout is shared between Audio and+-- DTMF inputs.+newAudioAndDTMFInputSpecification ::+  -- | 'startTimeoutMs'+  Prelude.Natural ->+  AudioAndDTMFInputSpecification+newAudioAndDTMFInputSpecification pStartTimeoutMs_ =+  AudioAndDTMFInputSpecification'+    { audioSpecification =+        Prelude.Nothing,+      dtmfSpecification = Prelude.Nothing,+      startTimeoutMs = pStartTimeoutMs_+    }++-- | Specifies the settings on audio input.+audioAndDTMFInputSpecification_audioSpecification :: Lens.Lens' AudioAndDTMFInputSpecification (Prelude.Maybe AudioSpecification)+audioAndDTMFInputSpecification_audioSpecification = Lens.lens (\AudioAndDTMFInputSpecification' {audioSpecification} -> audioSpecification) (\s@AudioAndDTMFInputSpecification' {} a -> s {audioSpecification = a} :: AudioAndDTMFInputSpecification)++-- | Specifies the settings on DTMF input.+audioAndDTMFInputSpecification_dtmfSpecification :: Lens.Lens' AudioAndDTMFInputSpecification (Prelude.Maybe DTMFSpecification)+audioAndDTMFInputSpecification_dtmfSpecification = Lens.lens (\AudioAndDTMFInputSpecification' {dtmfSpecification} -> dtmfSpecification) (\s@AudioAndDTMFInputSpecification' {} a -> s {dtmfSpecification = a} :: AudioAndDTMFInputSpecification)++-- | Time for which a bot waits before assuming that the customer isn\'t+-- going to speak or press a key. This timeout is shared between Audio and+-- DTMF inputs.+audioAndDTMFInputSpecification_startTimeoutMs :: Lens.Lens' AudioAndDTMFInputSpecification Prelude.Natural+audioAndDTMFInputSpecification_startTimeoutMs = Lens.lens (\AudioAndDTMFInputSpecification' {startTimeoutMs} -> startTimeoutMs) (\s@AudioAndDTMFInputSpecification' {} a -> s {startTimeoutMs = a} :: AudioAndDTMFInputSpecification)++instance Data.FromJSON AudioAndDTMFInputSpecification where+  parseJSON =+    Data.withObject+      "AudioAndDTMFInputSpecification"+      ( \x ->+          AudioAndDTMFInputSpecification'+            Prelude.<$> (x Data..:? "audioSpecification")+            Prelude.<*> (x Data..:? "dtmfSpecification")+            Prelude.<*> (x Data..: "startTimeoutMs")+      )++instance+  Prelude.Hashable+    AudioAndDTMFInputSpecification+  where+  hashWithSalt+    _salt+    AudioAndDTMFInputSpecification' {..} =+      _salt+        `Prelude.hashWithSalt` audioSpecification+        `Prelude.hashWithSalt` dtmfSpecification+        `Prelude.hashWithSalt` startTimeoutMs++instance+  Prelude.NFData+    AudioAndDTMFInputSpecification+  where+  rnf AudioAndDTMFInputSpecification' {..} =+    Prelude.rnf audioSpecification+      `Prelude.seq` Prelude.rnf dtmfSpecification+      `Prelude.seq` Prelude.rnf startTimeoutMs++instance Data.ToJSON AudioAndDTMFInputSpecification where+  toJSON AudioAndDTMFInputSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("audioSpecification" Data..=)+              Prelude.<$> audioSpecification,+            ("dtmfSpecification" Data..=)+              Prelude.<$> dtmfSpecification,+            Prelude.Just+              ("startTimeoutMs" Data..= startTimeoutMs)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/AudioLogDestination.hs view
@@ -0,0 +1,88 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.AudioLogDestination+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.AudioLogDestination where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.S3BucketLogDestination+import qualified Amazonka.Prelude as Prelude++-- | The location of audio log files collected when conversation logging is+-- enabled for a bot.+--+-- /See:/ 'newAudioLogDestination' smart constructor.+data AudioLogDestination = AudioLogDestination'+  { -- | The Amazon S3 bucket where the audio log files are stored. The IAM role+    -- specified in the @roleArn@ parameter of the+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/API_CreateBot.html CreateBot>+    -- operation must have permission to write to this bucket.+    s3Bucket :: S3BucketLogDestination+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AudioLogDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3Bucket', 'audioLogDestination_s3Bucket' - The Amazon S3 bucket where the audio log files are stored. The IAM role+-- specified in the @roleArn@ parameter of the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_CreateBot.html CreateBot>+-- operation must have permission to write to this bucket.+newAudioLogDestination ::+  -- | 's3Bucket'+  S3BucketLogDestination ->+  AudioLogDestination+newAudioLogDestination pS3Bucket_ =+  AudioLogDestination' {s3Bucket = pS3Bucket_}++-- | The Amazon S3 bucket where the audio log files are stored. The IAM role+-- specified in the @roleArn@ parameter of the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_CreateBot.html CreateBot>+-- operation must have permission to write to this bucket.+audioLogDestination_s3Bucket :: Lens.Lens' AudioLogDestination S3BucketLogDestination+audioLogDestination_s3Bucket = Lens.lens (\AudioLogDestination' {s3Bucket} -> s3Bucket) (\s@AudioLogDestination' {} a -> s {s3Bucket = a} :: AudioLogDestination)++instance Data.FromJSON AudioLogDestination where+  parseJSON =+    Data.withObject+      "AudioLogDestination"+      ( \x ->+          AudioLogDestination'+            Prelude.<$> (x Data..: "s3Bucket")+      )++instance Prelude.Hashable AudioLogDestination where+  hashWithSalt _salt AudioLogDestination' {..} =+    _salt `Prelude.hashWithSalt` s3Bucket++instance Prelude.NFData AudioLogDestination where+  rnf AudioLogDestination' {..} = Prelude.rnf s3Bucket++instance Data.ToJSON AudioLogDestination where+  toJSON AudioLogDestination' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("s3Bucket" Data..= s3Bucket)]+      )
+ gen/Amazonka/LexV2Models/Types/AudioLogSetting.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.AudioLogSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.AudioLogSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.AudioLogDestination+import qualified Amazonka.Prelude as Prelude++-- | Settings for logging audio of conversations between Amazon Lex and a+-- user. You specify whether to log audio and the Amazon S3 bucket where+-- the audio file is stored.+--+-- /See:/ 'newAudioLogSetting' smart constructor.+data AudioLogSetting = AudioLogSetting'+  { -- | Determines whether audio logging in enabled for the bot.+    enabled :: Prelude.Bool,+    destination :: AudioLogDestination+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AudioLogSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'enabled', 'audioLogSetting_enabled' - Determines whether audio logging in enabled for the bot.+--+-- 'destination', 'audioLogSetting_destination' - Undocumented member.+newAudioLogSetting ::+  -- | 'enabled'+  Prelude.Bool ->+  -- | 'destination'+  AudioLogDestination ->+  AudioLogSetting+newAudioLogSetting pEnabled_ pDestination_ =+  AudioLogSetting'+    { enabled = pEnabled_,+      destination = pDestination_+    }++-- | Determines whether audio logging in enabled for the bot.+audioLogSetting_enabled :: Lens.Lens' AudioLogSetting Prelude.Bool+audioLogSetting_enabled = Lens.lens (\AudioLogSetting' {enabled} -> enabled) (\s@AudioLogSetting' {} a -> s {enabled = a} :: AudioLogSetting)++-- | Undocumented member.+audioLogSetting_destination :: Lens.Lens' AudioLogSetting AudioLogDestination+audioLogSetting_destination = Lens.lens (\AudioLogSetting' {destination} -> destination) (\s@AudioLogSetting' {} a -> s {destination = a} :: AudioLogSetting)++instance Data.FromJSON AudioLogSetting where+  parseJSON =+    Data.withObject+      "AudioLogSetting"+      ( \x ->+          AudioLogSetting'+            Prelude.<$> (x Data..: "enabled")+            Prelude.<*> (x Data..: "destination")+      )++instance Prelude.Hashable AudioLogSetting where+  hashWithSalt _salt AudioLogSetting' {..} =+    _salt+      `Prelude.hashWithSalt` enabled+      `Prelude.hashWithSalt` destination++instance Prelude.NFData AudioLogSetting where+  rnf AudioLogSetting' {..} =+    Prelude.rnf enabled+      `Prelude.seq` Prelude.rnf destination++instance Data.ToJSON AudioLogSetting where+  toJSON AudioLogSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("enabled" Data..= enabled),+            Prelude.Just ("destination" Data..= destination)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/AudioRecognitionStrategy.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.AudioRecognitionStrategy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.AudioRecognitionStrategy+  ( AudioRecognitionStrategy+      ( ..,+        AudioRecognitionStrategy_UseSlotValuesAsCustomVocabulary+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AudioRecognitionStrategy = AudioRecognitionStrategy'+  { fromAudioRecognitionStrategy ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern AudioRecognitionStrategy_UseSlotValuesAsCustomVocabulary :: AudioRecognitionStrategy+pattern AudioRecognitionStrategy_UseSlotValuesAsCustomVocabulary = AudioRecognitionStrategy' "UseSlotValuesAsCustomVocabulary"++{-# COMPLETE+  AudioRecognitionStrategy_UseSlotValuesAsCustomVocabulary,+  AudioRecognitionStrategy'+  #-}
+ gen/Amazonka/LexV2Models/Types/AudioSpecification.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.AudioSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.AudioSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies the audio input specifications.+--+-- /See:/ 'newAudioSpecification' smart constructor.+data AudioSpecification = AudioSpecification'+  { -- | Time for how long Amazon Lex waits before speech input is truncated and+    -- the speech is returned to application.+    maxLengthMs :: Prelude.Natural,+    -- | Time for which a bot waits after the customer stops speaking to assume+    -- the utterance is finished.+    endTimeoutMs :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AudioSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxLengthMs', 'audioSpecification_maxLengthMs' - Time for how long Amazon Lex waits before speech input is truncated and+-- the speech is returned to application.+--+-- 'endTimeoutMs', 'audioSpecification_endTimeoutMs' - Time for which a bot waits after the customer stops speaking to assume+-- the utterance is finished.+newAudioSpecification ::+  -- | 'maxLengthMs'+  Prelude.Natural ->+  -- | 'endTimeoutMs'+  Prelude.Natural ->+  AudioSpecification+newAudioSpecification pMaxLengthMs_ pEndTimeoutMs_ =+  AudioSpecification'+    { maxLengthMs = pMaxLengthMs_,+      endTimeoutMs = pEndTimeoutMs_+    }++-- | Time for how long Amazon Lex waits before speech input is truncated and+-- the speech is returned to application.+audioSpecification_maxLengthMs :: Lens.Lens' AudioSpecification Prelude.Natural+audioSpecification_maxLengthMs = Lens.lens (\AudioSpecification' {maxLengthMs} -> maxLengthMs) (\s@AudioSpecification' {} a -> s {maxLengthMs = a} :: AudioSpecification)++-- | Time for which a bot waits after the customer stops speaking to assume+-- the utterance is finished.+audioSpecification_endTimeoutMs :: Lens.Lens' AudioSpecification Prelude.Natural+audioSpecification_endTimeoutMs = Lens.lens (\AudioSpecification' {endTimeoutMs} -> endTimeoutMs) (\s@AudioSpecification' {} a -> s {endTimeoutMs = a} :: AudioSpecification)++instance Data.FromJSON AudioSpecification where+  parseJSON =+    Data.withObject+      "AudioSpecification"+      ( \x ->+          AudioSpecification'+            Prelude.<$> (x Data..: "maxLengthMs")+            Prelude.<*> (x Data..: "endTimeoutMs")+      )++instance Prelude.Hashable AudioSpecification where+  hashWithSalt _salt AudioSpecification' {..} =+    _salt+      `Prelude.hashWithSalt` maxLengthMs+      `Prelude.hashWithSalt` endTimeoutMs++instance Prelude.NFData AudioSpecification where+  rnf AudioSpecification' {..} =+    Prelude.rnf maxLengthMs+      `Prelude.seq` Prelude.rnf endTimeoutMs++instance Data.ToJSON AudioSpecification where+  toJSON AudioSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("maxLengthMs" Data..= maxLengthMs),+            Prelude.Just ("endTimeoutMs" Data..= endTimeoutMs)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/BotAliasHistoryEvent.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotAliasHistoryEvent+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotAliasHistoryEvent where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides a record of an event that affects a bot alias. For example,+-- when the version of a bot that the alias points to changes.+--+-- /See:/ 'newBotAliasHistoryEvent' smart constructor.+data BotAliasHistoryEvent = BotAliasHistoryEvent'+  { -- | The version of the bot that was used in the event.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the event ended.+    endDate :: Prelude.Maybe Data.POSIX,+    -- | The date and time that the event started.+    startDate :: Prelude.Maybe Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotAliasHistoryEvent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botVersion', 'botAliasHistoryEvent_botVersion' - The version of the bot that was used in the event.+--+-- 'endDate', 'botAliasHistoryEvent_endDate' - The date and time that the event ended.+--+-- 'startDate', 'botAliasHistoryEvent_startDate' - The date and time that the event started.+newBotAliasHistoryEvent ::+  BotAliasHistoryEvent+newBotAliasHistoryEvent =+  BotAliasHistoryEvent'+    { botVersion = Prelude.Nothing,+      endDate = Prelude.Nothing,+      startDate = Prelude.Nothing+    }++-- | The version of the bot that was used in the event.+botAliasHistoryEvent_botVersion :: Lens.Lens' BotAliasHistoryEvent (Prelude.Maybe Prelude.Text)+botAliasHistoryEvent_botVersion = Lens.lens (\BotAliasHistoryEvent' {botVersion} -> botVersion) (\s@BotAliasHistoryEvent' {} a -> s {botVersion = a} :: BotAliasHistoryEvent)++-- | The date and time that the event ended.+botAliasHistoryEvent_endDate :: Lens.Lens' BotAliasHistoryEvent (Prelude.Maybe Prelude.UTCTime)+botAliasHistoryEvent_endDate = Lens.lens (\BotAliasHistoryEvent' {endDate} -> endDate) (\s@BotAliasHistoryEvent' {} a -> s {endDate = a} :: BotAliasHistoryEvent) Prelude.. Lens.mapping Data._Time++-- | The date and time that the event started.+botAliasHistoryEvent_startDate :: Lens.Lens' BotAliasHistoryEvent (Prelude.Maybe Prelude.UTCTime)+botAliasHistoryEvent_startDate = Lens.lens (\BotAliasHistoryEvent' {startDate} -> startDate) (\s@BotAliasHistoryEvent' {} a -> s {startDate = a} :: BotAliasHistoryEvent) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON BotAliasHistoryEvent where+  parseJSON =+    Data.withObject+      "BotAliasHistoryEvent"+      ( \x ->+          BotAliasHistoryEvent'+            Prelude.<$> (x Data..:? "botVersion")+            Prelude.<*> (x Data..:? "endDate")+            Prelude.<*> (x Data..:? "startDate")+      )++instance Prelude.Hashable BotAliasHistoryEvent where+  hashWithSalt _salt BotAliasHistoryEvent' {..} =+    _salt+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` endDate+      `Prelude.hashWithSalt` startDate++instance Prelude.NFData BotAliasHistoryEvent where+  rnf BotAliasHistoryEvent' {..} =+    Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf endDate+      `Prelude.seq` Prelude.rnf startDate
+ gen/Amazonka/LexV2Models/Types/BotAliasLocaleSettings.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotAliasLocaleSettings+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotAliasLocaleSettings where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.CodeHookSpecification+import qualified Amazonka.Prelude as Prelude++-- | Specifies settings that are unique to a locale. For example, you can use+-- different Lambda function depending on the bot\'s locale.+--+-- /See:/ 'newBotAliasLocaleSettings' smart constructor.+data BotAliasLocaleSettings = BotAliasLocaleSettings'+  { -- | Specifies the Lambda function that should be used in the locale.+    codeHookSpecification :: Prelude.Maybe CodeHookSpecification,+    -- | Determines whether the locale is enabled for the bot. If the value is+    -- @false@, the locale isn\'t available for use.+    enabled :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotAliasLocaleSettings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'codeHookSpecification', 'botAliasLocaleSettings_codeHookSpecification' - Specifies the Lambda function that should be used in the locale.+--+-- 'enabled', 'botAliasLocaleSettings_enabled' - Determines whether the locale is enabled for the bot. If the value is+-- @false@, the locale isn\'t available for use.+newBotAliasLocaleSettings ::+  -- | 'enabled'+  Prelude.Bool ->+  BotAliasLocaleSettings+newBotAliasLocaleSettings pEnabled_ =+  BotAliasLocaleSettings'+    { codeHookSpecification =+        Prelude.Nothing,+      enabled = pEnabled_+    }++-- | Specifies the Lambda function that should be used in the locale.+botAliasLocaleSettings_codeHookSpecification :: Lens.Lens' BotAliasLocaleSettings (Prelude.Maybe CodeHookSpecification)+botAliasLocaleSettings_codeHookSpecification = Lens.lens (\BotAliasLocaleSettings' {codeHookSpecification} -> codeHookSpecification) (\s@BotAliasLocaleSettings' {} a -> s {codeHookSpecification = a} :: BotAliasLocaleSettings)++-- | Determines whether the locale is enabled for the bot. If the value is+-- @false@, the locale isn\'t available for use.+botAliasLocaleSettings_enabled :: Lens.Lens' BotAliasLocaleSettings Prelude.Bool+botAliasLocaleSettings_enabled = Lens.lens (\BotAliasLocaleSettings' {enabled} -> enabled) (\s@BotAliasLocaleSettings' {} a -> s {enabled = a} :: BotAliasLocaleSettings)++instance Data.FromJSON BotAliasLocaleSettings where+  parseJSON =+    Data.withObject+      "BotAliasLocaleSettings"+      ( \x ->+          BotAliasLocaleSettings'+            Prelude.<$> (x Data..:? "codeHookSpecification")+            Prelude.<*> (x Data..: "enabled")+      )++instance Prelude.Hashable BotAliasLocaleSettings where+  hashWithSalt _salt BotAliasLocaleSettings' {..} =+    _salt+      `Prelude.hashWithSalt` codeHookSpecification+      `Prelude.hashWithSalt` enabled++instance Prelude.NFData BotAliasLocaleSettings where+  rnf BotAliasLocaleSettings' {..} =+    Prelude.rnf codeHookSpecification+      `Prelude.seq` Prelude.rnf enabled++instance Data.ToJSON BotAliasLocaleSettings where+  toJSON BotAliasLocaleSettings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("codeHookSpecification" Data..=)+              Prelude.<$> codeHookSpecification,+            Prelude.Just ("enabled" Data..= enabled)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/BotAliasStatus.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotAliasStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotAliasStatus+  ( BotAliasStatus+      ( ..,+        BotAliasStatus_Available,+        BotAliasStatus_Creating,+        BotAliasStatus_Deleting,+        BotAliasStatus_Failed+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BotAliasStatus = BotAliasStatus'+  { fromBotAliasStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern BotAliasStatus_Available :: BotAliasStatus+pattern BotAliasStatus_Available = BotAliasStatus' "Available"++pattern BotAliasStatus_Creating :: BotAliasStatus+pattern BotAliasStatus_Creating = BotAliasStatus' "Creating"++pattern BotAliasStatus_Deleting :: BotAliasStatus+pattern BotAliasStatus_Deleting = BotAliasStatus' "Deleting"++pattern BotAliasStatus_Failed :: BotAliasStatus+pattern BotAliasStatus_Failed = BotAliasStatus' "Failed"++{-# COMPLETE+  BotAliasStatus_Available,+  BotAliasStatus_Creating,+  BotAliasStatus_Deleting,+  BotAliasStatus_Failed,+  BotAliasStatus'+  #-}
+ gen/Amazonka/LexV2Models/Types/BotAliasSummary.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotAliasSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotAliasSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.BotAliasStatus+import qualified Amazonka.Prelude as Prelude++-- | Summary information about bot aliases returned from the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_ListBotAliases.html ListBotAliases>+-- operation.+--+-- /See:/ 'newBotAliasSummary' smart constructor.+data BotAliasSummary = BotAliasSummary'+  { -- | The unique identifier assigned to the bot alias. You can use this ID to+    -- get detailed information about the alias using the+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/API_DescribeBotAlias.html DescribeBotAlias>+    -- operation.+    botAliasId :: Prelude.Maybe Prelude.Text,+    -- | The name of the bot alias.+    botAliasName :: Prelude.Maybe Prelude.Text,+    -- | The current state of the bot alias. If the status is @Available@, the+    -- alias is ready for use.+    botAliasStatus :: Prelude.Maybe BotAliasStatus,+    -- | The version of the bot that the bot alias references.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | A timestamp of the date and time that the bot alias was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The description of the bot alias.+    description :: Prelude.Maybe Prelude.Text,+    -- | A timestamp of the date and time that the bot alias was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotAliasSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botAliasId', 'botAliasSummary_botAliasId' - The unique identifier assigned to the bot alias. You can use this ID to+-- get detailed information about the alias using the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_DescribeBotAlias.html DescribeBotAlias>+-- operation.+--+-- 'botAliasName', 'botAliasSummary_botAliasName' - The name of the bot alias.+--+-- 'botAliasStatus', 'botAliasSummary_botAliasStatus' - The current state of the bot alias. If the status is @Available@, the+-- alias is ready for use.+--+-- 'botVersion', 'botAliasSummary_botVersion' - The version of the bot that the bot alias references.+--+-- 'creationDateTime', 'botAliasSummary_creationDateTime' - A timestamp of the date and time that the bot alias was created.+--+-- 'description', 'botAliasSummary_description' - The description of the bot alias.+--+-- 'lastUpdatedDateTime', 'botAliasSummary_lastUpdatedDateTime' - A timestamp of the date and time that the bot alias was last updated.+newBotAliasSummary ::+  BotAliasSummary+newBotAliasSummary =+  BotAliasSummary'+    { botAliasId = Prelude.Nothing,+      botAliasName = Prelude.Nothing,+      botAliasStatus = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing+    }++-- | The unique identifier assigned to the bot alias. You can use this ID to+-- get detailed information about the alias using the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_DescribeBotAlias.html DescribeBotAlias>+-- operation.+botAliasSummary_botAliasId :: Lens.Lens' BotAliasSummary (Prelude.Maybe Prelude.Text)+botAliasSummary_botAliasId = Lens.lens (\BotAliasSummary' {botAliasId} -> botAliasId) (\s@BotAliasSummary' {} a -> s {botAliasId = a} :: BotAliasSummary)++-- | The name of the bot alias.+botAliasSummary_botAliasName :: Lens.Lens' BotAliasSummary (Prelude.Maybe Prelude.Text)+botAliasSummary_botAliasName = Lens.lens (\BotAliasSummary' {botAliasName} -> botAliasName) (\s@BotAliasSummary' {} a -> s {botAliasName = a} :: BotAliasSummary)++-- | The current state of the bot alias. If the status is @Available@, the+-- alias is ready for use.+botAliasSummary_botAliasStatus :: Lens.Lens' BotAliasSummary (Prelude.Maybe BotAliasStatus)+botAliasSummary_botAliasStatus = Lens.lens (\BotAliasSummary' {botAliasStatus} -> botAliasStatus) (\s@BotAliasSummary' {} a -> s {botAliasStatus = a} :: BotAliasSummary)++-- | The version of the bot that the bot alias references.+botAliasSummary_botVersion :: Lens.Lens' BotAliasSummary (Prelude.Maybe Prelude.Text)+botAliasSummary_botVersion = Lens.lens (\BotAliasSummary' {botVersion} -> botVersion) (\s@BotAliasSummary' {} a -> s {botVersion = a} :: BotAliasSummary)++-- | A timestamp of the date and time that the bot alias was created.+botAliasSummary_creationDateTime :: Lens.Lens' BotAliasSummary (Prelude.Maybe Prelude.UTCTime)+botAliasSummary_creationDateTime = Lens.lens (\BotAliasSummary' {creationDateTime} -> creationDateTime) (\s@BotAliasSummary' {} a -> s {creationDateTime = a} :: BotAliasSummary) Prelude.. Lens.mapping Data._Time++-- | The description of the bot alias.+botAliasSummary_description :: Lens.Lens' BotAliasSummary (Prelude.Maybe Prelude.Text)+botAliasSummary_description = Lens.lens (\BotAliasSummary' {description} -> description) (\s@BotAliasSummary' {} a -> s {description = a} :: BotAliasSummary)++-- | A timestamp of the date and time that the bot alias was last updated.+botAliasSummary_lastUpdatedDateTime :: Lens.Lens' BotAliasSummary (Prelude.Maybe Prelude.UTCTime)+botAliasSummary_lastUpdatedDateTime = Lens.lens (\BotAliasSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@BotAliasSummary' {} a -> s {lastUpdatedDateTime = a} :: BotAliasSummary) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON BotAliasSummary where+  parseJSON =+    Data.withObject+      "BotAliasSummary"+      ( \x ->+          BotAliasSummary'+            Prelude.<$> (x Data..:? "botAliasId")+            Prelude.<*> (x Data..:? "botAliasName")+            Prelude.<*> (x Data..:? "botAliasStatus")+            Prelude.<*> (x Data..:? "botVersion")+            Prelude.<*> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+      )++instance Prelude.Hashable BotAliasSummary where+  hashWithSalt _salt BotAliasSummary' {..} =+    _salt+      `Prelude.hashWithSalt` botAliasId+      `Prelude.hashWithSalt` botAliasName+      `Prelude.hashWithSalt` botAliasStatus+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastUpdatedDateTime++instance Prelude.NFData BotAliasSummary where+  rnf BotAliasSummary' {..} =+    Prelude.rnf botAliasId+      `Prelude.seq` Prelude.rnf botAliasName+      `Prelude.seq` Prelude.rnf botAliasStatus+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime
+ gen/Amazonka/LexV2Models/Types/BotExportSpecification.hs view
@@ -0,0 +1,100 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotExportSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotExportSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides the identity of a the bot that was exported.+--+-- /See:/ 'newBotExportSpecification' smart constructor.+data BotExportSpecification = BotExportSpecification'+  { -- | The identifier of the bot assigned by Amazon Lex.+    botId :: Prelude.Text,+    -- | The version of the bot that was exported. This will be either @DRAFT@ or+    -- the version number.+    botVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotExportSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'botExportSpecification_botId' - The identifier of the bot assigned by Amazon Lex.+--+-- 'botVersion', 'botExportSpecification_botVersion' - The version of the bot that was exported. This will be either @DRAFT@ or+-- the version number.+newBotExportSpecification ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  BotExportSpecification+newBotExportSpecification pBotId_ pBotVersion_ =+  BotExportSpecification'+    { botId = pBotId_,+      botVersion = pBotVersion_+    }++-- | The identifier of the bot assigned by Amazon Lex.+botExportSpecification_botId :: Lens.Lens' BotExportSpecification Prelude.Text+botExportSpecification_botId = Lens.lens (\BotExportSpecification' {botId} -> botId) (\s@BotExportSpecification' {} a -> s {botId = a} :: BotExportSpecification)++-- | The version of the bot that was exported. This will be either @DRAFT@ or+-- the version number.+botExportSpecification_botVersion :: Lens.Lens' BotExportSpecification Prelude.Text+botExportSpecification_botVersion = Lens.lens (\BotExportSpecification' {botVersion} -> botVersion) (\s@BotExportSpecification' {} a -> s {botVersion = a} :: BotExportSpecification)++instance Data.FromJSON BotExportSpecification where+  parseJSON =+    Data.withObject+      "BotExportSpecification"+      ( \x ->+          BotExportSpecification'+            Prelude.<$> (x Data..: "botId")+            Prelude.<*> (x Data..: "botVersion")+      )++instance Prelude.Hashable BotExportSpecification where+  hashWithSalt _salt BotExportSpecification' {..} =+    _salt+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion++instance Prelude.NFData BotExportSpecification where+  rnf BotExportSpecification' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion++instance Data.ToJSON BotExportSpecification where+  toJSON BotExportSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("botId" Data..= botId),+            Prelude.Just ("botVersion" Data..= botVersion)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/BotFilter.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.BotFilterName+import Amazonka.LexV2Models.Types.BotFilterOperator+import qualified Amazonka.Prelude as Prelude++-- | Filters the responses returned by the @ListBots@ operation.+--+-- /See:/ 'newBotFilter' smart constructor.+data BotFilter = BotFilter'+  { -- | The name of the field to filter the list of bots.+    name :: BotFilterName,+    -- | The value to use for filtering the list of bots.+    values :: Prelude.NonEmpty Prelude.Text,+    -- | The operator to use for the filter. Specify @EQ@ when the @ListBots@+    -- operation should return only aliases that equal the specified value.+    -- Specify @CO@ when the @ListBots@ operation should return aliases that+    -- contain the specified value.+    operator :: BotFilterOperator+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'botFilter_name' - The name of the field to filter the list of bots.+--+-- 'values', 'botFilter_values' - The value to use for filtering the list of bots.+--+-- 'operator', 'botFilter_operator' - The operator to use for the filter. Specify @EQ@ when the @ListBots@+-- operation should return only aliases that equal the specified value.+-- Specify @CO@ when the @ListBots@ operation should return aliases that+-- contain the specified value.+newBotFilter ::+  -- | 'name'+  BotFilterName ->+  -- | 'values'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'operator'+  BotFilterOperator ->+  BotFilter+newBotFilter pName_ pValues_ pOperator_ =+  BotFilter'+    { name = pName_,+      values = Lens.coerced Lens.# pValues_,+      operator = pOperator_+    }++-- | The name of the field to filter the list of bots.+botFilter_name :: Lens.Lens' BotFilter BotFilterName+botFilter_name = Lens.lens (\BotFilter' {name} -> name) (\s@BotFilter' {} a -> s {name = a} :: BotFilter)++-- | The value to use for filtering the list of bots.+botFilter_values :: Lens.Lens' BotFilter (Prelude.NonEmpty Prelude.Text)+botFilter_values = Lens.lens (\BotFilter' {values} -> values) (\s@BotFilter' {} a -> s {values = a} :: BotFilter) Prelude.. Lens.coerced++-- | The operator to use for the filter. Specify @EQ@ when the @ListBots@+-- operation should return only aliases that equal the specified value.+-- Specify @CO@ when the @ListBots@ operation should return aliases that+-- contain the specified value.+botFilter_operator :: Lens.Lens' BotFilter BotFilterOperator+botFilter_operator = Lens.lens (\BotFilter' {operator} -> operator) (\s@BotFilter' {} a -> s {operator = a} :: BotFilter)++instance Prelude.Hashable BotFilter where+  hashWithSalt _salt BotFilter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values+      `Prelude.hashWithSalt` operator++instance Prelude.NFData BotFilter where+  rnf BotFilter' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf values+      `Prelude.seq` Prelude.rnf operator++instance Data.ToJSON BotFilter where+  toJSON BotFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("name" Data..= name),+            Prelude.Just ("values" Data..= values),+            Prelude.Just ("operator" Data..= operator)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/BotFilterName.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotFilterName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotFilterName+  ( BotFilterName+      ( ..,+        BotFilterName_BotName+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BotFilterName = BotFilterName'+  { fromBotFilterName ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern BotFilterName_BotName :: BotFilterName+pattern BotFilterName_BotName = BotFilterName' "BotName"++{-# COMPLETE+  BotFilterName_BotName,+  BotFilterName'+  #-}
+ gen/Amazonka/LexV2Models/Types/BotFilterOperator.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotFilterOperator+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotFilterOperator+  ( BotFilterOperator+      ( ..,+        BotFilterOperator_CO,+        BotFilterOperator_EQ+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BotFilterOperator = BotFilterOperator'+  { fromBotFilterOperator ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern BotFilterOperator_CO :: BotFilterOperator+pattern BotFilterOperator_CO = BotFilterOperator' "CO"++pattern BotFilterOperator_EQ :: BotFilterOperator+pattern BotFilterOperator_EQ = BotFilterOperator' "EQ"++{-# COMPLETE+  BotFilterOperator_CO,+  BotFilterOperator_EQ,+  BotFilterOperator'+  #-}
+ gen/Amazonka/LexV2Models/Types/BotImportSpecification.hs view
@@ -0,0 +1,198 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotImportSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotImportSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.DataPrivacy+import qualified Amazonka.Prelude as Prelude++-- | Provides the bot parameters required for importing a bot.+--+-- /See:/ 'newBotImportSpecification' smart constructor.+data BotImportSpecification = BotImportSpecification'+  { -- | A list of tags to add to the bot. You can only add tags when you import+    -- a bot. You can\'t use the @UpdateBot@ operation to update tags. To+    -- update tags, use the @TagResource@ operation.+    botTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The time, in seconds, that Amazon Lex should keep information about a+    -- user\'s conversation with the bot.+    --+    -- A user interaction remains active for the amount of time specified. If+    -- no conversation occurs during this time, the session expires and Amazon+    -- Lex deletes any data provided before the timeout.+    --+    -- You can specify between 60 (1 minute) and 86,400 (24 hours) seconds.+    idleSessionTTLInSeconds :: Prelude.Maybe Prelude.Natural,+    -- | A list of tags to add to the test alias for a bot. You can only add tags+    -- when you import a bot. You can\'t use the @UpdateAlias@ operation to+    -- update tags. To update tags on the test alias, use the @TagResource@+    -- operation.+    testBotAliasTags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The name that Amazon Lex should use for the bot.+    botName :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the IAM role used to build and run the+    -- bot.+    roleArn :: Prelude.Text,+    dataPrivacy :: DataPrivacy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotImportSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botTags', 'botImportSpecification_botTags' - A list of tags to add to the bot. You can only add tags when you import+-- a bot. You can\'t use the @UpdateBot@ operation to update tags. To+-- update tags, use the @TagResource@ operation.+--+-- 'idleSessionTTLInSeconds', 'botImportSpecification_idleSessionTTLInSeconds' - The time, in seconds, that Amazon Lex should keep information about a+-- user\'s conversation with the bot.+--+-- A user interaction remains active for the amount of time specified. If+-- no conversation occurs during this time, the session expires and Amazon+-- Lex deletes any data provided before the timeout.+--+-- You can specify between 60 (1 minute) and 86,400 (24 hours) seconds.+--+-- 'testBotAliasTags', 'botImportSpecification_testBotAliasTags' - A list of tags to add to the test alias for a bot. You can only add tags+-- when you import a bot. You can\'t use the @UpdateAlias@ operation to+-- update tags. To update tags on the test alias, use the @TagResource@+-- operation.+--+-- 'botName', 'botImportSpecification_botName' - The name that Amazon Lex should use for the bot.+--+-- 'roleArn', 'botImportSpecification_roleArn' - The Amazon Resource Name (ARN) of the IAM role used to build and run the+-- bot.+--+-- 'dataPrivacy', 'botImportSpecification_dataPrivacy' - Undocumented member.+newBotImportSpecification ::+  -- | 'botName'+  Prelude.Text ->+  -- | 'roleArn'+  Prelude.Text ->+  -- | 'dataPrivacy'+  DataPrivacy ->+  BotImportSpecification+newBotImportSpecification+  pBotName_+  pRoleArn_+  pDataPrivacy_ =+    BotImportSpecification'+      { botTags = Prelude.Nothing,+        idleSessionTTLInSeconds = Prelude.Nothing,+        testBotAliasTags = Prelude.Nothing,+        botName = pBotName_,+        roleArn = pRoleArn_,+        dataPrivacy = pDataPrivacy_+      }++-- | A list of tags to add to the bot. You can only add tags when you import+-- a bot. You can\'t use the @UpdateBot@ operation to update tags. To+-- update tags, use the @TagResource@ operation.+botImportSpecification_botTags :: Lens.Lens' BotImportSpecification (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+botImportSpecification_botTags = Lens.lens (\BotImportSpecification' {botTags} -> botTags) (\s@BotImportSpecification' {} a -> s {botTags = a} :: BotImportSpecification) Prelude.. Lens.mapping Lens.coerced++-- | The time, in seconds, that Amazon Lex should keep information about a+-- user\'s conversation with the bot.+--+-- A user interaction remains active for the amount of time specified. If+-- no conversation occurs during this time, the session expires and Amazon+-- Lex deletes any data provided before the timeout.+--+-- You can specify between 60 (1 minute) and 86,400 (24 hours) seconds.+botImportSpecification_idleSessionTTLInSeconds :: Lens.Lens' BotImportSpecification (Prelude.Maybe Prelude.Natural)+botImportSpecification_idleSessionTTLInSeconds = Lens.lens (\BotImportSpecification' {idleSessionTTLInSeconds} -> idleSessionTTLInSeconds) (\s@BotImportSpecification' {} a -> s {idleSessionTTLInSeconds = a} :: BotImportSpecification)++-- | A list of tags to add to the test alias for a bot. You can only add tags+-- when you import a bot. You can\'t use the @UpdateAlias@ operation to+-- update tags. To update tags on the test alias, use the @TagResource@+-- operation.+botImportSpecification_testBotAliasTags :: Lens.Lens' BotImportSpecification (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+botImportSpecification_testBotAliasTags = Lens.lens (\BotImportSpecification' {testBotAliasTags} -> testBotAliasTags) (\s@BotImportSpecification' {} a -> s {testBotAliasTags = a} :: BotImportSpecification) Prelude.. Lens.mapping Lens.coerced++-- | The name that Amazon Lex should use for the bot.+botImportSpecification_botName :: Lens.Lens' BotImportSpecification Prelude.Text+botImportSpecification_botName = Lens.lens (\BotImportSpecification' {botName} -> botName) (\s@BotImportSpecification' {} a -> s {botName = a} :: BotImportSpecification)++-- | The Amazon Resource Name (ARN) of the IAM role used to build and run the+-- bot.+botImportSpecification_roleArn :: Lens.Lens' BotImportSpecification Prelude.Text+botImportSpecification_roleArn = Lens.lens (\BotImportSpecification' {roleArn} -> roleArn) (\s@BotImportSpecification' {} a -> s {roleArn = a} :: BotImportSpecification)++-- | Undocumented member.+botImportSpecification_dataPrivacy :: Lens.Lens' BotImportSpecification DataPrivacy+botImportSpecification_dataPrivacy = Lens.lens (\BotImportSpecification' {dataPrivacy} -> dataPrivacy) (\s@BotImportSpecification' {} a -> s {dataPrivacy = a} :: BotImportSpecification)++instance Data.FromJSON BotImportSpecification where+  parseJSON =+    Data.withObject+      "BotImportSpecification"+      ( \x ->+          BotImportSpecification'+            Prelude.<$> (x Data..:? "botTags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "idleSessionTTLInSeconds")+            Prelude.<*> ( x+                            Data..:? "testBotAliasTags"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "botName")+            Prelude.<*> (x Data..: "roleArn")+            Prelude.<*> (x Data..: "dataPrivacy")+      )++instance Prelude.Hashable BotImportSpecification where+  hashWithSalt _salt BotImportSpecification' {..} =+    _salt+      `Prelude.hashWithSalt` botTags+      `Prelude.hashWithSalt` idleSessionTTLInSeconds+      `Prelude.hashWithSalt` testBotAliasTags+      `Prelude.hashWithSalt` botName+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` dataPrivacy++instance Prelude.NFData BotImportSpecification where+  rnf BotImportSpecification' {..} =+    Prelude.rnf botTags+      `Prelude.seq` Prelude.rnf idleSessionTTLInSeconds+      `Prelude.seq` Prelude.rnf testBotAliasTags+      `Prelude.seq` Prelude.rnf botName+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf dataPrivacy++instance Data.ToJSON BotImportSpecification where+  toJSON BotImportSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("botTags" Data..=) Prelude.<$> botTags,+            ("idleSessionTTLInSeconds" Data..=)+              Prelude.<$> idleSessionTTLInSeconds,+            ("testBotAliasTags" Data..=)+              Prelude.<$> testBotAliasTags,+            Prelude.Just ("botName" Data..= botName),+            Prelude.Just ("roleArn" Data..= roleArn),+            Prelude.Just ("dataPrivacy" Data..= dataPrivacy)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/BotLocaleExportSpecification.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotLocaleExportSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotLocaleExportSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides the bot locale parameters required for exporting a bot locale.+--+-- /See:/ 'newBotLocaleExportSpecification' smart constructor.+data BotLocaleExportSpecification = BotLocaleExportSpecification'+  { -- | The identifier of the bot to create the locale for.+    botId :: Prelude.Text,+    -- | The version of the bot to export.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale to export. The string must+    -- match one of the locales in the bot.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotLocaleExportSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'botLocaleExportSpecification_botId' - The identifier of the bot to create the locale for.+--+-- 'botVersion', 'botLocaleExportSpecification_botVersion' - The version of the bot to export.+--+-- 'localeId', 'botLocaleExportSpecification_localeId' - The identifier of the language and locale to export. The string must+-- match one of the locales in the bot.+newBotLocaleExportSpecification ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  BotLocaleExportSpecification+newBotLocaleExportSpecification+  pBotId_+  pBotVersion_+  pLocaleId_ =+    BotLocaleExportSpecification'+      { botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_+      }++-- | The identifier of the bot to create the locale for.+botLocaleExportSpecification_botId :: Lens.Lens' BotLocaleExportSpecification Prelude.Text+botLocaleExportSpecification_botId = Lens.lens (\BotLocaleExportSpecification' {botId} -> botId) (\s@BotLocaleExportSpecification' {} a -> s {botId = a} :: BotLocaleExportSpecification)++-- | The version of the bot to export.+botLocaleExportSpecification_botVersion :: Lens.Lens' BotLocaleExportSpecification Prelude.Text+botLocaleExportSpecification_botVersion = Lens.lens (\BotLocaleExportSpecification' {botVersion} -> botVersion) (\s@BotLocaleExportSpecification' {} a -> s {botVersion = a} :: BotLocaleExportSpecification)++-- | The identifier of the language and locale to export. The string must+-- match one of the locales in the bot.+botLocaleExportSpecification_localeId :: Lens.Lens' BotLocaleExportSpecification Prelude.Text+botLocaleExportSpecification_localeId = Lens.lens (\BotLocaleExportSpecification' {localeId} -> localeId) (\s@BotLocaleExportSpecification' {} a -> s {localeId = a} :: BotLocaleExportSpecification)++instance Data.FromJSON BotLocaleExportSpecification where+  parseJSON =+    Data.withObject+      "BotLocaleExportSpecification"+      ( \x ->+          BotLocaleExportSpecification'+            Prelude.<$> (x Data..: "botId")+            Prelude.<*> (x Data..: "botVersion")+            Prelude.<*> (x Data..: "localeId")+      )++instance+  Prelude.Hashable+    BotLocaleExportSpecification+  where+  hashWithSalt _salt BotLocaleExportSpecification' {..} =+    _salt+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData BotLocaleExportSpecification where+  rnf BotLocaleExportSpecification' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToJSON BotLocaleExportSpecification where+  toJSON BotLocaleExportSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("botId" Data..= botId),+            Prelude.Just ("botVersion" Data..= botVersion),+            Prelude.Just ("localeId" Data..= localeId)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/BotLocaleFilter.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotLocaleFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotLocaleFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.BotLocaleFilterName+import Amazonka.LexV2Models.Types.BotLocaleFilterOperator+import qualified Amazonka.Prelude as Prelude++-- | Filters responses returned by the @ListBotLocales@ operation.+--+-- /See:/ 'newBotLocaleFilter' smart constructor.+data BotLocaleFilter = BotLocaleFilter'+  { -- | The name of the field to filter the list of bots.+    name :: BotLocaleFilterName,+    -- | The value to use for filtering the list of bots.+    values :: Prelude.NonEmpty Prelude.Text,+    -- | The operator to use for the filter. Specify @EQ@ when the+    -- @ListBotLocales@ operation should return only aliases that equal the+    -- specified value. Specify @CO@ when the @ListBotLocales@ operation should+    -- return aliases that contain the specified value.+    operator :: BotLocaleFilterOperator+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotLocaleFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'botLocaleFilter_name' - The name of the field to filter the list of bots.+--+-- 'values', 'botLocaleFilter_values' - The value to use for filtering the list of bots.+--+-- 'operator', 'botLocaleFilter_operator' - The operator to use for the filter. Specify @EQ@ when the+-- @ListBotLocales@ operation should return only aliases that equal the+-- specified value. Specify @CO@ when the @ListBotLocales@ operation should+-- return aliases that contain the specified value.+newBotLocaleFilter ::+  -- | 'name'+  BotLocaleFilterName ->+  -- | 'values'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'operator'+  BotLocaleFilterOperator ->+  BotLocaleFilter+newBotLocaleFilter pName_ pValues_ pOperator_ =+  BotLocaleFilter'+    { name = pName_,+      values = Lens.coerced Lens.# pValues_,+      operator = pOperator_+    }++-- | The name of the field to filter the list of bots.+botLocaleFilter_name :: Lens.Lens' BotLocaleFilter BotLocaleFilterName+botLocaleFilter_name = Lens.lens (\BotLocaleFilter' {name} -> name) (\s@BotLocaleFilter' {} a -> s {name = a} :: BotLocaleFilter)++-- | The value to use for filtering the list of bots.+botLocaleFilter_values :: Lens.Lens' BotLocaleFilter (Prelude.NonEmpty Prelude.Text)+botLocaleFilter_values = Lens.lens (\BotLocaleFilter' {values} -> values) (\s@BotLocaleFilter' {} a -> s {values = a} :: BotLocaleFilter) Prelude.. Lens.coerced++-- | The operator to use for the filter. Specify @EQ@ when the+-- @ListBotLocales@ operation should return only aliases that equal the+-- specified value. Specify @CO@ when the @ListBotLocales@ operation should+-- return aliases that contain the specified value.+botLocaleFilter_operator :: Lens.Lens' BotLocaleFilter BotLocaleFilterOperator+botLocaleFilter_operator = Lens.lens (\BotLocaleFilter' {operator} -> operator) (\s@BotLocaleFilter' {} a -> s {operator = a} :: BotLocaleFilter)++instance Prelude.Hashable BotLocaleFilter where+  hashWithSalt _salt BotLocaleFilter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values+      `Prelude.hashWithSalt` operator++instance Prelude.NFData BotLocaleFilter where+  rnf BotLocaleFilter' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf values+      `Prelude.seq` Prelude.rnf operator++instance Data.ToJSON BotLocaleFilter where+  toJSON BotLocaleFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("name" Data..= name),+            Prelude.Just ("values" Data..= values),+            Prelude.Just ("operator" Data..= operator)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/BotLocaleFilterName.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotLocaleFilterName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotLocaleFilterName+  ( BotLocaleFilterName+      ( ..,+        BotLocaleFilterName_BotLocaleName+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BotLocaleFilterName = BotLocaleFilterName'+  { fromBotLocaleFilterName ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern BotLocaleFilterName_BotLocaleName :: BotLocaleFilterName+pattern BotLocaleFilterName_BotLocaleName = BotLocaleFilterName' "BotLocaleName"++{-# COMPLETE+  BotLocaleFilterName_BotLocaleName,+  BotLocaleFilterName'+  #-}
+ gen/Amazonka/LexV2Models/Types/BotLocaleFilterOperator.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotLocaleFilterOperator+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotLocaleFilterOperator+  ( BotLocaleFilterOperator+      ( ..,+        BotLocaleFilterOperator_CO,+        BotLocaleFilterOperator_EQ+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BotLocaleFilterOperator = BotLocaleFilterOperator'+  { fromBotLocaleFilterOperator ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern BotLocaleFilterOperator_CO :: BotLocaleFilterOperator+pattern BotLocaleFilterOperator_CO = BotLocaleFilterOperator' "CO"++pattern BotLocaleFilterOperator_EQ :: BotLocaleFilterOperator+pattern BotLocaleFilterOperator_EQ = BotLocaleFilterOperator' "EQ"++{-# COMPLETE+  BotLocaleFilterOperator_CO,+  BotLocaleFilterOperator_EQ,+  BotLocaleFilterOperator'+  #-}
+ gen/Amazonka/LexV2Models/Types/BotLocaleHistoryEvent.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotLocaleHistoryEvent+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotLocaleHistoryEvent where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides information about an event that occurred affecting the bot+-- locale.+--+-- /See:/ 'newBotLocaleHistoryEvent' smart constructor.+data BotLocaleHistoryEvent = BotLocaleHistoryEvent'+  { -- | A description of the event that occurred.+    event :: Prelude.Text,+    -- | A timestamp of the date and time that the event occurred.+    eventDate :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotLocaleHistoryEvent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'event', 'botLocaleHistoryEvent_event' - A description of the event that occurred.+--+-- 'eventDate', 'botLocaleHistoryEvent_eventDate' - A timestamp of the date and time that the event occurred.+newBotLocaleHistoryEvent ::+  -- | 'event'+  Prelude.Text ->+  -- | 'eventDate'+  Prelude.UTCTime ->+  BotLocaleHistoryEvent+newBotLocaleHistoryEvent pEvent_ pEventDate_ =+  BotLocaleHistoryEvent'+    { event = pEvent_,+      eventDate = Data._Time Lens.# pEventDate_+    }++-- | A description of the event that occurred.+botLocaleHistoryEvent_event :: Lens.Lens' BotLocaleHistoryEvent Prelude.Text+botLocaleHistoryEvent_event = Lens.lens (\BotLocaleHistoryEvent' {event} -> event) (\s@BotLocaleHistoryEvent' {} a -> s {event = a} :: BotLocaleHistoryEvent)++-- | A timestamp of the date and time that the event occurred.+botLocaleHistoryEvent_eventDate :: Lens.Lens' BotLocaleHistoryEvent Prelude.UTCTime+botLocaleHistoryEvent_eventDate = Lens.lens (\BotLocaleHistoryEvent' {eventDate} -> eventDate) (\s@BotLocaleHistoryEvent' {} a -> s {eventDate = a} :: BotLocaleHistoryEvent) Prelude.. Data._Time++instance Data.FromJSON BotLocaleHistoryEvent where+  parseJSON =+    Data.withObject+      "BotLocaleHistoryEvent"+      ( \x ->+          BotLocaleHistoryEvent'+            Prelude.<$> (x Data..: "event")+            Prelude.<*> (x Data..: "eventDate")+      )++instance Prelude.Hashable BotLocaleHistoryEvent where+  hashWithSalt _salt BotLocaleHistoryEvent' {..} =+    _salt+      `Prelude.hashWithSalt` event+      `Prelude.hashWithSalt` eventDate++instance Prelude.NFData BotLocaleHistoryEvent where+  rnf BotLocaleHistoryEvent' {..} =+    Prelude.rnf event+      `Prelude.seq` Prelude.rnf eventDate
+ gen/Amazonka/LexV2Models/Types/BotLocaleImportSpecification.hs view
@@ -0,0 +1,215 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotLocaleImportSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotLocaleImportSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.VoiceSettings+import qualified Amazonka.Prelude as Prelude++-- | Provides the bot locale parameters required for importing a bot locale.+--+-- /See:/ 'newBotLocaleImportSpecification' smart constructor.+data BotLocaleImportSpecification = BotLocaleImportSpecification'+  { -- | Determines the threshold where Amazon Lex will insert the+    -- @AMAZON.FallbackIntent@, @AMAZON.KendraSearchIntent@, or both when+    -- returning alternative intents. @AMAZON.FallbackIntent@ and+    -- @AMAZON.KendraSearchIntent@ are only inserted if they are configured for+    -- the bot.+    --+    -- For example, suppose a bot is configured with the confidence threshold+    -- of 0.80 and the @AMAZON.FallbackIntent@. Amazon Lex returns three+    -- alternative intents with the following confidence scores: IntentA+    -- (0.70), IntentB (0.60), IntentC (0.50). The response from the @PostText@+    -- operation would be:+    --+    -- -   @AMAZON.FallbackIntent@+    --+    -- -   @IntentA@+    --+    -- -   @IntentB@+    --+    -- -   @IntentC@+    nluIntentConfidenceThreshold :: Prelude.Maybe Prelude.Double,+    voiceSettings :: Prelude.Maybe VoiceSettings,+    -- | The identifier of the bot to import the locale to.+    botId :: Prelude.Text,+    -- | The version of the bot to import the locale to. This can only be the+    -- @DRAFT@ version of the bot.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale that the bot will be used in.+    -- The string must match one of the supported locales. All of the intents,+    -- slot types, and slots used in the bot must have the same locale. For+    -- more information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotLocaleImportSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nluIntentConfidenceThreshold', 'botLocaleImportSpecification_nluIntentConfidenceThreshold' - Determines the threshold where Amazon Lex will insert the+-- @AMAZON.FallbackIntent@, @AMAZON.KendraSearchIntent@, or both when+-- returning alternative intents. @AMAZON.FallbackIntent@ and+-- @AMAZON.KendraSearchIntent@ are only inserted if they are configured for+-- the bot.+--+-- For example, suppose a bot is configured with the confidence threshold+-- of 0.80 and the @AMAZON.FallbackIntent@. Amazon Lex returns three+-- alternative intents with the following confidence scores: IntentA+-- (0.70), IntentB (0.60), IntentC (0.50). The response from the @PostText@+-- operation would be:+--+-- -   @AMAZON.FallbackIntent@+--+-- -   @IntentA@+--+-- -   @IntentB@+--+-- -   @IntentC@+--+-- 'voiceSettings', 'botLocaleImportSpecification_voiceSettings' - Undocumented member.+--+-- 'botId', 'botLocaleImportSpecification_botId' - The identifier of the bot to import the locale to.+--+-- 'botVersion', 'botLocaleImportSpecification_botVersion' - The version of the bot to import the locale to. This can only be the+-- @DRAFT@ version of the bot.+--+-- 'localeId', 'botLocaleImportSpecification_localeId' - The identifier of the language and locale that the bot will be used in.+-- The string must match one of the supported locales. All of the intents,+-- slot types, and slots used in the bot must have the same locale. For+-- more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+newBotLocaleImportSpecification ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  BotLocaleImportSpecification+newBotLocaleImportSpecification+  pBotId_+  pBotVersion_+  pLocaleId_ =+    BotLocaleImportSpecification'+      { nluIntentConfidenceThreshold =+          Prelude.Nothing,+        voiceSettings = Prelude.Nothing,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_+      }++-- | Determines the threshold where Amazon Lex will insert the+-- @AMAZON.FallbackIntent@, @AMAZON.KendraSearchIntent@, or both when+-- returning alternative intents. @AMAZON.FallbackIntent@ and+-- @AMAZON.KendraSearchIntent@ are only inserted if they are configured for+-- the bot.+--+-- For example, suppose a bot is configured with the confidence threshold+-- of 0.80 and the @AMAZON.FallbackIntent@. Amazon Lex returns three+-- alternative intents with the following confidence scores: IntentA+-- (0.70), IntentB (0.60), IntentC (0.50). The response from the @PostText@+-- operation would be:+--+-- -   @AMAZON.FallbackIntent@+--+-- -   @IntentA@+--+-- -   @IntentB@+--+-- -   @IntentC@+botLocaleImportSpecification_nluIntentConfidenceThreshold :: Lens.Lens' BotLocaleImportSpecification (Prelude.Maybe Prelude.Double)+botLocaleImportSpecification_nluIntentConfidenceThreshold = Lens.lens (\BotLocaleImportSpecification' {nluIntentConfidenceThreshold} -> nluIntentConfidenceThreshold) (\s@BotLocaleImportSpecification' {} a -> s {nluIntentConfidenceThreshold = a} :: BotLocaleImportSpecification)++-- | Undocumented member.+botLocaleImportSpecification_voiceSettings :: Lens.Lens' BotLocaleImportSpecification (Prelude.Maybe VoiceSettings)+botLocaleImportSpecification_voiceSettings = Lens.lens (\BotLocaleImportSpecification' {voiceSettings} -> voiceSettings) (\s@BotLocaleImportSpecification' {} a -> s {voiceSettings = a} :: BotLocaleImportSpecification)++-- | The identifier of the bot to import the locale to.+botLocaleImportSpecification_botId :: Lens.Lens' BotLocaleImportSpecification Prelude.Text+botLocaleImportSpecification_botId = Lens.lens (\BotLocaleImportSpecification' {botId} -> botId) (\s@BotLocaleImportSpecification' {} a -> s {botId = a} :: BotLocaleImportSpecification)++-- | The version of the bot to import the locale to. This can only be the+-- @DRAFT@ version of the bot.+botLocaleImportSpecification_botVersion :: Lens.Lens' BotLocaleImportSpecification Prelude.Text+botLocaleImportSpecification_botVersion = Lens.lens (\BotLocaleImportSpecification' {botVersion} -> botVersion) (\s@BotLocaleImportSpecification' {} a -> s {botVersion = a} :: BotLocaleImportSpecification)++-- | The identifier of the language and locale that the bot will be used in.+-- The string must match one of the supported locales. All of the intents,+-- slot types, and slots used in the bot must have the same locale. For+-- more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+botLocaleImportSpecification_localeId :: Lens.Lens' BotLocaleImportSpecification Prelude.Text+botLocaleImportSpecification_localeId = Lens.lens (\BotLocaleImportSpecification' {localeId} -> localeId) (\s@BotLocaleImportSpecification' {} a -> s {localeId = a} :: BotLocaleImportSpecification)++instance Data.FromJSON BotLocaleImportSpecification where+  parseJSON =+    Data.withObject+      "BotLocaleImportSpecification"+      ( \x ->+          BotLocaleImportSpecification'+            Prelude.<$> (x Data..:? "nluIntentConfidenceThreshold")+            Prelude.<*> (x Data..:? "voiceSettings")+            Prelude.<*> (x Data..: "botId")+            Prelude.<*> (x Data..: "botVersion")+            Prelude.<*> (x Data..: "localeId")+      )++instance+  Prelude.Hashable+    BotLocaleImportSpecification+  where+  hashWithSalt _salt BotLocaleImportSpecification' {..} =+    _salt+      `Prelude.hashWithSalt` nluIntentConfidenceThreshold+      `Prelude.hashWithSalt` voiceSettings+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData BotLocaleImportSpecification where+  rnf BotLocaleImportSpecification' {..} =+    Prelude.rnf nluIntentConfidenceThreshold+      `Prelude.seq` Prelude.rnf voiceSettings+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToJSON BotLocaleImportSpecification where+  toJSON BotLocaleImportSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("nluIntentConfidenceThreshold" Data..=)+              Prelude.<$> nluIntentConfidenceThreshold,+            ("voiceSettings" Data..=) Prelude.<$> voiceSettings,+            Prelude.Just ("botId" Data..= botId),+            Prelude.Just ("botVersion" Data..= botVersion),+            Prelude.Just ("localeId" Data..= localeId)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/BotLocaleSortAttribute.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotLocaleSortAttribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotLocaleSortAttribute+  ( BotLocaleSortAttribute+      ( ..,+        BotLocaleSortAttribute_BotLocaleName+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BotLocaleSortAttribute = BotLocaleSortAttribute'+  { fromBotLocaleSortAttribute ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern BotLocaleSortAttribute_BotLocaleName :: BotLocaleSortAttribute+pattern BotLocaleSortAttribute_BotLocaleName = BotLocaleSortAttribute' "BotLocaleName"++{-# COMPLETE+  BotLocaleSortAttribute_BotLocaleName,+  BotLocaleSortAttribute'+  #-}
+ gen/Amazonka/LexV2Models/Types/BotLocaleSortBy.hs view
@@ -0,0 +1,92 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotLocaleSortBy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotLocaleSortBy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.BotLocaleSortAttribute+import Amazonka.LexV2Models.Types.SortOrder+import qualified Amazonka.Prelude as Prelude++-- | Specifies attributes for sorting a list of bot locales.+--+-- /See:/ 'newBotLocaleSortBy' smart constructor.+data BotLocaleSortBy = BotLocaleSortBy'+  { -- | The bot locale attribute to sort by.+    attribute :: BotLocaleSortAttribute,+    -- | Specifies whether to sort the bot locales in ascending or descending+    -- order.+    order :: SortOrder+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotLocaleSortBy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attribute', 'botLocaleSortBy_attribute' - The bot locale attribute to sort by.+--+-- 'order', 'botLocaleSortBy_order' - Specifies whether to sort the bot locales in ascending or descending+-- order.+newBotLocaleSortBy ::+  -- | 'attribute'+  BotLocaleSortAttribute ->+  -- | 'order'+  SortOrder ->+  BotLocaleSortBy+newBotLocaleSortBy pAttribute_ pOrder_ =+  BotLocaleSortBy'+    { attribute = pAttribute_,+      order = pOrder_+    }++-- | The bot locale attribute to sort by.+botLocaleSortBy_attribute :: Lens.Lens' BotLocaleSortBy BotLocaleSortAttribute+botLocaleSortBy_attribute = Lens.lens (\BotLocaleSortBy' {attribute} -> attribute) (\s@BotLocaleSortBy' {} a -> s {attribute = a} :: BotLocaleSortBy)++-- | Specifies whether to sort the bot locales in ascending or descending+-- order.+botLocaleSortBy_order :: Lens.Lens' BotLocaleSortBy SortOrder+botLocaleSortBy_order = Lens.lens (\BotLocaleSortBy' {order} -> order) (\s@BotLocaleSortBy' {} a -> s {order = a} :: BotLocaleSortBy)++instance Prelude.Hashable BotLocaleSortBy where+  hashWithSalt _salt BotLocaleSortBy' {..} =+    _salt+      `Prelude.hashWithSalt` attribute+      `Prelude.hashWithSalt` order++instance Prelude.NFData BotLocaleSortBy where+  rnf BotLocaleSortBy' {..} =+    Prelude.rnf attribute+      `Prelude.seq` Prelude.rnf order++instance Data.ToJSON BotLocaleSortBy where+  toJSON BotLocaleSortBy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("attribute" Data..= attribute),+            Prelude.Just ("order" Data..= order)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/BotLocaleStatus.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotLocaleStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotLocaleStatus+  ( BotLocaleStatus+      ( ..,+        BotLocaleStatus_Building,+        BotLocaleStatus_Built,+        BotLocaleStatus_Creating,+        BotLocaleStatus_Deleting,+        BotLocaleStatus_Failed,+        BotLocaleStatus_Importing,+        BotLocaleStatus_NotBuilt,+        BotLocaleStatus_Processing,+        BotLocaleStatus_ReadyExpressTesting+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BotLocaleStatus = BotLocaleStatus'+  { fromBotLocaleStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern BotLocaleStatus_Building :: BotLocaleStatus+pattern BotLocaleStatus_Building = BotLocaleStatus' "Building"++pattern BotLocaleStatus_Built :: BotLocaleStatus+pattern BotLocaleStatus_Built = BotLocaleStatus' "Built"++pattern BotLocaleStatus_Creating :: BotLocaleStatus+pattern BotLocaleStatus_Creating = BotLocaleStatus' "Creating"++pattern BotLocaleStatus_Deleting :: BotLocaleStatus+pattern BotLocaleStatus_Deleting = BotLocaleStatus' "Deleting"++pattern BotLocaleStatus_Failed :: BotLocaleStatus+pattern BotLocaleStatus_Failed = BotLocaleStatus' "Failed"++pattern BotLocaleStatus_Importing :: BotLocaleStatus+pattern BotLocaleStatus_Importing = BotLocaleStatus' "Importing"++pattern BotLocaleStatus_NotBuilt :: BotLocaleStatus+pattern BotLocaleStatus_NotBuilt = BotLocaleStatus' "NotBuilt"++pattern BotLocaleStatus_Processing :: BotLocaleStatus+pattern BotLocaleStatus_Processing = BotLocaleStatus' "Processing"++pattern BotLocaleStatus_ReadyExpressTesting :: BotLocaleStatus+pattern BotLocaleStatus_ReadyExpressTesting = BotLocaleStatus' "ReadyExpressTesting"++{-# COMPLETE+  BotLocaleStatus_Building,+  BotLocaleStatus_Built,+  BotLocaleStatus_Creating,+  BotLocaleStatus_Deleting,+  BotLocaleStatus_Failed,+  BotLocaleStatus_Importing,+  BotLocaleStatus_NotBuilt,+  BotLocaleStatus_Processing,+  BotLocaleStatus_ReadyExpressTesting,+  BotLocaleStatus'+  #-}
+ gen/Amazonka/LexV2Models/Types/BotLocaleSummary.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotLocaleSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotLocaleSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.BotLocaleStatus+import qualified Amazonka.Prelude as Prelude++-- | Summary information about bot locales returned by the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_ListBotLocales.html ListBotLocales>+-- operation.+--+-- /See:/ 'newBotLocaleSummary' smart constructor.+data BotLocaleSummary = BotLocaleSummary'+  { -- | The current status of the bot locale. When the status is @Built@ the+    -- locale is ready for use.+    botLocaleStatus :: Prelude.Maybe BotLocaleStatus,+    -- | The description of the bot locale.+    description :: Prelude.Maybe Prelude.Text,+    -- | A timestamp of the date and time that the bot locale was last built.+    lastBuildSubmittedDateTime :: Prelude.Maybe Data.POSIX,+    -- | A timestamp of the date and time that the bot locale was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The language and locale of the bot locale.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The name of the bot locale.+    localeName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotLocaleSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botLocaleStatus', 'botLocaleSummary_botLocaleStatus' - The current status of the bot locale. When the status is @Built@ the+-- locale is ready for use.+--+-- 'description', 'botLocaleSummary_description' - The description of the bot locale.+--+-- 'lastBuildSubmittedDateTime', 'botLocaleSummary_lastBuildSubmittedDateTime' - A timestamp of the date and time that the bot locale was last built.+--+-- 'lastUpdatedDateTime', 'botLocaleSummary_lastUpdatedDateTime' - A timestamp of the date and time that the bot locale was last updated.+--+-- 'localeId', 'botLocaleSummary_localeId' - The language and locale of the bot locale.+--+-- 'localeName', 'botLocaleSummary_localeName' - The name of the bot locale.+newBotLocaleSummary ::+  BotLocaleSummary+newBotLocaleSummary =+  BotLocaleSummary'+    { botLocaleStatus =+        Prelude.Nothing,+      description = Prelude.Nothing,+      lastBuildSubmittedDateTime = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      localeId = Prelude.Nothing,+      localeName = Prelude.Nothing+    }++-- | The current status of the bot locale. When the status is @Built@ the+-- locale is ready for use.+botLocaleSummary_botLocaleStatus :: Lens.Lens' BotLocaleSummary (Prelude.Maybe BotLocaleStatus)+botLocaleSummary_botLocaleStatus = Lens.lens (\BotLocaleSummary' {botLocaleStatus} -> botLocaleStatus) (\s@BotLocaleSummary' {} a -> s {botLocaleStatus = a} :: BotLocaleSummary)++-- | The description of the bot locale.+botLocaleSummary_description :: Lens.Lens' BotLocaleSummary (Prelude.Maybe Prelude.Text)+botLocaleSummary_description = Lens.lens (\BotLocaleSummary' {description} -> description) (\s@BotLocaleSummary' {} a -> s {description = a} :: BotLocaleSummary)++-- | A timestamp of the date and time that the bot locale was last built.+botLocaleSummary_lastBuildSubmittedDateTime :: Lens.Lens' BotLocaleSummary (Prelude.Maybe Prelude.UTCTime)+botLocaleSummary_lastBuildSubmittedDateTime = Lens.lens (\BotLocaleSummary' {lastBuildSubmittedDateTime} -> lastBuildSubmittedDateTime) (\s@BotLocaleSummary' {} a -> s {lastBuildSubmittedDateTime = a} :: BotLocaleSummary) Prelude.. Lens.mapping Data._Time++-- | A timestamp of the date and time that the bot locale was last updated.+botLocaleSummary_lastUpdatedDateTime :: Lens.Lens' BotLocaleSummary (Prelude.Maybe Prelude.UTCTime)+botLocaleSummary_lastUpdatedDateTime = Lens.lens (\BotLocaleSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@BotLocaleSummary' {} a -> s {lastUpdatedDateTime = a} :: BotLocaleSummary) Prelude.. Lens.mapping Data._Time++-- | The language and locale of the bot locale.+botLocaleSummary_localeId :: Lens.Lens' BotLocaleSummary (Prelude.Maybe Prelude.Text)+botLocaleSummary_localeId = Lens.lens (\BotLocaleSummary' {localeId} -> localeId) (\s@BotLocaleSummary' {} a -> s {localeId = a} :: BotLocaleSummary)++-- | The name of the bot locale.+botLocaleSummary_localeName :: Lens.Lens' BotLocaleSummary (Prelude.Maybe Prelude.Text)+botLocaleSummary_localeName = Lens.lens (\BotLocaleSummary' {localeName} -> localeName) (\s@BotLocaleSummary' {} a -> s {localeName = a} :: BotLocaleSummary)++instance Data.FromJSON BotLocaleSummary where+  parseJSON =+    Data.withObject+      "BotLocaleSummary"+      ( \x ->+          BotLocaleSummary'+            Prelude.<$> (x Data..:? "botLocaleStatus")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "lastBuildSubmittedDateTime")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "localeId")+            Prelude.<*> (x Data..:? "localeName")+      )++instance Prelude.Hashable BotLocaleSummary where+  hashWithSalt _salt BotLocaleSummary' {..} =+    _salt+      `Prelude.hashWithSalt` botLocaleStatus+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastBuildSubmittedDateTime+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` localeName++instance Prelude.NFData BotLocaleSummary where+  rnf BotLocaleSummary' {..} =+    Prelude.rnf botLocaleStatus+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastBuildSubmittedDateTime+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf localeName
+ gen/Amazonka/LexV2Models/Types/BotRecommendationResultStatistics.hs view
@@ -0,0 +1,104 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotRecommendationResultStatistics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotRecommendationResultStatistics where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.IntentStatistics+import Amazonka.LexV2Models.Types.SlotTypeStatistics+import qualified Amazonka.Prelude as Prelude++-- | A statistical summary of the bot recommendation results.+--+-- /See:/ 'newBotRecommendationResultStatistics' smart constructor.+data BotRecommendationResultStatistics = BotRecommendationResultStatistics'+  { -- | Statistical information about about the intents associated with the bot+    -- recommendation results.+    intents :: Prelude.Maybe IntentStatistics,+    -- | Statistical information about the slot types associated with the bot+    -- recommendation results.+    slotTypes :: Prelude.Maybe SlotTypeStatistics+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotRecommendationResultStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'intents', 'botRecommendationResultStatistics_intents' - Statistical information about about the intents associated with the bot+-- recommendation results.+--+-- 'slotTypes', 'botRecommendationResultStatistics_slotTypes' - Statistical information about the slot types associated with the bot+-- recommendation results.+newBotRecommendationResultStatistics ::+  BotRecommendationResultStatistics+newBotRecommendationResultStatistics =+  BotRecommendationResultStatistics'+    { intents =+        Prelude.Nothing,+      slotTypes = Prelude.Nothing+    }++-- | Statistical information about about the intents associated with the bot+-- recommendation results.+botRecommendationResultStatistics_intents :: Lens.Lens' BotRecommendationResultStatistics (Prelude.Maybe IntentStatistics)+botRecommendationResultStatistics_intents = Lens.lens (\BotRecommendationResultStatistics' {intents} -> intents) (\s@BotRecommendationResultStatistics' {} a -> s {intents = a} :: BotRecommendationResultStatistics)++-- | Statistical information about the slot types associated with the bot+-- recommendation results.+botRecommendationResultStatistics_slotTypes :: Lens.Lens' BotRecommendationResultStatistics (Prelude.Maybe SlotTypeStatistics)+botRecommendationResultStatistics_slotTypes = Lens.lens (\BotRecommendationResultStatistics' {slotTypes} -> slotTypes) (\s@BotRecommendationResultStatistics' {} a -> s {slotTypes = a} :: BotRecommendationResultStatistics)++instance+  Data.FromJSON+    BotRecommendationResultStatistics+  where+  parseJSON =+    Data.withObject+      "BotRecommendationResultStatistics"+      ( \x ->+          BotRecommendationResultStatistics'+            Prelude.<$> (x Data..:? "intents")+            Prelude.<*> (x Data..:? "slotTypes")+      )++instance+  Prelude.Hashable+    BotRecommendationResultStatistics+  where+  hashWithSalt+    _salt+    BotRecommendationResultStatistics' {..} =+      _salt+        `Prelude.hashWithSalt` intents+        `Prelude.hashWithSalt` slotTypes++instance+  Prelude.NFData+    BotRecommendationResultStatistics+  where+  rnf BotRecommendationResultStatistics' {..} =+    Prelude.rnf intents+      `Prelude.seq` Prelude.rnf slotTypes
+ gen/Amazonka/LexV2Models/Types/BotRecommendationResults.hs view
@@ -0,0 +1,100 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotRecommendationResults+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotRecommendationResults where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.BotRecommendationResultStatistics+import qualified Amazonka.Prelude as Prelude++-- | The object representing the URL of the bot definition, the URL of the+-- associated transcript, and a statistical summary of the bot+-- recommendation results.+--+-- /See:/ 'newBotRecommendationResults' smart constructor.+data BotRecommendationResults = BotRecommendationResults'+  { -- | The presigned url link of the associated transcript.+    associatedTranscriptsUrl :: Prelude.Maybe Prelude.Text,+    -- | The presigned URL link of the recommended bot definition.+    botLocaleExportUrl :: Prelude.Maybe Prelude.Text,+    -- | The statistical summary of the bot recommendation results.+    statistics :: Prelude.Maybe BotRecommendationResultStatistics+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotRecommendationResults' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associatedTranscriptsUrl', 'botRecommendationResults_associatedTranscriptsUrl' - The presigned url link of the associated transcript.+--+-- 'botLocaleExportUrl', 'botRecommendationResults_botLocaleExportUrl' - The presigned URL link of the recommended bot definition.+--+-- 'statistics', 'botRecommendationResults_statistics' - The statistical summary of the bot recommendation results.+newBotRecommendationResults ::+  BotRecommendationResults+newBotRecommendationResults =+  BotRecommendationResults'+    { associatedTranscriptsUrl =+        Prelude.Nothing,+      botLocaleExportUrl = Prelude.Nothing,+      statistics = Prelude.Nothing+    }++-- | The presigned url link of the associated transcript.+botRecommendationResults_associatedTranscriptsUrl :: Lens.Lens' BotRecommendationResults (Prelude.Maybe Prelude.Text)+botRecommendationResults_associatedTranscriptsUrl = Lens.lens (\BotRecommendationResults' {associatedTranscriptsUrl} -> associatedTranscriptsUrl) (\s@BotRecommendationResults' {} a -> s {associatedTranscriptsUrl = a} :: BotRecommendationResults)++-- | The presigned URL link of the recommended bot definition.+botRecommendationResults_botLocaleExportUrl :: Lens.Lens' BotRecommendationResults (Prelude.Maybe Prelude.Text)+botRecommendationResults_botLocaleExportUrl = Lens.lens (\BotRecommendationResults' {botLocaleExportUrl} -> botLocaleExportUrl) (\s@BotRecommendationResults' {} a -> s {botLocaleExportUrl = a} :: BotRecommendationResults)++-- | The statistical summary of the bot recommendation results.+botRecommendationResults_statistics :: Lens.Lens' BotRecommendationResults (Prelude.Maybe BotRecommendationResultStatistics)+botRecommendationResults_statistics = Lens.lens (\BotRecommendationResults' {statistics} -> statistics) (\s@BotRecommendationResults' {} a -> s {statistics = a} :: BotRecommendationResults)++instance Data.FromJSON BotRecommendationResults where+  parseJSON =+    Data.withObject+      "BotRecommendationResults"+      ( \x ->+          BotRecommendationResults'+            Prelude.<$> (x Data..:? "associatedTranscriptsUrl")+            Prelude.<*> (x Data..:? "botLocaleExportUrl")+            Prelude.<*> (x Data..:? "statistics")+      )++instance Prelude.Hashable BotRecommendationResults where+  hashWithSalt _salt BotRecommendationResults' {..} =+    _salt+      `Prelude.hashWithSalt` associatedTranscriptsUrl+      `Prelude.hashWithSalt` botLocaleExportUrl+      `Prelude.hashWithSalt` statistics++instance Prelude.NFData BotRecommendationResults where+  rnf BotRecommendationResults' {..} =+    Prelude.rnf associatedTranscriptsUrl+      `Prelude.seq` Prelude.rnf botLocaleExportUrl+      `Prelude.seq` Prelude.rnf statistics
+ gen/Amazonka/LexV2Models/Types/BotRecommendationStatus.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotRecommendationStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotRecommendationStatus+  ( BotRecommendationStatus+      ( ..,+        BotRecommendationStatus_Available,+        BotRecommendationStatus_Deleted,+        BotRecommendationStatus_Deleting,+        BotRecommendationStatus_Downloading,+        BotRecommendationStatus_Failed,+        BotRecommendationStatus_Processing,+        BotRecommendationStatus_Stopped,+        BotRecommendationStatus_Stopping,+        BotRecommendationStatus_Updating+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BotRecommendationStatus = BotRecommendationStatus'+  { fromBotRecommendationStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern BotRecommendationStatus_Available :: BotRecommendationStatus+pattern BotRecommendationStatus_Available = BotRecommendationStatus' "Available"++pattern BotRecommendationStatus_Deleted :: BotRecommendationStatus+pattern BotRecommendationStatus_Deleted = BotRecommendationStatus' "Deleted"++pattern BotRecommendationStatus_Deleting :: BotRecommendationStatus+pattern BotRecommendationStatus_Deleting = BotRecommendationStatus' "Deleting"++pattern BotRecommendationStatus_Downloading :: BotRecommendationStatus+pattern BotRecommendationStatus_Downloading = BotRecommendationStatus' "Downloading"++pattern BotRecommendationStatus_Failed :: BotRecommendationStatus+pattern BotRecommendationStatus_Failed = BotRecommendationStatus' "Failed"++pattern BotRecommendationStatus_Processing :: BotRecommendationStatus+pattern BotRecommendationStatus_Processing = BotRecommendationStatus' "Processing"++pattern BotRecommendationStatus_Stopped :: BotRecommendationStatus+pattern BotRecommendationStatus_Stopped = BotRecommendationStatus' "Stopped"++pattern BotRecommendationStatus_Stopping :: BotRecommendationStatus+pattern BotRecommendationStatus_Stopping = BotRecommendationStatus' "Stopping"++pattern BotRecommendationStatus_Updating :: BotRecommendationStatus+pattern BotRecommendationStatus_Updating = BotRecommendationStatus' "Updating"++{-# COMPLETE+  BotRecommendationStatus_Available,+  BotRecommendationStatus_Deleted,+  BotRecommendationStatus_Deleting,+  BotRecommendationStatus_Downloading,+  BotRecommendationStatus_Failed,+  BotRecommendationStatus_Processing,+  BotRecommendationStatus_Stopped,+  BotRecommendationStatus_Stopping,+  BotRecommendationStatus_Updating,+  BotRecommendationStatus'+  #-}
+ gen/Amazonka/LexV2Models/Types/BotRecommendationSummary.hs view
@@ -0,0 +1,132 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotRecommendationSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotRecommendationSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.BotRecommendationStatus+import qualified Amazonka.Prelude as Prelude++-- | A summary of the bot recommendation.+--+-- /See:/ 'newBotRecommendationSummary' smart constructor.+data BotRecommendationSummary = BotRecommendationSummary'+  { -- | A timestamp of the date and time that the bot recommendation was+    -- created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | A timestamp of the date and time that the bot recommendation was last+    -- updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The status of the bot recommendation.+    --+    -- If the status is Failed, then the reasons for the failure are listed in+    -- the failureReasons field.+    botRecommendationStatus :: BotRecommendationStatus,+    -- | The unique identifier of the bot recommendation to be updated.+    botRecommendationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotRecommendationSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'botRecommendationSummary_creationDateTime' - A timestamp of the date and time that the bot recommendation was+-- created.+--+-- 'lastUpdatedDateTime', 'botRecommendationSummary_lastUpdatedDateTime' - A timestamp of the date and time that the bot recommendation was last+-- updated.+--+-- 'botRecommendationStatus', 'botRecommendationSummary_botRecommendationStatus' - The status of the bot recommendation.+--+-- If the status is Failed, then the reasons for the failure are listed in+-- the failureReasons field.+--+-- 'botRecommendationId', 'botRecommendationSummary_botRecommendationId' - The unique identifier of the bot recommendation to be updated.+newBotRecommendationSummary ::+  -- | 'botRecommendationStatus'+  BotRecommendationStatus ->+  -- | 'botRecommendationId'+  Prelude.Text ->+  BotRecommendationSummary+newBotRecommendationSummary+  pBotRecommendationStatus_+  pBotRecommendationId_ =+    BotRecommendationSummary'+      { creationDateTime =+          Prelude.Nothing,+        lastUpdatedDateTime = Prelude.Nothing,+        botRecommendationStatus =+          pBotRecommendationStatus_,+        botRecommendationId = pBotRecommendationId_+      }++-- | A timestamp of the date and time that the bot recommendation was+-- created.+botRecommendationSummary_creationDateTime :: Lens.Lens' BotRecommendationSummary (Prelude.Maybe Prelude.UTCTime)+botRecommendationSummary_creationDateTime = Lens.lens (\BotRecommendationSummary' {creationDateTime} -> creationDateTime) (\s@BotRecommendationSummary' {} a -> s {creationDateTime = a} :: BotRecommendationSummary) Prelude.. Lens.mapping Data._Time++-- | A timestamp of the date and time that the bot recommendation was last+-- updated.+botRecommendationSummary_lastUpdatedDateTime :: Lens.Lens' BotRecommendationSummary (Prelude.Maybe Prelude.UTCTime)+botRecommendationSummary_lastUpdatedDateTime = Lens.lens (\BotRecommendationSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@BotRecommendationSummary' {} a -> s {lastUpdatedDateTime = a} :: BotRecommendationSummary) Prelude.. Lens.mapping Data._Time++-- | The status of the bot recommendation.+--+-- If the status is Failed, then the reasons for the failure are listed in+-- the failureReasons field.+botRecommendationSummary_botRecommendationStatus :: Lens.Lens' BotRecommendationSummary BotRecommendationStatus+botRecommendationSummary_botRecommendationStatus = Lens.lens (\BotRecommendationSummary' {botRecommendationStatus} -> botRecommendationStatus) (\s@BotRecommendationSummary' {} a -> s {botRecommendationStatus = a} :: BotRecommendationSummary)++-- | The unique identifier of the bot recommendation to be updated.+botRecommendationSummary_botRecommendationId :: Lens.Lens' BotRecommendationSummary Prelude.Text+botRecommendationSummary_botRecommendationId = Lens.lens (\BotRecommendationSummary' {botRecommendationId} -> botRecommendationId) (\s@BotRecommendationSummary' {} a -> s {botRecommendationId = a} :: BotRecommendationSummary)++instance Data.FromJSON BotRecommendationSummary where+  parseJSON =+    Data.withObject+      "BotRecommendationSummary"+      ( \x ->+          BotRecommendationSummary'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..: "botRecommendationStatus")+            Prelude.<*> (x Data..: "botRecommendationId")+      )++instance Prelude.Hashable BotRecommendationSummary where+  hashWithSalt _salt BotRecommendationSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` botRecommendationStatus+      `Prelude.hashWithSalt` botRecommendationId++instance Prelude.NFData BotRecommendationSummary where+  rnf BotRecommendationSummary' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf botRecommendationStatus+      `Prelude.seq` Prelude.rnf botRecommendationId
+ gen/Amazonka/LexV2Models/Types/BotSortAttribute.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotSortAttribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotSortAttribute+  ( BotSortAttribute+      ( ..,+        BotSortAttribute_BotName+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BotSortAttribute = BotSortAttribute'+  { fromBotSortAttribute ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern BotSortAttribute_BotName :: BotSortAttribute+pattern BotSortAttribute_BotName = BotSortAttribute' "BotName"++{-# COMPLETE+  BotSortAttribute_BotName,+  BotSortAttribute'+  #-}
+ gen/Amazonka/LexV2Models/Types/BotSortBy.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotSortBy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotSortBy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.BotSortAttribute+import Amazonka.LexV2Models.Types.SortOrder+import qualified Amazonka.Prelude as Prelude++-- | Specifies attributes for sorting a list of bots.+--+-- /See:/ 'newBotSortBy' smart constructor.+data BotSortBy = BotSortBy'+  { -- | The attribute to use to sort the list of bots.+    attribute :: BotSortAttribute,+    -- | The order to sort the list. You can choose ascending or descending.+    order :: SortOrder+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotSortBy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attribute', 'botSortBy_attribute' - The attribute to use to sort the list of bots.+--+-- 'order', 'botSortBy_order' - The order to sort the list. You can choose ascending or descending.+newBotSortBy ::+  -- | 'attribute'+  BotSortAttribute ->+  -- | 'order'+  SortOrder ->+  BotSortBy+newBotSortBy pAttribute_ pOrder_ =+  BotSortBy'+    { attribute = pAttribute_,+      order = pOrder_+    }++-- | The attribute to use to sort the list of bots.+botSortBy_attribute :: Lens.Lens' BotSortBy BotSortAttribute+botSortBy_attribute = Lens.lens (\BotSortBy' {attribute} -> attribute) (\s@BotSortBy' {} a -> s {attribute = a} :: BotSortBy)++-- | The order to sort the list. You can choose ascending or descending.+botSortBy_order :: Lens.Lens' BotSortBy SortOrder+botSortBy_order = Lens.lens (\BotSortBy' {order} -> order) (\s@BotSortBy' {} a -> s {order = a} :: BotSortBy)++instance Prelude.Hashable BotSortBy where+  hashWithSalt _salt BotSortBy' {..} =+    _salt+      `Prelude.hashWithSalt` attribute+      `Prelude.hashWithSalt` order++instance Prelude.NFData BotSortBy where+  rnf BotSortBy' {..} =+    Prelude.rnf attribute+      `Prelude.seq` Prelude.rnf order++instance Data.ToJSON BotSortBy where+  toJSON BotSortBy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("attribute" Data..= attribute),+            Prelude.Just ("order" Data..= order)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/BotStatus.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotStatus+  ( BotStatus+      ( ..,+        BotStatus_Available,+        BotStatus_Creating,+        BotStatus_Deleting,+        BotStatus_Failed,+        BotStatus_Importing,+        BotStatus_Inactive,+        BotStatus_Versioning+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BotStatus = BotStatus'+  { fromBotStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern BotStatus_Available :: BotStatus+pattern BotStatus_Available = BotStatus' "Available"++pattern BotStatus_Creating :: BotStatus+pattern BotStatus_Creating = BotStatus' "Creating"++pattern BotStatus_Deleting :: BotStatus+pattern BotStatus_Deleting = BotStatus' "Deleting"++pattern BotStatus_Failed :: BotStatus+pattern BotStatus_Failed = BotStatus' "Failed"++pattern BotStatus_Importing :: BotStatus+pattern BotStatus_Importing = BotStatus' "Importing"++pattern BotStatus_Inactive :: BotStatus+pattern BotStatus_Inactive = BotStatus' "Inactive"++pattern BotStatus_Versioning :: BotStatus+pattern BotStatus_Versioning = BotStatus' "Versioning"++{-# COMPLETE+  BotStatus_Available,+  BotStatus_Creating,+  BotStatus_Deleting,+  BotStatus_Failed,+  BotStatus_Importing,+  BotStatus_Inactive,+  BotStatus_Versioning,+  BotStatus'+  #-}
+ gen/Amazonka/LexV2Models/Types/BotSummary.hs view
@@ -0,0 +1,147 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.BotStatus+import qualified Amazonka.Prelude as Prelude++-- | Summary information about a bot returned by the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_ListBots.html ListBots>+-- operation.+--+-- /See:/ 'newBotSummary' smart constructor.+data BotSummary = BotSummary'+  { -- | The unique identifier assigned to the bot. Use this ID to get detailed+    -- information about the bot with the+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/API_DescribeBot.html DescribeBot>+    -- operation.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The name of the bot.+    botName :: Prelude.Maybe Prelude.Text,+    -- | The current status of the bot. When the status is @Available@ the bot is+    -- ready for use.+    botStatus :: Prelude.Maybe BotStatus,+    -- | The description of the bot.+    description :: Prelude.Maybe Prelude.Text,+    -- | The date and time that the bot was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The latest numerical version in use for the bot.+    latestBotVersion :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'botSummary_botId' - The unique identifier assigned to the bot. Use this ID to get detailed+-- information about the bot with the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_DescribeBot.html DescribeBot>+-- operation.+--+-- 'botName', 'botSummary_botName' - The name of the bot.+--+-- 'botStatus', 'botSummary_botStatus' - The current status of the bot. When the status is @Available@ the bot is+-- ready for use.+--+-- 'description', 'botSummary_description' - The description of the bot.+--+-- 'lastUpdatedDateTime', 'botSummary_lastUpdatedDateTime' - The date and time that the bot was last updated.+--+-- 'latestBotVersion', 'botSummary_latestBotVersion' - The latest numerical version in use for the bot.+newBotSummary ::+  BotSummary+newBotSummary =+  BotSummary'+    { botId = Prelude.Nothing,+      botName = Prelude.Nothing,+      botStatus = Prelude.Nothing,+      description = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      latestBotVersion = Prelude.Nothing+    }++-- | The unique identifier assigned to the bot. Use this ID to get detailed+-- information about the bot with the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_DescribeBot.html DescribeBot>+-- operation.+botSummary_botId :: Lens.Lens' BotSummary (Prelude.Maybe Prelude.Text)+botSummary_botId = Lens.lens (\BotSummary' {botId} -> botId) (\s@BotSummary' {} a -> s {botId = a} :: BotSummary)++-- | The name of the bot.+botSummary_botName :: Lens.Lens' BotSummary (Prelude.Maybe Prelude.Text)+botSummary_botName = Lens.lens (\BotSummary' {botName} -> botName) (\s@BotSummary' {} a -> s {botName = a} :: BotSummary)++-- | The current status of the bot. When the status is @Available@ the bot is+-- ready for use.+botSummary_botStatus :: Lens.Lens' BotSummary (Prelude.Maybe BotStatus)+botSummary_botStatus = Lens.lens (\BotSummary' {botStatus} -> botStatus) (\s@BotSummary' {} a -> s {botStatus = a} :: BotSummary)++-- | The description of the bot.+botSummary_description :: Lens.Lens' BotSummary (Prelude.Maybe Prelude.Text)+botSummary_description = Lens.lens (\BotSummary' {description} -> description) (\s@BotSummary' {} a -> s {description = a} :: BotSummary)++-- | The date and time that the bot was last updated.+botSummary_lastUpdatedDateTime :: Lens.Lens' BotSummary (Prelude.Maybe Prelude.UTCTime)+botSummary_lastUpdatedDateTime = Lens.lens (\BotSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@BotSummary' {} a -> s {lastUpdatedDateTime = a} :: BotSummary) Prelude.. Lens.mapping Data._Time++-- | The latest numerical version in use for the bot.+botSummary_latestBotVersion :: Lens.Lens' BotSummary (Prelude.Maybe Prelude.Text)+botSummary_latestBotVersion = Lens.lens (\BotSummary' {latestBotVersion} -> latestBotVersion) (\s@BotSummary' {} a -> s {latestBotVersion = a} :: BotSummary)++instance Data.FromJSON BotSummary where+  parseJSON =+    Data.withObject+      "BotSummary"+      ( \x ->+          BotSummary'+            Prelude.<$> (x Data..:? "botId")+            Prelude.<*> (x Data..:? "botName")+            Prelude.<*> (x Data..:? "botStatus")+            Prelude.<*> (x Data..:? "description")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "latestBotVersion")+      )++instance Prelude.Hashable BotSummary where+  hashWithSalt _salt BotSummary' {..} =+    _salt+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botName+      `Prelude.hashWithSalt` botStatus+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` latestBotVersion++instance Prelude.NFData BotSummary where+  rnf BotSummary' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botName+      `Prelude.seq` Prelude.rnf botStatus+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf latestBotVersion
+ gen/Amazonka/LexV2Models/Types/BotVersionLocaleDetails.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotVersionLocaleDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotVersionLocaleDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The version of a bot used for a bot locale.+--+-- /See:/ 'newBotVersionLocaleDetails' smart constructor.+data BotVersionLocaleDetails = BotVersionLocaleDetails'+  { -- | The version of a bot used for a bot locale.+    sourceBotVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotVersionLocaleDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sourceBotVersion', 'botVersionLocaleDetails_sourceBotVersion' - The version of a bot used for a bot locale.+newBotVersionLocaleDetails ::+  -- | 'sourceBotVersion'+  Prelude.Text ->+  BotVersionLocaleDetails+newBotVersionLocaleDetails pSourceBotVersion_ =+  BotVersionLocaleDetails'+    { sourceBotVersion =+        pSourceBotVersion_+    }++-- | The version of a bot used for a bot locale.+botVersionLocaleDetails_sourceBotVersion :: Lens.Lens' BotVersionLocaleDetails Prelude.Text+botVersionLocaleDetails_sourceBotVersion = Lens.lens (\BotVersionLocaleDetails' {sourceBotVersion} -> sourceBotVersion) (\s@BotVersionLocaleDetails' {} a -> s {sourceBotVersion = a} :: BotVersionLocaleDetails)++instance Data.FromJSON BotVersionLocaleDetails where+  parseJSON =+    Data.withObject+      "BotVersionLocaleDetails"+      ( \x ->+          BotVersionLocaleDetails'+            Prelude.<$> (x Data..: "sourceBotVersion")+      )++instance Prelude.Hashable BotVersionLocaleDetails where+  hashWithSalt _salt BotVersionLocaleDetails' {..} =+    _salt `Prelude.hashWithSalt` sourceBotVersion++instance Prelude.NFData BotVersionLocaleDetails where+  rnf BotVersionLocaleDetails' {..} =+    Prelude.rnf sourceBotVersion++instance Data.ToJSON BotVersionLocaleDetails where+  toJSON BotVersionLocaleDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("sourceBotVersion" Data..= sourceBotVersion)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/BotVersionSortAttribute.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotVersionSortAttribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotVersionSortAttribute+  ( BotVersionSortAttribute+      ( ..,+        BotVersionSortAttribute_BotVersion+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BotVersionSortAttribute = BotVersionSortAttribute'+  { fromBotVersionSortAttribute ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern BotVersionSortAttribute_BotVersion :: BotVersionSortAttribute+pattern BotVersionSortAttribute_BotVersion = BotVersionSortAttribute' "BotVersion"++{-# COMPLETE+  BotVersionSortAttribute_BotVersion,+  BotVersionSortAttribute'+  #-}
+ gen/Amazonka/LexV2Models/Types/BotVersionSortBy.hs view
@@ -0,0 +1,92 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotVersionSortBy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotVersionSortBy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.BotVersionSortAttribute+import Amazonka.LexV2Models.Types.SortOrder+import qualified Amazonka.Prelude as Prelude++-- | Specifies attributes for sorting a list of bot versions.+--+-- /See:/ 'newBotVersionSortBy' smart constructor.+data BotVersionSortBy = BotVersionSortBy'+  { -- | The attribute to use to sort the list of versions.+    attribute :: BotVersionSortAttribute,+    -- | The order to sort the list. You can specify ascending or descending+    -- order.+    order :: SortOrder+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotVersionSortBy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attribute', 'botVersionSortBy_attribute' - The attribute to use to sort the list of versions.+--+-- 'order', 'botVersionSortBy_order' - The order to sort the list. You can specify ascending or descending+-- order.+newBotVersionSortBy ::+  -- | 'attribute'+  BotVersionSortAttribute ->+  -- | 'order'+  SortOrder ->+  BotVersionSortBy+newBotVersionSortBy pAttribute_ pOrder_ =+  BotVersionSortBy'+    { attribute = pAttribute_,+      order = pOrder_+    }++-- | The attribute to use to sort the list of versions.+botVersionSortBy_attribute :: Lens.Lens' BotVersionSortBy BotVersionSortAttribute+botVersionSortBy_attribute = Lens.lens (\BotVersionSortBy' {attribute} -> attribute) (\s@BotVersionSortBy' {} a -> s {attribute = a} :: BotVersionSortBy)++-- | The order to sort the list. You can specify ascending or descending+-- order.+botVersionSortBy_order :: Lens.Lens' BotVersionSortBy SortOrder+botVersionSortBy_order = Lens.lens (\BotVersionSortBy' {order} -> order) (\s@BotVersionSortBy' {} a -> s {order = a} :: BotVersionSortBy)++instance Prelude.Hashable BotVersionSortBy where+  hashWithSalt _salt BotVersionSortBy' {..} =+    _salt+      `Prelude.hashWithSalt` attribute+      `Prelude.hashWithSalt` order++instance Prelude.NFData BotVersionSortBy where+  rnf BotVersionSortBy' {..} =+    Prelude.rnf attribute+      `Prelude.seq` Prelude.rnf order++instance Data.ToJSON BotVersionSortBy where+  toJSON BotVersionSortBy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("attribute" Data..= attribute),+            Prelude.Just ("order" Data..= order)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/BotVersionSummary.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BotVersionSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BotVersionSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.BotStatus+import qualified Amazonka.Prelude as Prelude++-- | Summary information about a bot version returned by the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_ListBotVersions.html ListBotVersions>+-- operation.+--+-- /See:/ 'newBotVersionSummary' smart constructor.+data BotVersionSummary = BotVersionSummary'+  { -- | The name of the bot associated with the version.+    botName :: Prelude.Maybe Prelude.Text,+    -- | The status of the bot. When the status is available, the version of the+    -- bot is ready for use.+    botStatus :: Prelude.Maybe BotStatus,+    -- | The numeric version of the bot, or @DRAFT@ to indicate that this is the+    -- version of the bot that can be updated..+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | A timestamp of the date and time that the version was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The description of the version.+    description :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BotVersionSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botName', 'botVersionSummary_botName' - The name of the bot associated with the version.+--+-- 'botStatus', 'botVersionSummary_botStatus' - The status of the bot. When the status is available, the version of the+-- bot is ready for use.+--+-- 'botVersion', 'botVersionSummary_botVersion' - The numeric version of the bot, or @DRAFT@ to indicate that this is the+-- version of the bot that can be updated..+--+-- 'creationDateTime', 'botVersionSummary_creationDateTime' - A timestamp of the date and time that the version was created.+--+-- 'description', 'botVersionSummary_description' - The description of the version.+newBotVersionSummary ::+  BotVersionSummary+newBotVersionSummary =+  BotVersionSummary'+    { botName = Prelude.Nothing,+      botStatus = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing+    }++-- | The name of the bot associated with the version.+botVersionSummary_botName :: Lens.Lens' BotVersionSummary (Prelude.Maybe Prelude.Text)+botVersionSummary_botName = Lens.lens (\BotVersionSummary' {botName} -> botName) (\s@BotVersionSummary' {} a -> s {botName = a} :: BotVersionSummary)++-- | The status of the bot. When the status is available, the version of the+-- bot is ready for use.+botVersionSummary_botStatus :: Lens.Lens' BotVersionSummary (Prelude.Maybe BotStatus)+botVersionSummary_botStatus = Lens.lens (\BotVersionSummary' {botStatus} -> botStatus) (\s@BotVersionSummary' {} a -> s {botStatus = a} :: BotVersionSummary)++-- | The numeric version of the bot, or @DRAFT@ to indicate that this is the+-- version of the bot that can be updated..+botVersionSummary_botVersion :: Lens.Lens' BotVersionSummary (Prelude.Maybe Prelude.Text)+botVersionSummary_botVersion = Lens.lens (\BotVersionSummary' {botVersion} -> botVersion) (\s@BotVersionSummary' {} a -> s {botVersion = a} :: BotVersionSummary)++-- | A timestamp of the date and time that the version was created.+botVersionSummary_creationDateTime :: Lens.Lens' BotVersionSummary (Prelude.Maybe Prelude.UTCTime)+botVersionSummary_creationDateTime = Lens.lens (\BotVersionSummary' {creationDateTime} -> creationDateTime) (\s@BotVersionSummary' {} a -> s {creationDateTime = a} :: BotVersionSummary) Prelude.. Lens.mapping Data._Time++-- | The description of the version.+botVersionSummary_description :: Lens.Lens' BotVersionSummary (Prelude.Maybe Prelude.Text)+botVersionSummary_description = Lens.lens (\BotVersionSummary' {description} -> description) (\s@BotVersionSummary' {} a -> s {description = a} :: BotVersionSummary)++instance Data.FromJSON BotVersionSummary where+  parseJSON =+    Data.withObject+      "BotVersionSummary"+      ( \x ->+          BotVersionSummary'+            Prelude.<$> (x Data..:? "botName")+            Prelude.<*> (x Data..:? "botStatus")+            Prelude.<*> (x Data..:? "botVersion")+            Prelude.<*> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "description")+      )++instance Prelude.Hashable BotVersionSummary where+  hashWithSalt _salt BotVersionSummary' {..} =+    _salt+      `Prelude.hashWithSalt` botName+      `Prelude.hashWithSalt` botStatus+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` description++instance Prelude.NFData BotVersionSummary where+  rnf BotVersionSummary' {..} =+    Prelude.rnf botName+      `Prelude.seq` Prelude.rnf botStatus+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description
+ gen/Amazonka/LexV2Models/Types/BuiltInIntentSortAttribute.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BuiltInIntentSortAttribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BuiltInIntentSortAttribute+  ( BuiltInIntentSortAttribute+      ( ..,+        BuiltInIntentSortAttribute_IntentSignature+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BuiltInIntentSortAttribute = BuiltInIntentSortAttribute'+  { fromBuiltInIntentSortAttribute ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern BuiltInIntentSortAttribute_IntentSignature :: BuiltInIntentSortAttribute+pattern BuiltInIntentSortAttribute_IntentSignature = BuiltInIntentSortAttribute' "IntentSignature"++{-# COMPLETE+  BuiltInIntentSortAttribute_IntentSignature,+  BuiltInIntentSortAttribute'+  #-}
+ gen/Amazonka/LexV2Models/Types/BuiltInIntentSortBy.hs view
@@ -0,0 +1,92 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BuiltInIntentSortBy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BuiltInIntentSortBy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.BuiltInIntentSortAttribute+import Amazonka.LexV2Models.Types.SortOrder+import qualified Amazonka.Prelude as Prelude++-- | Specifies attributes for sorting a list of built-in intents.+--+-- /See:/ 'newBuiltInIntentSortBy' smart constructor.+data BuiltInIntentSortBy = BuiltInIntentSortBy'+  { -- | The attribute to use to sort the list of built-in intents.+    attribute :: BuiltInIntentSortAttribute,+    -- | The order to sort the list. You can specify ascending or descending+    -- order.+    order :: SortOrder+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BuiltInIntentSortBy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attribute', 'builtInIntentSortBy_attribute' - The attribute to use to sort the list of built-in intents.+--+-- 'order', 'builtInIntentSortBy_order' - The order to sort the list. You can specify ascending or descending+-- order.+newBuiltInIntentSortBy ::+  -- | 'attribute'+  BuiltInIntentSortAttribute ->+  -- | 'order'+  SortOrder ->+  BuiltInIntentSortBy+newBuiltInIntentSortBy pAttribute_ pOrder_ =+  BuiltInIntentSortBy'+    { attribute = pAttribute_,+      order = pOrder_+    }++-- | The attribute to use to sort the list of built-in intents.+builtInIntentSortBy_attribute :: Lens.Lens' BuiltInIntentSortBy BuiltInIntentSortAttribute+builtInIntentSortBy_attribute = Lens.lens (\BuiltInIntentSortBy' {attribute} -> attribute) (\s@BuiltInIntentSortBy' {} a -> s {attribute = a} :: BuiltInIntentSortBy)++-- | The order to sort the list. You can specify ascending or descending+-- order.+builtInIntentSortBy_order :: Lens.Lens' BuiltInIntentSortBy SortOrder+builtInIntentSortBy_order = Lens.lens (\BuiltInIntentSortBy' {order} -> order) (\s@BuiltInIntentSortBy' {} a -> s {order = a} :: BuiltInIntentSortBy)++instance Prelude.Hashable BuiltInIntentSortBy where+  hashWithSalt _salt BuiltInIntentSortBy' {..} =+    _salt+      `Prelude.hashWithSalt` attribute+      `Prelude.hashWithSalt` order++instance Prelude.NFData BuiltInIntentSortBy where+  rnf BuiltInIntentSortBy' {..} =+    Prelude.rnf attribute+      `Prelude.seq` Prelude.rnf order++instance Data.ToJSON BuiltInIntentSortBy where+  toJSON BuiltInIntentSortBy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("attribute" Data..= attribute),+            Prelude.Just ("order" Data..= order)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/BuiltInIntentSummary.hs view
@@ -0,0 +1,90 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BuiltInIntentSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BuiltInIntentSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides summary information about a built-in intent for the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_ListBuiltInIntents.html ListBuiltInIntents>+-- operation.+--+-- /See:/ 'newBuiltInIntentSummary' smart constructor.+data BuiltInIntentSummary = BuiltInIntentSummary'+  { -- | The description of the intent.+    description :: Prelude.Maybe Prelude.Text,+    -- | The signature of the built-in intent. Use this to specify the parent+    -- intent of a derived intent.+    intentSignature :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BuiltInIntentSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'builtInIntentSummary_description' - The description of the intent.+--+-- 'intentSignature', 'builtInIntentSummary_intentSignature' - The signature of the built-in intent. Use this to specify the parent+-- intent of a derived intent.+newBuiltInIntentSummary ::+  BuiltInIntentSummary+newBuiltInIntentSummary =+  BuiltInIntentSummary'+    { description =+        Prelude.Nothing,+      intentSignature = Prelude.Nothing+    }++-- | The description of the intent.+builtInIntentSummary_description :: Lens.Lens' BuiltInIntentSummary (Prelude.Maybe Prelude.Text)+builtInIntentSummary_description = Lens.lens (\BuiltInIntentSummary' {description} -> description) (\s@BuiltInIntentSummary' {} a -> s {description = a} :: BuiltInIntentSummary)++-- | The signature of the built-in intent. Use this to specify the parent+-- intent of a derived intent.+builtInIntentSummary_intentSignature :: Lens.Lens' BuiltInIntentSummary (Prelude.Maybe Prelude.Text)+builtInIntentSummary_intentSignature = Lens.lens (\BuiltInIntentSummary' {intentSignature} -> intentSignature) (\s@BuiltInIntentSummary' {} a -> s {intentSignature = a} :: BuiltInIntentSummary)++instance Data.FromJSON BuiltInIntentSummary where+  parseJSON =+    Data.withObject+      "BuiltInIntentSummary"+      ( \x ->+          BuiltInIntentSummary'+            Prelude.<$> (x Data..:? "description")+            Prelude.<*> (x Data..:? "intentSignature")+      )++instance Prelude.Hashable BuiltInIntentSummary where+  hashWithSalt _salt BuiltInIntentSummary' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` intentSignature++instance Prelude.NFData BuiltInIntentSummary where+  rnf BuiltInIntentSummary' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf intentSignature
+ gen/Amazonka/LexV2Models/Types/BuiltInSlotTypeSortAttribute.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BuiltInSlotTypeSortAttribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BuiltInSlotTypeSortAttribute+  ( BuiltInSlotTypeSortAttribute+      ( ..,+        BuiltInSlotTypeSortAttribute_SlotTypeSignature+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype BuiltInSlotTypeSortAttribute = BuiltInSlotTypeSortAttribute'+  { fromBuiltInSlotTypeSortAttribute ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern BuiltInSlotTypeSortAttribute_SlotTypeSignature :: BuiltInSlotTypeSortAttribute+pattern BuiltInSlotTypeSortAttribute_SlotTypeSignature = BuiltInSlotTypeSortAttribute' "SlotTypeSignature"++{-# COMPLETE+  BuiltInSlotTypeSortAttribute_SlotTypeSignature,+  BuiltInSlotTypeSortAttribute'+  #-}
+ gen/Amazonka/LexV2Models/Types/BuiltInSlotTypeSortBy.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BuiltInSlotTypeSortBy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BuiltInSlotTypeSortBy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.BuiltInSlotTypeSortAttribute+import Amazonka.LexV2Models.Types.SortOrder+import qualified Amazonka.Prelude as Prelude++-- | Specifies attributes for sorting a list of built-in slot types.+--+-- /See:/ 'newBuiltInSlotTypeSortBy' smart constructor.+data BuiltInSlotTypeSortBy = BuiltInSlotTypeSortBy'+  { -- | The attribute to use to sort the list of built-in intents.+    attribute :: BuiltInSlotTypeSortAttribute,+    -- | The order to sort the list. You can choose ascending or descending.+    order :: SortOrder+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BuiltInSlotTypeSortBy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attribute', 'builtInSlotTypeSortBy_attribute' - The attribute to use to sort the list of built-in intents.+--+-- 'order', 'builtInSlotTypeSortBy_order' - The order to sort the list. You can choose ascending or descending.+newBuiltInSlotTypeSortBy ::+  -- | 'attribute'+  BuiltInSlotTypeSortAttribute ->+  -- | 'order'+  SortOrder ->+  BuiltInSlotTypeSortBy+newBuiltInSlotTypeSortBy pAttribute_ pOrder_ =+  BuiltInSlotTypeSortBy'+    { attribute = pAttribute_,+      order = pOrder_+    }++-- | The attribute to use to sort the list of built-in intents.+builtInSlotTypeSortBy_attribute :: Lens.Lens' BuiltInSlotTypeSortBy BuiltInSlotTypeSortAttribute+builtInSlotTypeSortBy_attribute = Lens.lens (\BuiltInSlotTypeSortBy' {attribute} -> attribute) (\s@BuiltInSlotTypeSortBy' {} a -> s {attribute = a} :: BuiltInSlotTypeSortBy)++-- | The order to sort the list. You can choose ascending or descending.+builtInSlotTypeSortBy_order :: Lens.Lens' BuiltInSlotTypeSortBy SortOrder+builtInSlotTypeSortBy_order = Lens.lens (\BuiltInSlotTypeSortBy' {order} -> order) (\s@BuiltInSlotTypeSortBy' {} a -> s {order = a} :: BuiltInSlotTypeSortBy)++instance Prelude.Hashable BuiltInSlotTypeSortBy where+  hashWithSalt _salt BuiltInSlotTypeSortBy' {..} =+    _salt+      `Prelude.hashWithSalt` attribute+      `Prelude.hashWithSalt` order++instance Prelude.NFData BuiltInSlotTypeSortBy where+  rnf BuiltInSlotTypeSortBy' {..} =+    Prelude.rnf attribute+      `Prelude.seq` Prelude.rnf order++instance Data.ToJSON BuiltInSlotTypeSortBy where+  toJSON BuiltInSlotTypeSortBy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("attribute" Data..= attribute),+            Prelude.Just ("order" Data..= order)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/BuiltInSlotTypeSummary.hs view
@@ -0,0 +1,90 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.BuiltInSlotTypeSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.BuiltInSlotTypeSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides summary information about a built-in slot type for the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_ListBuiltInSlotTypes.html ListBuiltInSlotTypes>+-- operation.+--+-- /See:/ 'newBuiltInSlotTypeSummary' smart constructor.+data BuiltInSlotTypeSummary = BuiltInSlotTypeSummary'+  { -- | The description of the built-in slot type.+    description :: Prelude.Maybe Prelude.Text,+    -- | The signature of the built-in slot type. Use this to specify the parent+    -- slot type of a derived slot type.+    slotTypeSignature :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BuiltInSlotTypeSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'builtInSlotTypeSummary_description' - The description of the built-in slot type.+--+-- 'slotTypeSignature', 'builtInSlotTypeSummary_slotTypeSignature' - The signature of the built-in slot type. Use this to specify the parent+-- slot type of a derived slot type.+newBuiltInSlotTypeSummary ::+  BuiltInSlotTypeSummary+newBuiltInSlotTypeSummary =+  BuiltInSlotTypeSummary'+    { description =+        Prelude.Nothing,+      slotTypeSignature = Prelude.Nothing+    }++-- | The description of the built-in slot type.+builtInSlotTypeSummary_description :: Lens.Lens' BuiltInSlotTypeSummary (Prelude.Maybe Prelude.Text)+builtInSlotTypeSummary_description = Lens.lens (\BuiltInSlotTypeSummary' {description} -> description) (\s@BuiltInSlotTypeSummary' {} a -> s {description = a} :: BuiltInSlotTypeSummary)++-- | The signature of the built-in slot type. Use this to specify the parent+-- slot type of a derived slot type.+builtInSlotTypeSummary_slotTypeSignature :: Lens.Lens' BuiltInSlotTypeSummary (Prelude.Maybe Prelude.Text)+builtInSlotTypeSummary_slotTypeSignature = Lens.lens (\BuiltInSlotTypeSummary' {slotTypeSignature} -> slotTypeSignature) (\s@BuiltInSlotTypeSummary' {} a -> s {slotTypeSignature = a} :: BuiltInSlotTypeSummary)++instance Data.FromJSON BuiltInSlotTypeSummary where+  parseJSON =+    Data.withObject+      "BuiltInSlotTypeSummary"+      ( \x ->+          BuiltInSlotTypeSummary'+            Prelude.<$> (x Data..:? "description")+            Prelude.<*> (x Data..:? "slotTypeSignature")+      )++instance Prelude.Hashable BuiltInSlotTypeSummary where+  hashWithSalt _salt BuiltInSlotTypeSummary' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` slotTypeSignature++instance Prelude.NFData BuiltInSlotTypeSummary where+  rnf BuiltInSlotTypeSummary' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf slotTypeSignature
+ gen/Amazonka/LexV2Models/Types/Button.hs view
@@ -0,0 +1,100 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.Button+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.Button where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes a button to use on a response card used to gather slot values+-- from a user.+--+-- /See:/ 'newButton' smart constructor.+data Button = Button'+  { -- | The text that appears on the button. Use this to tell the user what+    -- value is returned when they choose this button.+    text :: Prelude.Text,+    -- | The value returned to Amazon Lex when the user chooses this button. This+    -- must be one of the slot values configured for the slot.+    value :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Button' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'text', 'button_text' - The text that appears on the button. Use this to tell the user what+-- value is returned when they choose this button.+--+-- 'value', 'button_value' - The value returned to Amazon Lex when the user chooses this button. This+-- must be one of the slot values configured for the slot.+newButton ::+  -- | 'text'+  Prelude.Text ->+  -- | 'value'+  Prelude.Text ->+  Button+newButton pText_ pValue_ =+  Button' {text = pText_, value = pValue_}++-- | The text that appears on the button. Use this to tell the user what+-- value is returned when they choose this button.+button_text :: Lens.Lens' Button Prelude.Text+button_text = Lens.lens (\Button' {text} -> text) (\s@Button' {} a -> s {text = a} :: Button)++-- | The value returned to Amazon Lex when the user chooses this button. This+-- must be one of the slot values configured for the slot.+button_value :: Lens.Lens' Button Prelude.Text+button_value = Lens.lens (\Button' {value} -> value) (\s@Button' {} a -> s {value = a} :: Button)++instance Data.FromJSON Button where+  parseJSON =+    Data.withObject+      "Button"+      ( \x ->+          Button'+            Prelude.<$> (x Data..: "text")+            Prelude.<*> (x Data..: "value")+      )++instance Prelude.Hashable Button where+  hashWithSalt _salt Button' {..} =+    _salt+      `Prelude.hashWithSalt` text+      `Prelude.hashWithSalt` value++instance Prelude.NFData Button where+  rnf Button' {..} =+    Prelude.rnf text `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Button where+  toJSON Button' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("text" Data..= text),+            Prelude.Just ("value" Data..= value)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/CloudWatchLogGroupLogDestination.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.CloudWatchLogGroupLogDestination+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.CloudWatchLogGroupLogDestination where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Amazon CloudWatch Logs log group where the text and metadata logs+-- are delivered. The log group must exist before you enable logging.+--+-- /See:/ 'newCloudWatchLogGroupLogDestination' smart constructor.+data CloudWatchLogGroupLogDestination = CloudWatchLogGroupLogDestination'+  { -- | The Amazon Resource Name (ARN) of the log group where text and metadata+    -- logs are delivered.+    cloudWatchLogGroupArn :: Prelude.Text,+    -- | The prefix of the log stream name within the log group that you+    -- specified+    logPrefix :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CloudWatchLogGroupLogDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudWatchLogGroupArn', 'cloudWatchLogGroupLogDestination_cloudWatchLogGroupArn' - The Amazon Resource Name (ARN) of the log group where text and metadata+-- logs are delivered.+--+-- 'logPrefix', 'cloudWatchLogGroupLogDestination_logPrefix' - The prefix of the log stream name within the log group that you+-- specified+newCloudWatchLogGroupLogDestination ::+  -- | 'cloudWatchLogGroupArn'+  Prelude.Text ->+  -- | 'logPrefix'+  Prelude.Text ->+  CloudWatchLogGroupLogDestination+newCloudWatchLogGroupLogDestination+  pCloudWatchLogGroupArn_+  pLogPrefix_ =+    CloudWatchLogGroupLogDestination'+      { cloudWatchLogGroupArn =+          pCloudWatchLogGroupArn_,+        logPrefix = pLogPrefix_+      }++-- | The Amazon Resource Name (ARN) of the log group where text and metadata+-- logs are delivered.+cloudWatchLogGroupLogDestination_cloudWatchLogGroupArn :: Lens.Lens' CloudWatchLogGroupLogDestination Prelude.Text+cloudWatchLogGroupLogDestination_cloudWatchLogGroupArn = Lens.lens (\CloudWatchLogGroupLogDestination' {cloudWatchLogGroupArn} -> cloudWatchLogGroupArn) (\s@CloudWatchLogGroupLogDestination' {} a -> s {cloudWatchLogGroupArn = a} :: CloudWatchLogGroupLogDestination)++-- | The prefix of the log stream name within the log group that you+-- specified+cloudWatchLogGroupLogDestination_logPrefix :: Lens.Lens' CloudWatchLogGroupLogDestination Prelude.Text+cloudWatchLogGroupLogDestination_logPrefix = Lens.lens (\CloudWatchLogGroupLogDestination' {logPrefix} -> logPrefix) (\s@CloudWatchLogGroupLogDestination' {} a -> s {logPrefix = a} :: CloudWatchLogGroupLogDestination)++instance+  Data.FromJSON+    CloudWatchLogGroupLogDestination+  where+  parseJSON =+    Data.withObject+      "CloudWatchLogGroupLogDestination"+      ( \x ->+          CloudWatchLogGroupLogDestination'+            Prelude.<$> (x Data..: "cloudWatchLogGroupArn")+            Prelude.<*> (x Data..: "logPrefix")+      )++instance+  Prelude.Hashable+    CloudWatchLogGroupLogDestination+  where+  hashWithSalt+    _salt+    CloudWatchLogGroupLogDestination' {..} =+      _salt+        `Prelude.hashWithSalt` cloudWatchLogGroupArn+        `Prelude.hashWithSalt` logPrefix++instance+  Prelude.NFData+    CloudWatchLogGroupLogDestination+  where+  rnf CloudWatchLogGroupLogDestination' {..} =+    Prelude.rnf cloudWatchLogGroupArn+      `Prelude.seq` Prelude.rnf logPrefix++instance Data.ToJSON CloudWatchLogGroupLogDestination where+  toJSON CloudWatchLogGroupLogDestination' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "cloudWatchLogGroupArn"+                  Data..= cloudWatchLogGroupArn+              ),+            Prelude.Just ("logPrefix" Data..= logPrefix)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/CodeHookSpecification.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.CodeHookSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.CodeHookSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.LambdaCodeHook+import qualified Amazonka.Prelude as Prelude++-- | Contains information about code hooks that Amazon Lex calls during a+-- conversation.+--+-- /See:/ 'newCodeHookSpecification' smart constructor.+data CodeHookSpecification = CodeHookSpecification'+  { lambdaCodeHook :: LambdaCodeHook+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CodeHookSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lambdaCodeHook', 'codeHookSpecification_lambdaCodeHook' - Undocumented member.+newCodeHookSpecification ::+  -- | 'lambdaCodeHook'+  LambdaCodeHook ->+  CodeHookSpecification+newCodeHookSpecification pLambdaCodeHook_ =+  CodeHookSpecification'+    { lambdaCodeHook =+        pLambdaCodeHook_+    }++-- | Undocumented member.+codeHookSpecification_lambdaCodeHook :: Lens.Lens' CodeHookSpecification LambdaCodeHook+codeHookSpecification_lambdaCodeHook = Lens.lens (\CodeHookSpecification' {lambdaCodeHook} -> lambdaCodeHook) (\s@CodeHookSpecification' {} a -> s {lambdaCodeHook = a} :: CodeHookSpecification)++instance Data.FromJSON CodeHookSpecification where+  parseJSON =+    Data.withObject+      "CodeHookSpecification"+      ( \x ->+          CodeHookSpecification'+            Prelude.<$> (x Data..: "lambdaCodeHook")+      )++instance Prelude.Hashable CodeHookSpecification where+  hashWithSalt _salt CodeHookSpecification' {..} =+    _salt `Prelude.hashWithSalt` lambdaCodeHook++instance Prelude.NFData CodeHookSpecification where+  rnf CodeHookSpecification' {..} =+    Prelude.rnf lambdaCodeHook++instance Data.ToJSON CodeHookSpecification where+  toJSON CodeHookSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("lambdaCodeHook" Data..= lambdaCodeHook)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/CompositeSlotTypeSetting.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.CompositeSlotTypeSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.CompositeSlotTypeSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.SubSlotTypeComposition+import qualified Amazonka.Prelude as Prelude++-- | A composite slot is a combination of two or more slots that capture+-- multiple pieces of information in a single user input.+--+-- /See:/ 'newCompositeSlotTypeSetting' smart constructor.+data CompositeSlotTypeSetting = CompositeSlotTypeSetting'+  { -- | Subslots in the composite slot.+    subSlots :: Prelude.Maybe [SubSlotTypeComposition]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CompositeSlotTypeSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subSlots', 'compositeSlotTypeSetting_subSlots' - Subslots in the composite slot.+newCompositeSlotTypeSetting ::+  CompositeSlotTypeSetting+newCompositeSlotTypeSetting =+  CompositeSlotTypeSetting'+    { subSlots =+        Prelude.Nothing+    }++-- | Subslots in the composite slot.+compositeSlotTypeSetting_subSlots :: Lens.Lens' CompositeSlotTypeSetting (Prelude.Maybe [SubSlotTypeComposition])+compositeSlotTypeSetting_subSlots = Lens.lens (\CompositeSlotTypeSetting' {subSlots} -> subSlots) (\s@CompositeSlotTypeSetting' {} a -> s {subSlots = a} :: CompositeSlotTypeSetting) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON CompositeSlotTypeSetting where+  parseJSON =+    Data.withObject+      "CompositeSlotTypeSetting"+      ( \x ->+          CompositeSlotTypeSetting'+            Prelude.<$> (x Data..:? "subSlots" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable CompositeSlotTypeSetting where+  hashWithSalt _salt CompositeSlotTypeSetting' {..} =+    _salt `Prelude.hashWithSalt` subSlots++instance Prelude.NFData CompositeSlotTypeSetting where+  rnf CompositeSlotTypeSetting' {..} =+    Prelude.rnf subSlots++instance Data.ToJSON CompositeSlotTypeSetting where+  toJSON CompositeSlotTypeSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [("subSlots" Data..=) Prelude.<$> subSlots]+      )
+ gen/Amazonka/LexV2Models/Types/Condition.hs view
@@ -0,0 +1,79 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.Condition+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.Condition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides an expression that evaluates to true or false.+--+-- /See:/ 'newCondition' smart constructor.+data Condition = Condition'+  { -- | The expression string that is evaluated.+    expressionString :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Condition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'expressionString', 'condition_expressionString' - The expression string that is evaluated.+newCondition ::+  -- | 'expressionString'+  Prelude.Text ->+  Condition+newCondition pExpressionString_ =+  Condition' {expressionString = pExpressionString_}++-- | The expression string that is evaluated.+condition_expressionString :: Lens.Lens' Condition Prelude.Text+condition_expressionString = Lens.lens (\Condition' {expressionString} -> expressionString) (\s@Condition' {} a -> s {expressionString = a} :: Condition)++instance Data.FromJSON Condition where+  parseJSON =+    Data.withObject+      "Condition"+      ( \x ->+          Condition'+            Prelude.<$> (x Data..: "expressionString")+      )++instance Prelude.Hashable Condition where+  hashWithSalt _salt Condition' {..} =+    _salt `Prelude.hashWithSalt` expressionString++instance Prelude.NFData Condition where+  rnf Condition' {..} = Prelude.rnf expressionString++instance Data.ToJSON Condition where+  toJSON Condition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("expressionString" Data..= expressionString)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/ConditionalBranch.hs view
@@ -0,0 +1,130 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ConditionalBranch+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ConditionalBranch where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.Condition+import Amazonka.LexV2Models.Types.DialogState+import Amazonka.LexV2Models.Types.ResponseSpecification+import qualified Amazonka.Prelude as Prelude++-- | A set of actions that Amazon Lex should run if the condition is matched.+--+-- /See:/ 'newConditionalBranch' smart constructor.+data ConditionalBranch = ConditionalBranch'+  { response :: Prelude.Maybe ResponseSpecification,+    -- | The name of the branch.+    name :: Prelude.Text,+    -- | Contains the expression to evaluate. If the condition is true, the+    -- branch\'s actions are taken.+    condition :: Condition,+    -- | The next step in the conversation.+    nextStep :: DialogState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConditionalBranch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'response', 'conditionalBranch_response' - Undocumented member.+--+-- 'name', 'conditionalBranch_name' - The name of the branch.+--+-- 'condition', 'conditionalBranch_condition' - Contains the expression to evaluate. If the condition is true, the+-- branch\'s actions are taken.+--+-- 'nextStep', 'conditionalBranch_nextStep' - The next step in the conversation.+newConditionalBranch ::+  -- | 'name'+  Prelude.Text ->+  -- | 'condition'+  Condition ->+  -- | 'nextStep'+  DialogState ->+  ConditionalBranch+newConditionalBranch pName_ pCondition_ pNextStep_ =+  ConditionalBranch'+    { response = Prelude.Nothing,+      name = pName_,+      condition = pCondition_,+      nextStep = pNextStep_+    }++-- | Undocumented member.+conditionalBranch_response :: Lens.Lens' ConditionalBranch (Prelude.Maybe ResponseSpecification)+conditionalBranch_response = Lens.lens (\ConditionalBranch' {response} -> response) (\s@ConditionalBranch' {} a -> s {response = a} :: ConditionalBranch)++-- | The name of the branch.+conditionalBranch_name :: Lens.Lens' ConditionalBranch Prelude.Text+conditionalBranch_name = Lens.lens (\ConditionalBranch' {name} -> name) (\s@ConditionalBranch' {} a -> s {name = a} :: ConditionalBranch)++-- | Contains the expression to evaluate. If the condition is true, the+-- branch\'s actions are taken.+conditionalBranch_condition :: Lens.Lens' ConditionalBranch Condition+conditionalBranch_condition = Lens.lens (\ConditionalBranch' {condition} -> condition) (\s@ConditionalBranch' {} a -> s {condition = a} :: ConditionalBranch)++-- | The next step in the conversation.+conditionalBranch_nextStep :: Lens.Lens' ConditionalBranch DialogState+conditionalBranch_nextStep = Lens.lens (\ConditionalBranch' {nextStep} -> nextStep) (\s@ConditionalBranch' {} a -> s {nextStep = a} :: ConditionalBranch)++instance Data.FromJSON ConditionalBranch where+  parseJSON =+    Data.withObject+      "ConditionalBranch"+      ( \x ->+          ConditionalBranch'+            Prelude.<$> (x Data..:? "response")+            Prelude.<*> (x Data..: "name")+            Prelude.<*> (x Data..: "condition")+            Prelude.<*> (x Data..: "nextStep")+      )++instance Prelude.Hashable ConditionalBranch where+  hashWithSalt _salt ConditionalBranch' {..} =+    _salt+      `Prelude.hashWithSalt` response+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` condition+      `Prelude.hashWithSalt` nextStep++instance Prelude.NFData ConditionalBranch where+  rnf ConditionalBranch' {..} =+    Prelude.rnf response+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf condition+      `Prelude.seq` Prelude.rnf nextStep++instance Data.ToJSON ConditionalBranch where+  toJSON ConditionalBranch' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("response" Data..=) Prelude.<$> response,+            Prelude.Just ("name" Data..= name),+            Prelude.Just ("condition" Data..= condition),+            Prelude.Just ("nextStep" Data..= nextStep)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/ConditionalSpecification.hs view
@@ -0,0 +1,140 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ConditionalSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ConditionalSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.ConditionalBranch+import Amazonka.LexV2Models.Types.DefaultConditionalBranch+import qualified Amazonka.Prelude as Prelude++-- | Provides a list of conditional branches. Branches are evaluated in the+-- order that they are entered in the list. The first branch with a+-- condition that evaluates to true is executed. The last branch in the+-- list is the default branch. The default branch should not have any+-- condition expression. The default branch is executed if no other branch+-- has a matching condition.+--+-- /See:/ 'newConditionalSpecification' smart constructor.+data ConditionalSpecification = ConditionalSpecification'+  { -- | Determines whether a conditional branch is active. When @active@ is+    -- false, the conditions are not evaluated.+    active :: Prelude.Bool,+    -- | A list of conditional branches. A conditional branch is made up of a+    -- condition, a response and a next step. The response and next step are+    -- executed when the condition is true.+    conditionalBranches :: Prelude.NonEmpty ConditionalBranch,+    -- | The conditional branch that should be followed when the conditions for+    -- other branches are not satisfied. A conditional branch is made up of a+    -- condition, a response and a next step.+    defaultBranch :: DefaultConditionalBranch+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConditionalSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'active', 'conditionalSpecification_active' - Determines whether a conditional branch is active. When @active@ is+-- false, the conditions are not evaluated.+--+-- 'conditionalBranches', 'conditionalSpecification_conditionalBranches' - A list of conditional branches. A conditional branch is made up of a+-- condition, a response and a next step. The response and next step are+-- executed when the condition is true.+--+-- 'defaultBranch', 'conditionalSpecification_defaultBranch' - The conditional branch that should be followed when the conditions for+-- other branches are not satisfied. A conditional branch is made up of a+-- condition, a response and a next step.+newConditionalSpecification ::+  -- | 'active'+  Prelude.Bool ->+  -- | 'conditionalBranches'+  Prelude.NonEmpty ConditionalBranch ->+  -- | 'defaultBranch'+  DefaultConditionalBranch ->+  ConditionalSpecification+newConditionalSpecification+  pActive_+  pConditionalBranches_+  pDefaultBranch_ =+    ConditionalSpecification'+      { active = pActive_,+        conditionalBranches =+          Lens.coerced Lens.# pConditionalBranches_,+        defaultBranch = pDefaultBranch_+      }++-- | Determines whether a conditional branch is active. When @active@ is+-- false, the conditions are not evaluated.+conditionalSpecification_active :: Lens.Lens' ConditionalSpecification Prelude.Bool+conditionalSpecification_active = Lens.lens (\ConditionalSpecification' {active} -> active) (\s@ConditionalSpecification' {} a -> s {active = a} :: ConditionalSpecification)++-- | A list of conditional branches. A conditional branch is made up of a+-- condition, a response and a next step. The response and next step are+-- executed when the condition is true.+conditionalSpecification_conditionalBranches :: Lens.Lens' ConditionalSpecification (Prelude.NonEmpty ConditionalBranch)+conditionalSpecification_conditionalBranches = Lens.lens (\ConditionalSpecification' {conditionalBranches} -> conditionalBranches) (\s@ConditionalSpecification' {} a -> s {conditionalBranches = a} :: ConditionalSpecification) Prelude.. Lens.coerced++-- | The conditional branch that should be followed when the conditions for+-- other branches are not satisfied. A conditional branch is made up of a+-- condition, a response and a next step.+conditionalSpecification_defaultBranch :: Lens.Lens' ConditionalSpecification DefaultConditionalBranch+conditionalSpecification_defaultBranch = Lens.lens (\ConditionalSpecification' {defaultBranch} -> defaultBranch) (\s@ConditionalSpecification' {} a -> s {defaultBranch = a} :: ConditionalSpecification)++instance Data.FromJSON ConditionalSpecification where+  parseJSON =+    Data.withObject+      "ConditionalSpecification"+      ( \x ->+          ConditionalSpecification'+            Prelude.<$> (x Data..: "active")+            Prelude.<*> (x Data..: "conditionalBranches")+            Prelude.<*> (x Data..: "defaultBranch")+      )++instance Prelude.Hashable ConditionalSpecification where+  hashWithSalt _salt ConditionalSpecification' {..} =+    _salt+      `Prelude.hashWithSalt` active+      `Prelude.hashWithSalt` conditionalBranches+      `Prelude.hashWithSalt` defaultBranch++instance Prelude.NFData ConditionalSpecification where+  rnf ConditionalSpecification' {..} =+    Prelude.rnf active+      `Prelude.seq` Prelude.rnf conditionalBranches+      `Prelude.seq` Prelude.rnf defaultBranch++instance Data.ToJSON ConditionalSpecification where+  toJSON ConditionalSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("active" Data..= active),+            Prelude.Just+              ("conditionalBranches" Data..= conditionalBranches),+            Prelude.Just+              ("defaultBranch" Data..= defaultBranch)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/ConversationLogSettings.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ConversationLogSettings+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ConversationLogSettings where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.AudioLogSetting+import Amazonka.LexV2Models.Types.TextLogSetting+import qualified Amazonka.Prelude as Prelude++-- | Configures conversation logging that saves audio, text, and metadata for+-- the conversations with your users.+--+-- /See:/ 'newConversationLogSettings' smart constructor.+data ConversationLogSettings = ConversationLogSettings'+  { -- | The Amazon S3 settings for logging audio to an S3 bucket.+    audioLogSettings :: Prelude.Maybe (Prelude.NonEmpty AudioLogSetting),+    -- | The Amazon CloudWatch Logs settings for logging text and metadata.+    textLogSettings :: Prelude.Maybe (Prelude.NonEmpty TextLogSetting)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConversationLogSettings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'audioLogSettings', 'conversationLogSettings_audioLogSettings' - The Amazon S3 settings for logging audio to an S3 bucket.+--+-- 'textLogSettings', 'conversationLogSettings_textLogSettings' - The Amazon CloudWatch Logs settings for logging text and metadata.+newConversationLogSettings ::+  ConversationLogSettings+newConversationLogSettings =+  ConversationLogSettings'+    { audioLogSettings =+        Prelude.Nothing,+      textLogSettings = Prelude.Nothing+    }++-- | The Amazon S3 settings for logging audio to an S3 bucket.+conversationLogSettings_audioLogSettings :: Lens.Lens' ConversationLogSettings (Prelude.Maybe (Prelude.NonEmpty AudioLogSetting))+conversationLogSettings_audioLogSettings = Lens.lens (\ConversationLogSettings' {audioLogSettings} -> audioLogSettings) (\s@ConversationLogSettings' {} a -> s {audioLogSettings = a} :: ConversationLogSettings) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon CloudWatch Logs settings for logging text and metadata.+conversationLogSettings_textLogSettings :: Lens.Lens' ConversationLogSettings (Prelude.Maybe (Prelude.NonEmpty TextLogSetting))+conversationLogSettings_textLogSettings = Lens.lens (\ConversationLogSettings' {textLogSettings} -> textLogSettings) (\s@ConversationLogSettings' {} a -> s {textLogSettings = a} :: ConversationLogSettings) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ConversationLogSettings where+  parseJSON =+    Data.withObject+      "ConversationLogSettings"+      ( \x ->+          ConversationLogSettings'+            Prelude.<$> (x Data..:? "audioLogSettings")+            Prelude.<*> (x Data..:? "textLogSettings")+      )++instance Prelude.Hashable ConversationLogSettings where+  hashWithSalt _salt ConversationLogSettings' {..} =+    _salt+      `Prelude.hashWithSalt` audioLogSettings+      `Prelude.hashWithSalt` textLogSettings++instance Prelude.NFData ConversationLogSettings where+  rnf ConversationLogSettings' {..} =+    Prelude.rnf audioLogSettings+      `Prelude.seq` Prelude.rnf textLogSettings++instance Data.ToJSON ConversationLogSettings where+  toJSON ConversationLogSettings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("audioLogSettings" Data..=)+              Prelude.<$> audioLogSettings,+            ("textLogSettings" Data..=)+              Prelude.<$> textLogSettings+          ]+      )
+ gen/Amazonka/LexV2Models/Types/CustomPayload.hs view
@@ -0,0 +1,77 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.CustomPayload+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.CustomPayload where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A custom response string that Amazon Lex sends to your application. You+-- define the content and structure the string.+--+-- /See:/ 'newCustomPayload' smart constructor.+data CustomPayload = CustomPayload'+  { -- | The string that is sent to your application.+    value :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomPayload' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'value', 'customPayload_value' - The string that is sent to your application.+newCustomPayload ::+  -- | 'value'+  Prelude.Text ->+  CustomPayload+newCustomPayload pValue_ =+  CustomPayload' {value = pValue_}++-- | The string that is sent to your application.+customPayload_value :: Lens.Lens' CustomPayload Prelude.Text+customPayload_value = Lens.lens (\CustomPayload' {value} -> value) (\s@CustomPayload' {} a -> s {value = a} :: CustomPayload)++instance Data.FromJSON CustomPayload where+  parseJSON =+    Data.withObject+      "CustomPayload"+      ( \x ->+          CustomPayload' Prelude.<$> (x Data..: "value")+      )++instance Prelude.Hashable CustomPayload where+  hashWithSalt _salt CustomPayload' {..} =+    _salt `Prelude.hashWithSalt` value++instance Prelude.NFData CustomPayload where+  rnf CustomPayload' {..} = Prelude.rnf value++instance Data.ToJSON CustomPayload where+  toJSON CustomPayload' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("value" Data..= value)]+      )
+ gen/Amazonka/LexV2Models/Types/CustomVocabularyEntryId.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.CustomVocabularyEntryId+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.CustomVocabularyEntryId where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The unique entry identifier for the custom vocabulary items.+--+-- /See:/ 'newCustomVocabularyEntryId' smart constructor.+data CustomVocabularyEntryId = CustomVocabularyEntryId'+  { -- | The unique item identifier for the custom vocabulary items.+    itemId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomVocabularyEntryId' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'itemId', 'customVocabularyEntryId_itemId' - The unique item identifier for the custom vocabulary items.+newCustomVocabularyEntryId ::+  -- | 'itemId'+  Prelude.Text ->+  CustomVocabularyEntryId+newCustomVocabularyEntryId pItemId_ =+  CustomVocabularyEntryId' {itemId = pItemId_}++-- | The unique item identifier for the custom vocabulary items.+customVocabularyEntryId_itemId :: Lens.Lens' CustomVocabularyEntryId Prelude.Text+customVocabularyEntryId_itemId = Lens.lens (\CustomVocabularyEntryId' {itemId} -> itemId) (\s@CustomVocabularyEntryId' {} a -> s {itemId = a} :: CustomVocabularyEntryId)++instance Prelude.Hashable CustomVocabularyEntryId where+  hashWithSalt _salt CustomVocabularyEntryId' {..} =+    _salt `Prelude.hashWithSalt` itemId++instance Prelude.NFData CustomVocabularyEntryId where+  rnf CustomVocabularyEntryId' {..} = Prelude.rnf itemId++instance Data.ToJSON CustomVocabularyEntryId where+  toJSON CustomVocabularyEntryId' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("itemId" Data..= itemId)]+      )
+ gen/Amazonka/LexV2Models/Types/CustomVocabularyExportSpecification.hs view
@@ -0,0 +1,130 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.CustomVocabularyExportSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.CustomVocabularyExportSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides the parameters required for exporting a custom vocabulary.+--+-- /See:/ 'newCustomVocabularyExportSpecification' smart constructor.+data CustomVocabularyExportSpecification = CustomVocabularyExportSpecification'+  { -- | The identifier of the bot that contains the custom vocabulary to export.+    botId :: Prelude.Text,+    -- | The version of the bot that contains the custom vocabulary to export.+    botVersion :: Prelude.Text,+    -- | The locale of the bot that contains the custom vocabulary to export.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomVocabularyExportSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'customVocabularyExportSpecification_botId' - The identifier of the bot that contains the custom vocabulary to export.+--+-- 'botVersion', 'customVocabularyExportSpecification_botVersion' - The version of the bot that contains the custom vocabulary to export.+--+-- 'localeId', 'customVocabularyExportSpecification_localeId' - The locale of the bot that contains the custom vocabulary to export.+newCustomVocabularyExportSpecification ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  CustomVocabularyExportSpecification+newCustomVocabularyExportSpecification+  pBotId_+  pBotVersion_+  pLocaleId_ =+    CustomVocabularyExportSpecification'+      { botId =+          pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_+      }++-- | The identifier of the bot that contains the custom vocabulary to export.+customVocabularyExportSpecification_botId :: Lens.Lens' CustomVocabularyExportSpecification Prelude.Text+customVocabularyExportSpecification_botId = Lens.lens (\CustomVocabularyExportSpecification' {botId} -> botId) (\s@CustomVocabularyExportSpecification' {} a -> s {botId = a} :: CustomVocabularyExportSpecification)++-- | The version of the bot that contains the custom vocabulary to export.+customVocabularyExportSpecification_botVersion :: Lens.Lens' CustomVocabularyExportSpecification Prelude.Text+customVocabularyExportSpecification_botVersion = Lens.lens (\CustomVocabularyExportSpecification' {botVersion} -> botVersion) (\s@CustomVocabularyExportSpecification' {} a -> s {botVersion = a} :: CustomVocabularyExportSpecification)++-- | The locale of the bot that contains the custom vocabulary to export.+customVocabularyExportSpecification_localeId :: Lens.Lens' CustomVocabularyExportSpecification Prelude.Text+customVocabularyExportSpecification_localeId = Lens.lens (\CustomVocabularyExportSpecification' {localeId} -> localeId) (\s@CustomVocabularyExportSpecification' {} a -> s {localeId = a} :: CustomVocabularyExportSpecification)++instance+  Data.FromJSON+    CustomVocabularyExportSpecification+  where+  parseJSON =+    Data.withObject+      "CustomVocabularyExportSpecification"+      ( \x ->+          CustomVocabularyExportSpecification'+            Prelude.<$> (x Data..: "botId")+            Prelude.<*> (x Data..: "botVersion")+            Prelude.<*> (x Data..: "localeId")+      )++instance+  Prelude.Hashable+    CustomVocabularyExportSpecification+  where+  hashWithSalt+    _salt+    CustomVocabularyExportSpecification' {..} =+      _salt+        `Prelude.hashWithSalt` botId+        `Prelude.hashWithSalt` botVersion+        `Prelude.hashWithSalt` localeId++instance+  Prelude.NFData+    CustomVocabularyExportSpecification+  where+  rnf CustomVocabularyExportSpecification' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance+  Data.ToJSON+    CustomVocabularyExportSpecification+  where+  toJSON CustomVocabularyExportSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("botId" Data..= botId),+            Prelude.Just ("botVersion" Data..= botVersion),+            Prelude.Just ("localeId" Data..= localeId)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/CustomVocabularyImportSpecification.hs view
@@ -0,0 +1,133 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.CustomVocabularyImportSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.CustomVocabularyImportSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides the parameters required for importing a custom vocabulary.+--+-- /See:/ 'newCustomVocabularyImportSpecification' smart constructor.+data CustomVocabularyImportSpecification = CustomVocabularyImportSpecification'+  { -- | The identifier of the bot to import the custom vocabulary to.+    botId :: Prelude.Text,+    -- | The version of the bot to import the custom vocabulary to.+    botVersion :: Prelude.Text,+    -- | The identifier of the local to import the custom vocabulary to. The+    -- value must be @en_GB@.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomVocabularyImportSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'customVocabularyImportSpecification_botId' - The identifier of the bot to import the custom vocabulary to.+--+-- 'botVersion', 'customVocabularyImportSpecification_botVersion' - The version of the bot to import the custom vocabulary to.+--+-- 'localeId', 'customVocabularyImportSpecification_localeId' - The identifier of the local to import the custom vocabulary to. The+-- value must be @en_GB@.+newCustomVocabularyImportSpecification ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  CustomVocabularyImportSpecification+newCustomVocabularyImportSpecification+  pBotId_+  pBotVersion_+  pLocaleId_ =+    CustomVocabularyImportSpecification'+      { botId =+          pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_+      }++-- | The identifier of the bot to import the custom vocabulary to.+customVocabularyImportSpecification_botId :: Lens.Lens' CustomVocabularyImportSpecification Prelude.Text+customVocabularyImportSpecification_botId = Lens.lens (\CustomVocabularyImportSpecification' {botId} -> botId) (\s@CustomVocabularyImportSpecification' {} a -> s {botId = a} :: CustomVocabularyImportSpecification)++-- | The version of the bot to import the custom vocabulary to.+customVocabularyImportSpecification_botVersion :: Lens.Lens' CustomVocabularyImportSpecification Prelude.Text+customVocabularyImportSpecification_botVersion = Lens.lens (\CustomVocabularyImportSpecification' {botVersion} -> botVersion) (\s@CustomVocabularyImportSpecification' {} a -> s {botVersion = a} :: CustomVocabularyImportSpecification)++-- | The identifier of the local to import the custom vocabulary to. The+-- value must be @en_GB@.+customVocabularyImportSpecification_localeId :: Lens.Lens' CustomVocabularyImportSpecification Prelude.Text+customVocabularyImportSpecification_localeId = Lens.lens (\CustomVocabularyImportSpecification' {localeId} -> localeId) (\s@CustomVocabularyImportSpecification' {} a -> s {localeId = a} :: CustomVocabularyImportSpecification)++instance+  Data.FromJSON+    CustomVocabularyImportSpecification+  where+  parseJSON =+    Data.withObject+      "CustomVocabularyImportSpecification"+      ( \x ->+          CustomVocabularyImportSpecification'+            Prelude.<$> (x Data..: "botId")+            Prelude.<*> (x Data..: "botVersion")+            Prelude.<*> (x Data..: "localeId")+      )++instance+  Prelude.Hashable+    CustomVocabularyImportSpecification+  where+  hashWithSalt+    _salt+    CustomVocabularyImportSpecification' {..} =+      _salt+        `Prelude.hashWithSalt` botId+        `Prelude.hashWithSalt` botVersion+        `Prelude.hashWithSalt` localeId++instance+  Prelude.NFData+    CustomVocabularyImportSpecification+  where+  rnf CustomVocabularyImportSpecification' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance+  Data.ToJSON+    CustomVocabularyImportSpecification+  where+  toJSON CustomVocabularyImportSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("botId" Data..= botId),+            Prelude.Just ("botVersion" Data..= botVersion),+            Prelude.Just ("localeId" Data..= localeId)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/CustomVocabularyItem.hs view
@@ -0,0 +1,135 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.CustomVocabularyItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.CustomVocabularyItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The unique custom vocabulary item from the custom vocabulary list.+--+-- /See:/ 'newCustomVocabularyItem' smart constructor.+data CustomVocabularyItem = CustomVocabularyItem'+  { -- | The display as value for the custom vocabulary item from the custom+    -- vocabulary list.+    displayAs :: Prelude.Maybe Prelude.Text,+    -- | The weight assigned for the custom vocabulary item from the custom+    -- vocabulary list.+    weight :: Prelude.Maybe Prelude.Natural,+    -- | The unique item identifer for the custom vocabulary item from the custom+    -- vocabulary list.+    itemId :: Prelude.Text,+    -- | The unique phrase for the custom vocabulary item from the custom+    -- vocabulary list.+    phrase :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomVocabularyItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'displayAs', 'customVocabularyItem_displayAs' - The display as value for the custom vocabulary item from the custom+-- vocabulary list.+--+-- 'weight', 'customVocabularyItem_weight' - The weight assigned for the custom vocabulary item from the custom+-- vocabulary list.+--+-- 'itemId', 'customVocabularyItem_itemId' - The unique item identifer for the custom vocabulary item from the custom+-- vocabulary list.+--+-- 'phrase', 'customVocabularyItem_phrase' - The unique phrase for the custom vocabulary item from the custom+-- vocabulary list.+newCustomVocabularyItem ::+  -- | 'itemId'+  Prelude.Text ->+  -- | 'phrase'+  Prelude.Text ->+  CustomVocabularyItem+newCustomVocabularyItem pItemId_ pPhrase_ =+  CustomVocabularyItem'+    { displayAs = Prelude.Nothing,+      weight = Prelude.Nothing,+      itemId = pItemId_,+      phrase = pPhrase_+    }++-- | The display as value for the custom vocabulary item from the custom+-- vocabulary list.+customVocabularyItem_displayAs :: Lens.Lens' CustomVocabularyItem (Prelude.Maybe Prelude.Text)+customVocabularyItem_displayAs = Lens.lens (\CustomVocabularyItem' {displayAs} -> displayAs) (\s@CustomVocabularyItem' {} a -> s {displayAs = a} :: CustomVocabularyItem)++-- | The weight assigned for the custom vocabulary item from the custom+-- vocabulary list.+customVocabularyItem_weight :: Lens.Lens' CustomVocabularyItem (Prelude.Maybe Prelude.Natural)+customVocabularyItem_weight = Lens.lens (\CustomVocabularyItem' {weight} -> weight) (\s@CustomVocabularyItem' {} a -> s {weight = a} :: CustomVocabularyItem)++-- | The unique item identifer for the custom vocabulary item from the custom+-- vocabulary list.+customVocabularyItem_itemId :: Lens.Lens' CustomVocabularyItem Prelude.Text+customVocabularyItem_itemId = Lens.lens (\CustomVocabularyItem' {itemId} -> itemId) (\s@CustomVocabularyItem' {} a -> s {itemId = a} :: CustomVocabularyItem)++-- | The unique phrase for the custom vocabulary item from the custom+-- vocabulary list.+customVocabularyItem_phrase :: Lens.Lens' CustomVocabularyItem Prelude.Text+customVocabularyItem_phrase = Lens.lens (\CustomVocabularyItem' {phrase} -> phrase) (\s@CustomVocabularyItem' {} a -> s {phrase = a} :: CustomVocabularyItem)++instance Data.FromJSON CustomVocabularyItem where+  parseJSON =+    Data.withObject+      "CustomVocabularyItem"+      ( \x ->+          CustomVocabularyItem'+            Prelude.<$> (x Data..:? "displayAs")+            Prelude.<*> (x Data..:? "weight")+            Prelude.<*> (x Data..: "itemId")+            Prelude.<*> (x Data..: "phrase")+      )++instance Prelude.Hashable CustomVocabularyItem where+  hashWithSalt _salt CustomVocabularyItem' {..} =+    _salt+      `Prelude.hashWithSalt` displayAs+      `Prelude.hashWithSalt` weight+      `Prelude.hashWithSalt` itemId+      `Prelude.hashWithSalt` phrase++instance Prelude.NFData CustomVocabularyItem where+  rnf CustomVocabularyItem' {..} =+    Prelude.rnf displayAs+      `Prelude.seq` Prelude.rnf weight+      `Prelude.seq` Prelude.rnf itemId+      `Prelude.seq` Prelude.rnf phrase++instance Data.ToJSON CustomVocabularyItem where+  toJSON CustomVocabularyItem' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("displayAs" Data..=) Prelude.<$> displayAs,+            ("weight" Data..=) Prelude.<$> weight,+            Prelude.Just ("itemId" Data..= itemId),+            Prelude.Just ("phrase" Data..= phrase)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/CustomVocabularyStatus.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.CustomVocabularyStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.CustomVocabularyStatus+  ( CustomVocabularyStatus+      ( ..,+        CustomVocabularyStatus_Creating,+        CustomVocabularyStatus_Deleting,+        CustomVocabularyStatus_Exporting,+        CustomVocabularyStatus_Importing,+        CustomVocabularyStatus_Ready+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CustomVocabularyStatus = CustomVocabularyStatus'+  { fromCustomVocabularyStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern CustomVocabularyStatus_Creating :: CustomVocabularyStatus+pattern CustomVocabularyStatus_Creating = CustomVocabularyStatus' "Creating"++pattern CustomVocabularyStatus_Deleting :: CustomVocabularyStatus+pattern CustomVocabularyStatus_Deleting = CustomVocabularyStatus' "Deleting"++pattern CustomVocabularyStatus_Exporting :: CustomVocabularyStatus+pattern CustomVocabularyStatus_Exporting = CustomVocabularyStatus' "Exporting"++pattern CustomVocabularyStatus_Importing :: CustomVocabularyStatus+pattern CustomVocabularyStatus_Importing = CustomVocabularyStatus' "Importing"++pattern CustomVocabularyStatus_Ready :: CustomVocabularyStatus+pattern CustomVocabularyStatus_Ready = CustomVocabularyStatus' "Ready"++{-# COMPLETE+  CustomVocabularyStatus_Creating,+  CustomVocabularyStatus_Deleting,+  CustomVocabularyStatus_Exporting,+  CustomVocabularyStatus_Importing,+  CustomVocabularyStatus_Ready,+  CustomVocabularyStatus'+  #-}
+ gen/Amazonka/LexV2Models/Types/DTMFSpecification.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.DTMFSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.DTMFSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies the DTMF input specifications.+--+-- /See:/ 'newDTMFSpecification' smart constructor.+data DTMFSpecification = DTMFSpecification'+  { -- | The maximum number of DTMF digits allowed in an utterance.+    maxLength :: Prelude.Natural,+    -- | How long the bot should wait after the last DTMF character input before+    -- assuming that the input has concluded.+    endTimeoutMs :: Prelude.Natural,+    -- | The DTMF character that clears the accumulated DTMF digits and+    -- immediately ends the input.+    deletionCharacter :: Prelude.Text,+    -- | The DTMF character that immediately ends input. If the user does not+    -- press this character, the input ends after the end timeout.+    endCharacter :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DTMFSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxLength', 'dTMFSpecification_maxLength' - The maximum number of DTMF digits allowed in an utterance.+--+-- 'endTimeoutMs', 'dTMFSpecification_endTimeoutMs' - How long the bot should wait after the last DTMF character input before+-- assuming that the input has concluded.+--+-- 'deletionCharacter', 'dTMFSpecification_deletionCharacter' - The DTMF character that clears the accumulated DTMF digits and+-- immediately ends the input.+--+-- 'endCharacter', 'dTMFSpecification_endCharacter' - The DTMF character that immediately ends input. If the user does not+-- press this character, the input ends after the end timeout.+newDTMFSpecification ::+  -- | 'maxLength'+  Prelude.Natural ->+  -- | 'endTimeoutMs'+  Prelude.Natural ->+  -- | 'deletionCharacter'+  Prelude.Text ->+  -- | 'endCharacter'+  Prelude.Text ->+  DTMFSpecification+newDTMFSpecification+  pMaxLength_+  pEndTimeoutMs_+  pDeletionCharacter_+  pEndCharacter_ =+    DTMFSpecification'+      { maxLength = pMaxLength_,+        endTimeoutMs = pEndTimeoutMs_,+        deletionCharacter = pDeletionCharacter_,+        endCharacter = pEndCharacter_+      }++-- | The maximum number of DTMF digits allowed in an utterance.+dTMFSpecification_maxLength :: Lens.Lens' DTMFSpecification Prelude.Natural+dTMFSpecification_maxLength = Lens.lens (\DTMFSpecification' {maxLength} -> maxLength) (\s@DTMFSpecification' {} a -> s {maxLength = a} :: DTMFSpecification)++-- | How long the bot should wait after the last DTMF character input before+-- assuming that the input has concluded.+dTMFSpecification_endTimeoutMs :: Lens.Lens' DTMFSpecification Prelude.Natural+dTMFSpecification_endTimeoutMs = Lens.lens (\DTMFSpecification' {endTimeoutMs} -> endTimeoutMs) (\s@DTMFSpecification' {} a -> s {endTimeoutMs = a} :: DTMFSpecification)++-- | The DTMF character that clears the accumulated DTMF digits and+-- immediately ends the input.+dTMFSpecification_deletionCharacter :: Lens.Lens' DTMFSpecification Prelude.Text+dTMFSpecification_deletionCharacter = Lens.lens (\DTMFSpecification' {deletionCharacter} -> deletionCharacter) (\s@DTMFSpecification' {} a -> s {deletionCharacter = a} :: DTMFSpecification)++-- | The DTMF character that immediately ends input. If the user does not+-- press this character, the input ends after the end timeout.+dTMFSpecification_endCharacter :: Lens.Lens' DTMFSpecification Prelude.Text+dTMFSpecification_endCharacter = Lens.lens (\DTMFSpecification' {endCharacter} -> endCharacter) (\s@DTMFSpecification' {} a -> s {endCharacter = a} :: DTMFSpecification)++instance Data.FromJSON DTMFSpecification where+  parseJSON =+    Data.withObject+      "DTMFSpecification"+      ( \x ->+          DTMFSpecification'+            Prelude.<$> (x Data..: "maxLength")+            Prelude.<*> (x Data..: "endTimeoutMs")+            Prelude.<*> (x Data..: "deletionCharacter")+            Prelude.<*> (x Data..: "endCharacter")+      )++instance Prelude.Hashable DTMFSpecification where+  hashWithSalt _salt DTMFSpecification' {..} =+    _salt+      `Prelude.hashWithSalt` maxLength+      `Prelude.hashWithSalt` endTimeoutMs+      `Prelude.hashWithSalt` deletionCharacter+      `Prelude.hashWithSalt` endCharacter++instance Prelude.NFData DTMFSpecification where+  rnf DTMFSpecification' {..} =+    Prelude.rnf maxLength+      `Prelude.seq` Prelude.rnf endTimeoutMs+      `Prelude.seq` Prelude.rnf deletionCharacter+      `Prelude.seq` Prelude.rnf endCharacter++instance Data.ToJSON DTMFSpecification where+  toJSON DTMFSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("maxLength" Data..= maxLength),+            Prelude.Just ("endTimeoutMs" Data..= endTimeoutMs),+            Prelude.Just+              ("deletionCharacter" Data..= deletionCharacter),+            Prelude.Just ("endCharacter" Data..= endCharacter)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/DataPrivacy.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.DataPrivacy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.DataPrivacy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | By default, data stored by Amazon Lex is encrypted. The @DataPrivacy@+-- structure provides settings that determine how Amazon Lex handles+-- special cases of securing the data for your bot.+--+-- /See:/ 'newDataPrivacy' smart constructor.+data DataPrivacy = DataPrivacy'+  { -- | For each Amazon Lex bot created with the Amazon Lex Model Building+    -- Service, you must specify whether your use of Amazon Lex is related to a+    -- website, program, or other application that is directed or targeted, in+    -- whole or in part, to children under age 13 and subject to the+    -- Children\'s Online Privacy Protection Act (COPPA) by specifying @true@+    -- or @false@ in the @childDirected@ field. By specifying @true@ in the+    -- @childDirected@ field, you confirm that your use of Amazon Lex __is__+    -- related to a website, program, or other application that is directed or+    -- targeted, in whole or in part, to children under age 13 and subject to+    -- COPPA. By specifying @false@ in the @childDirected@ field, you confirm+    -- that your use of Amazon Lex __is not__ related to a website, program, or+    -- other application that is directed or targeted, in whole or in part, to+    -- children under age 13 and subject to COPPA. You may not specify a+    -- default value for the @childDirected@ field that does not accurately+    -- reflect whether your use of Amazon Lex is related to a website, program,+    -- or other application that is directed or targeted, in whole or in part,+    -- to children under age 13 and subject to COPPA. If your use of Amazon Lex+    -- relates to a website, program, or other application that is directed in+    -- whole or in part, to children under age 13, you must obtain any required+    -- verifiable parental consent under COPPA. For information regarding the+    -- use of Amazon Lex in connection with websites, programs, or other+    -- applications that are directed or targeted, in whole or in part, to+    -- children under age 13, see the+    -- <https://aws.amazon.com/lex/faqs#data-security Amazon Lex FAQ>.+    childDirected :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataPrivacy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'childDirected', 'dataPrivacy_childDirected' - For each Amazon Lex bot created with the Amazon Lex Model Building+-- Service, you must specify whether your use of Amazon Lex is related to a+-- website, program, or other application that is directed or targeted, in+-- whole or in part, to children under age 13 and subject to the+-- Children\'s Online Privacy Protection Act (COPPA) by specifying @true@+-- or @false@ in the @childDirected@ field. By specifying @true@ in the+-- @childDirected@ field, you confirm that your use of Amazon Lex __is__+-- related to a website, program, or other application that is directed or+-- targeted, in whole or in part, to children under age 13 and subject to+-- COPPA. By specifying @false@ in the @childDirected@ field, you confirm+-- that your use of Amazon Lex __is not__ related to a website, program, or+-- other application that is directed or targeted, in whole or in part, to+-- children under age 13 and subject to COPPA. You may not specify a+-- default value for the @childDirected@ field that does not accurately+-- reflect whether your use of Amazon Lex is related to a website, program,+-- or other application that is directed or targeted, in whole or in part,+-- to children under age 13 and subject to COPPA. If your use of Amazon Lex+-- relates to a website, program, or other application that is directed in+-- whole or in part, to children under age 13, you must obtain any required+-- verifiable parental consent under COPPA. For information regarding the+-- use of Amazon Lex in connection with websites, programs, or other+-- applications that are directed or targeted, in whole or in part, to+-- children under age 13, see the+-- <https://aws.amazon.com/lex/faqs#data-security Amazon Lex FAQ>.+newDataPrivacy ::+  -- | 'childDirected'+  Prelude.Bool ->+  DataPrivacy+newDataPrivacy pChildDirected_ =+  DataPrivacy' {childDirected = pChildDirected_}++-- | For each Amazon Lex bot created with the Amazon Lex Model Building+-- Service, you must specify whether your use of Amazon Lex is related to a+-- website, program, or other application that is directed or targeted, in+-- whole or in part, to children under age 13 and subject to the+-- Children\'s Online Privacy Protection Act (COPPA) by specifying @true@+-- or @false@ in the @childDirected@ field. By specifying @true@ in the+-- @childDirected@ field, you confirm that your use of Amazon Lex __is__+-- related to a website, program, or other application that is directed or+-- targeted, in whole or in part, to children under age 13 and subject to+-- COPPA. By specifying @false@ in the @childDirected@ field, you confirm+-- that your use of Amazon Lex __is not__ related to a website, program, or+-- other application that is directed or targeted, in whole or in part, to+-- children under age 13 and subject to COPPA. You may not specify a+-- default value for the @childDirected@ field that does not accurately+-- reflect whether your use of Amazon Lex is related to a website, program,+-- or other application that is directed or targeted, in whole or in part,+-- to children under age 13 and subject to COPPA. If your use of Amazon Lex+-- relates to a website, program, or other application that is directed in+-- whole or in part, to children under age 13, you must obtain any required+-- verifiable parental consent under COPPA. For information regarding the+-- use of Amazon Lex in connection with websites, programs, or other+-- applications that are directed or targeted, in whole or in part, to+-- children under age 13, see the+-- <https://aws.amazon.com/lex/faqs#data-security Amazon Lex FAQ>.+dataPrivacy_childDirected :: Lens.Lens' DataPrivacy Prelude.Bool+dataPrivacy_childDirected = Lens.lens (\DataPrivacy' {childDirected} -> childDirected) (\s@DataPrivacy' {} a -> s {childDirected = a} :: DataPrivacy)++instance Data.FromJSON DataPrivacy where+  parseJSON =+    Data.withObject+      "DataPrivacy"+      ( \x ->+          DataPrivacy' Prelude.<$> (x Data..: "childDirected")+      )++instance Prelude.Hashable DataPrivacy where+  hashWithSalt _salt DataPrivacy' {..} =+    _salt `Prelude.hashWithSalt` childDirected++instance Prelude.NFData DataPrivacy where+  rnf DataPrivacy' {..} = Prelude.rnf childDirected++instance Data.ToJSON DataPrivacy where+  toJSON DataPrivacy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("childDirected" Data..= childDirected)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/DateRangeFilter.hs view
@@ -0,0 +1,100 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.DateRangeFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.DateRangeFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The object used for specifying the data range that the customer wants+-- Amazon Lex to read through in the input transcripts.+--+-- /See:/ 'newDateRangeFilter' smart constructor.+data DateRangeFilter = DateRangeFilter'+  { -- | A timestamp indicating the start date for the date range filter.+    startDateTime :: Data.POSIX,+    -- | A timestamp indicating the end date for the date range filter.+    endDateTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DateRangeFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'startDateTime', 'dateRangeFilter_startDateTime' - A timestamp indicating the start date for the date range filter.+--+-- 'endDateTime', 'dateRangeFilter_endDateTime' - A timestamp indicating the end date for the date range filter.+newDateRangeFilter ::+  -- | 'startDateTime'+  Prelude.UTCTime ->+  -- | 'endDateTime'+  Prelude.UTCTime ->+  DateRangeFilter+newDateRangeFilter pStartDateTime_ pEndDateTime_ =+  DateRangeFilter'+    { startDateTime =+        Data._Time Lens.# pStartDateTime_,+      endDateTime = Data._Time Lens.# pEndDateTime_+    }++-- | A timestamp indicating the start date for the date range filter.+dateRangeFilter_startDateTime :: Lens.Lens' DateRangeFilter Prelude.UTCTime+dateRangeFilter_startDateTime = Lens.lens (\DateRangeFilter' {startDateTime} -> startDateTime) (\s@DateRangeFilter' {} a -> s {startDateTime = a} :: DateRangeFilter) Prelude.. Data._Time++-- | A timestamp indicating the end date for the date range filter.+dateRangeFilter_endDateTime :: Lens.Lens' DateRangeFilter Prelude.UTCTime+dateRangeFilter_endDateTime = Lens.lens (\DateRangeFilter' {endDateTime} -> endDateTime) (\s@DateRangeFilter' {} a -> s {endDateTime = a} :: DateRangeFilter) Prelude.. Data._Time++instance Data.FromJSON DateRangeFilter where+  parseJSON =+    Data.withObject+      "DateRangeFilter"+      ( \x ->+          DateRangeFilter'+            Prelude.<$> (x Data..: "startDateTime")+            Prelude.<*> (x Data..: "endDateTime")+      )++instance Prelude.Hashable DateRangeFilter where+  hashWithSalt _salt DateRangeFilter' {..} =+    _salt+      `Prelude.hashWithSalt` startDateTime+      `Prelude.hashWithSalt` endDateTime++instance Prelude.NFData DateRangeFilter where+  rnf DateRangeFilter' {..} =+    Prelude.rnf startDateTime+      `Prelude.seq` Prelude.rnf endDateTime++instance Data.ToJSON DateRangeFilter where+  toJSON DateRangeFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("startDateTime" Data..= startDateTime),+            Prelude.Just ("endDateTime" Data..= endDateTime)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/DefaultConditionalBranch.hs view
@@ -0,0 +1,96 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.DefaultConditionalBranch+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.DefaultConditionalBranch where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.DialogState+import Amazonka.LexV2Models.Types.ResponseSpecification+import qualified Amazonka.Prelude as Prelude++-- | A set of actions that Amazon Lex should run if none of the other+-- conditions are met.+--+-- /See:/ 'newDefaultConditionalBranch' smart constructor.+data DefaultConditionalBranch = DefaultConditionalBranch'+  { -- | The next step in the conversation.+    nextStep :: Prelude.Maybe DialogState,+    response :: Prelude.Maybe ResponseSpecification+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DefaultConditionalBranch' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextStep', 'defaultConditionalBranch_nextStep' - The next step in the conversation.+--+-- 'response', 'defaultConditionalBranch_response' - Undocumented member.+newDefaultConditionalBranch ::+  DefaultConditionalBranch+newDefaultConditionalBranch =+  DefaultConditionalBranch'+    { nextStep =+        Prelude.Nothing,+      response = Prelude.Nothing+    }++-- | The next step in the conversation.+defaultConditionalBranch_nextStep :: Lens.Lens' DefaultConditionalBranch (Prelude.Maybe DialogState)+defaultConditionalBranch_nextStep = Lens.lens (\DefaultConditionalBranch' {nextStep} -> nextStep) (\s@DefaultConditionalBranch' {} a -> s {nextStep = a} :: DefaultConditionalBranch)++-- | Undocumented member.+defaultConditionalBranch_response :: Lens.Lens' DefaultConditionalBranch (Prelude.Maybe ResponseSpecification)+defaultConditionalBranch_response = Lens.lens (\DefaultConditionalBranch' {response} -> response) (\s@DefaultConditionalBranch' {} a -> s {response = a} :: DefaultConditionalBranch)++instance Data.FromJSON DefaultConditionalBranch where+  parseJSON =+    Data.withObject+      "DefaultConditionalBranch"+      ( \x ->+          DefaultConditionalBranch'+            Prelude.<$> (x Data..:? "nextStep")+            Prelude.<*> (x Data..:? "response")+      )++instance Prelude.Hashable DefaultConditionalBranch where+  hashWithSalt _salt DefaultConditionalBranch' {..} =+    _salt+      `Prelude.hashWithSalt` nextStep+      `Prelude.hashWithSalt` response++instance Prelude.NFData DefaultConditionalBranch where+  rnf DefaultConditionalBranch' {..} =+    Prelude.rnf nextStep+      `Prelude.seq` Prelude.rnf response++instance Data.ToJSON DefaultConditionalBranch where+  toJSON DefaultConditionalBranch' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("nextStep" Data..=) Prelude.<$> nextStep,+            ("response" Data..=) Prelude.<$> response+          ]+      )
+ gen/Amazonka/LexV2Models/Types/DialogAction.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.DialogAction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.DialogAction where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.DialogActionType+import qualified Amazonka.Prelude as Prelude++-- | Defines the action that the bot executes at runtime when the+-- conversation reaches this step.+--+-- /See:/ 'newDialogAction' smart constructor.+data DialogAction = DialogAction'+  { -- | If the dialog action is @ElicitSlot@, defines the slot to elicit from+    -- the user.+    slotToElicit :: Prelude.Maybe Prelude.Text,+    -- | When true the next message for the intent is not used.+    suppressNextMessage :: Prelude.Maybe Prelude.Bool,+    -- | The action that the bot should execute.+    type' :: DialogActionType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DialogAction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'slotToElicit', 'dialogAction_slotToElicit' - If the dialog action is @ElicitSlot@, defines the slot to elicit from+-- the user.+--+-- 'suppressNextMessage', 'dialogAction_suppressNextMessage' - When true the next message for the intent is not used.+--+-- 'type'', 'dialogAction_type' - The action that the bot should execute.+newDialogAction ::+  -- | 'type''+  DialogActionType ->+  DialogAction+newDialogAction pType_ =+  DialogAction'+    { slotToElicit = Prelude.Nothing,+      suppressNextMessage = Prelude.Nothing,+      type' = pType_+    }++-- | If the dialog action is @ElicitSlot@, defines the slot to elicit from+-- the user.+dialogAction_slotToElicit :: Lens.Lens' DialogAction (Prelude.Maybe Prelude.Text)+dialogAction_slotToElicit = Lens.lens (\DialogAction' {slotToElicit} -> slotToElicit) (\s@DialogAction' {} a -> s {slotToElicit = a} :: DialogAction)++-- | When true the next message for the intent is not used.+dialogAction_suppressNextMessage :: Lens.Lens' DialogAction (Prelude.Maybe Prelude.Bool)+dialogAction_suppressNextMessage = Lens.lens (\DialogAction' {suppressNextMessage} -> suppressNextMessage) (\s@DialogAction' {} a -> s {suppressNextMessage = a} :: DialogAction)++-- | The action that the bot should execute.+dialogAction_type :: Lens.Lens' DialogAction DialogActionType+dialogAction_type = Lens.lens (\DialogAction' {type'} -> type') (\s@DialogAction' {} a -> s {type' = a} :: DialogAction)++instance Data.FromJSON DialogAction where+  parseJSON =+    Data.withObject+      "DialogAction"+      ( \x ->+          DialogAction'+            Prelude.<$> (x Data..:? "slotToElicit")+            Prelude.<*> (x Data..:? "suppressNextMessage")+            Prelude.<*> (x Data..: "type")+      )++instance Prelude.Hashable DialogAction where+  hashWithSalt _salt DialogAction' {..} =+    _salt+      `Prelude.hashWithSalt` slotToElicit+      `Prelude.hashWithSalt` suppressNextMessage+      `Prelude.hashWithSalt` type'++instance Prelude.NFData DialogAction where+  rnf DialogAction' {..} =+    Prelude.rnf slotToElicit+      `Prelude.seq` Prelude.rnf suppressNextMessage+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON DialogAction where+  toJSON DialogAction' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("slotToElicit" Data..=) Prelude.<$> slotToElicit,+            ("suppressNextMessage" Data..=)+              Prelude.<$> suppressNextMessage,+            Prelude.Just ("type" Data..= type')+          ]+      )
+ gen/Amazonka/LexV2Models/Types/DialogActionType.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.DialogActionType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.DialogActionType+  ( DialogActionType+      ( ..,+        DialogActionType_CloseIntent,+        DialogActionType_ConfirmIntent,+        DialogActionType_ElicitIntent,+        DialogActionType_ElicitSlot,+        DialogActionType_EndConversation,+        DialogActionType_EvaluateConditional,+        DialogActionType_FulfillIntent,+        DialogActionType_InvokeDialogCodeHook,+        DialogActionType_StartIntent+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DialogActionType = DialogActionType'+  { fromDialogActionType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern DialogActionType_CloseIntent :: DialogActionType+pattern DialogActionType_CloseIntent = DialogActionType' "CloseIntent"++pattern DialogActionType_ConfirmIntent :: DialogActionType+pattern DialogActionType_ConfirmIntent = DialogActionType' "ConfirmIntent"++pattern DialogActionType_ElicitIntent :: DialogActionType+pattern DialogActionType_ElicitIntent = DialogActionType' "ElicitIntent"++pattern DialogActionType_ElicitSlot :: DialogActionType+pattern DialogActionType_ElicitSlot = DialogActionType' "ElicitSlot"++pattern DialogActionType_EndConversation :: DialogActionType+pattern DialogActionType_EndConversation = DialogActionType' "EndConversation"++pattern DialogActionType_EvaluateConditional :: DialogActionType+pattern DialogActionType_EvaluateConditional = DialogActionType' "EvaluateConditional"++pattern DialogActionType_FulfillIntent :: DialogActionType+pattern DialogActionType_FulfillIntent = DialogActionType' "FulfillIntent"++pattern DialogActionType_InvokeDialogCodeHook :: DialogActionType+pattern DialogActionType_InvokeDialogCodeHook = DialogActionType' "InvokeDialogCodeHook"++pattern DialogActionType_StartIntent :: DialogActionType+pattern DialogActionType_StartIntent = DialogActionType' "StartIntent"++{-# COMPLETE+  DialogActionType_CloseIntent,+  DialogActionType_ConfirmIntent,+  DialogActionType_ElicitIntent,+  DialogActionType_ElicitSlot,+  DialogActionType_EndConversation,+  DialogActionType_EvaluateConditional,+  DialogActionType_FulfillIntent,+  DialogActionType_InvokeDialogCodeHook,+  DialogActionType_StartIntent,+  DialogActionType'+  #-}
+ gen/Amazonka/LexV2Models/Types/DialogCodeHookInvocationSetting.hs view
@@ -0,0 +1,160 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.DialogCodeHookInvocationSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.DialogCodeHookInvocationSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.PostDialogCodeHookInvocationSpecification+import qualified Amazonka.Prelude as Prelude++-- | Settings that specify the dialog code hook that is called by Amazon Lex+-- at a step of the conversation.+--+-- /See:/ 'newDialogCodeHookInvocationSetting' smart constructor.+data DialogCodeHookInvocationSetting = DialogCodeHookInvocationSetting'+  { -- | A label that indicates the dialog step from which the dialog code hook+    -- is happening.+    invocationLabel :: Prelude.Maybe Prelude.Text,+    -- | Indicates whether a Lambda function should be invoked for the dialog.+    enableCodeHookInvocation :: Prelude.Bool,+    -- | Determines whether a dialog code hook is used when the intent is+    -- activated.+    active :: Prelude.Bool,+    -- | Contains the responses and actions that Amazon Lex takes after the+    -- Lambda function is complete.+    postCodeHookSpecification :: PostDialogCodeHookInvocationSpecification+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DialogCodeHookInvocationSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'invocationLabel', 'dialogCodeHookInvocationSetting_invocationLabel' - A label that indicates the dialog step from which the dialog code hook+-- is happening.+--+-- 'enableCodeHookInvocation', 'dialogCodeHookInvocationSetting_enableCodeHookInvocation' - Indicates whether a Lambda function should be invoked for the dialog.+--+-- 'active', 'dialogCodeHookInvocationSetting_active' - Determines whether a dialog code hook is used when the intent is+-- activated.+--+-- 'postCodeHookSpecification', 'dialogCodeHookInvocationSetting_postCodeHookSpecification' - Contains the responses and actions that Amazon Lex takes after the+-- Lambda function is complete.+newDialogCodeHookInvocationSetting ::+  -- | 'enableCodeHookInvocation'+  Prelude.Bool ->+  -- | 'active'+  Prelude.Bool ->+  -- | 'postCodeHookSpecification'+  PostDialogCodeHookInvocationSpecification ->+  DialogCodeHookInvocationSetting+newDialogCodeHookInvocationSetting+  pEnableCodeHookInvocation_+  pActive_+  pPostCodeHookSpecification_ =+    DialogCodeHookInvocationSetting'+      { invocationLabel =+          Prelude.Nothing,+        enableCodeHookInvocation =+          pEnableCodeHookInvocation_,+        active = pActive_,+        postCodeHookSpecification =+          pPostCodeHookSpecification_+      }++-- | A label that indicates the dialog step from which the dialog code hook+-- is happening.+dialogCodeHookInvocationSetting_invocationLabel :: Lens.Lens' DialogCodeHookInvocationSetting (Prelude.Maybe Prelude.Text)+dialogCodeHookInvocationSetting_invocationLabel = Lens.lens (\DialogCodeHookInvocationSetting' {invocationLabel} -> invocationLabel) (\s@DialogCodeHookInvocationSetting' {} a -> s {invocationLabel = a} :: DialogCodeHookInvocationSetting)++-- | Indicates whether a Lambda function should be invoked for the dialog.+dialogCodeHookInvocationSetting_enableCodeHookInvocation :: Lens.Lens' DialogCodeHookInvocationSetting Prelude.Bool+dialogCodeHookInvocationSetting_enableCodeHookInvocation = Lens.lens (\DialogCodeHookInvocationSetting' {enableCodeHookInvocation} -> enableCodeHookInvocation) (\s@DialogCodeHookInvocationSetting' {} a -> s {enableCodeHookInvocation = a} :: DialogCodeHookInvocationSetting)++-- | Determines whether a dialog code hook is used when the intent is+-- activated.+dialogCodeHookInvocationSetting_active :: Lens.Lens' DialogCodeHookInvocationSetting Prelude.Bool+dialogCodeHookInvocationSetting_active = Lens.lens (\DialogCodeHookInvocationSetting' {active} -> active) (\s@DialogCodeHookInvocationSetting' {} a -> s {active = a} :: DialogCodeHookInvocationSetting)++-- | Contains the responses and actions that Amazon Lex takes after the+-- Lambda function is complete.+dialogCodeHookInvocationSetting_postCodeHookSpecification :: Lens.Lens' DialogCodeHookInvocationSetting PostDialogCodeHookInvocationSpecification+dialogCodeHookInvocationSetting_postCodeHookSpecification = Lens.lens (\DialogCodeHookInvocationSetting' {postCodeHookSpecification} -> postCodeHookSpecification) (\s@DialogCodeHookInvocationSetting' {} a -> s {postCodeHookSpecification = a} :: DialogCodeHookInvocationSetting)++instance+  Data.FromJSON+    DialogCodeHookInvocationSetting+  where+  parseJSON =+    Data.withObject+      "DialogCodeHookInvocationSetting"+      ( \x ->+          DialogCodeHookInvocationSetting'+            Prelude.<$> (x Data..:? "invocationLabel")+            Prelude.<*> (x Data..: "enableCodeHookInvocation")+            Prelude.<*> (x Data..: "active")+            Prelude.<*> (x Data..: "postCodeHookSpecification")+      )++instance+  Prelude.Hashable+    DialogCodeHookInvocationSetting+  where+  hashWithSalt+    _salt+    DialogCodeHookInvocationSetting' {..} =+      _salt+        `Prelude.hashWithSalt` invocationLabel+        `Prelude.hashWithSalt` enableCodeHookInvocation+        `Prelude.hashWithSalt` active+        `Prelude.hashWithSalt` postCodeHookSpecification++instance+  Prelude.NFData+    DialogCodeHookInvocationSetting+  where+  rnf DialogCodeHookInvocationSetting' {..} =+    Prelude.rnf invocationLabel+      `Prelude.seq` Prelude.rnf enableCodeHookInvocation+      `Prelude.seq` Prelude.rnf active+      `Prelude.seq` Prelude.rnf postCodeHookSpecification++instance Data.ToJSON DialogCodeHookInvocationSetting where+  toJSON DialogCodeHookInvocationSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("invocationLabel" Data..=)+              Prelude.<$> invocationLabel,+            Prelude.Just+              ( "enableCodeHookInvocation"+                  Data..= enableCodeHookInvocation+              ),+            Prelude.Just ("active" Data..= active),+            Prelude.Just+              ( "postCodeHookSpecification"+                  Data..= postCodeHookSpecification+              )+          ]+      )
+ gen/Amazonka/LexV2Models/Types/DialogCodeHookSettings.hs view
@@ -0,0 +1,78 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.DialogCodeHookSettings+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.DialogCodeHookSettings where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Settings that determine the Lambda function that Amazon Lex uses for+-- processing user responses.+--+-- /See:/ 'newDialogCodeHookSettings' smart constructor.+data DialogCodeHookSettings = DialogCodeHookSettings'+  { -- | Enables the dialog code hook so that it processes user requests.+    enabled :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DialogCodeHookSettings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'enabled', 'dialogCodeHookSettings_enabled' - Enables the dialog code hook so that it processes user requests.+newDialogCodeHookSettings ::+  -- | 'enabled'+  Prelude.Bool ->+  DialogCodeHookSettings+newDialogCodeHookSettings pEnabled_ =+  DialogCodeHookSettings' {enabled = pEnabled_}++-- | Enables the dialog code hook so that it processes user requests.+dialogCodeHookSettings_enabled :: Lens.Lens' DialogCodeHookSettings Prelude.Bool+dialogCodeHookSettings_enabled = Lens.lens (\DialogCodeHookSettings' {enabled} -> enabled) (\s@DialogCodeHookSettings' {} a -> s {enabled = a} :: DialogCodeHookSettings)++instance Data.FromJSON DialogCodeHookSettings where+  parseJSON =+    Data.withObject+      "DialogCodeHookSettings"+      ( \x ->+          DialogCodeHookSettings'+            Prelude.<$> (x Data..: "enabled")+      )++instance Prelude.Hashable DialogCodeHookSettings where+  hashWithSalt _salt DialogCodeHookSettings' {..} =+    _salt `Prelude.hashWithSalt` enabled++instance Prelude.NFData DialogCodeHookSettings where+  rnf DialogCodeHookSettings' {..} = Prelude.rnf enabled++instance Data.ToJSON DialogCodeHookSettings where+  toJSON DialogCodeHookSettings' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("enabled" Data..= enabled)]+      )
+ gen/Amazonka/LexV2Models/Types/DialogState.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.DialogState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.DialogState where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.DialogAction+import Amazonka.LexV2Models.Types.IntentOverride+import qualified Amazonka.Prelude as Prelude++-- | The current state of the conversation with the user.+--+-- /See:/ 'newDialogState' smart constructor.+data DialogState = DialogState'+  { dialogAction :: Prelude.Maybe DialogAction,+    intent :: Prelude.Maybe IntentOverride,+    -- | Map of key\/value pairs representing session-specific context+    -- information. It contains application information passed between Amazon+    -- Lex and a client application.+    sessionAttributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DialogState' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dialogAction', 'dialogState_dialogAction' - Undocumented member.+--+-- 'intent', 'dialogState_intent' - Undocumented member.+--+-- 'sessionAttributes', 'dialogState_sessionAttributes' - Map of key\/value pairs representing session-specific context+-- information. It contains application information passed between Amazon+-- Lex and a client application.+newDialogState ::+  DialogState+newDialogState =+  DialogState'+    { dialogAction = Prelude.Nothing,+      intent = Prelude.Nothing,+      sessionAttributes = Prelude.Nothing+    }++-- | Undocumented member.+dialogState_dialogAction :: Lens.Lens' DialogState (Prelude.Maybe DialogAction)+dialogState_dialogAction = Lens.lens (\DialogState' {dialogAction} -> dialogAction) (\s@DialogState' {} a -> s {dialogAction = a} :: DialogState)++-- | Undocumented member.+dialogState_intent :: Lens.Lens' DialogState (Prelude.Maybe IntentOverride)+dialogState_intent = Lens.lens (\DialogState' {intent} -> intent) (\s@DialogState' {} a -> s {intent = a} :: DialogState)++-- | Map of key\/value pairs representing session-specific context+-- information. It contains application information passed between Amazon+-- Lex and a client application.+dialogState_sessionAttributes :: Lens.Lens' DialogState (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+dialogState_sessionAttributes = Lens.lens (\DialogState' {sessionAttributes} -> sessionAttributes) (\s@DialogState' {} a -> s {sessionAttributes = a} :: DialogState) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON DialogState where+  parseJSON =+    Data.withObject+      "DialogState"+      ( \x ->+          DialogState'+            Prelude.<$> (x Data..:? "dialogAction")+            Prelude.<*> (x Data..:? "intent")+            Prelude.<*> ( x+                            Data..:? "sessionAttributes"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable DialogState where+  hashWithSalt _salt DialogState' {..} =+    _salt+      `Prelude.hashWithSalt` dialogAction+      `Prelude.hashWithSalt` intent+      `Prelude.hashWithSalt` sessionAttributes++instance Prelude.NFData DialogState where+  rnf DialogState' {..} =+    Prelude.rnf dialogAction+      `Prelude.seq` Prelude.rnf intent+      `Prelude.seq` Prelude.rnf sessionAttributes++instance Data.ToJSON DialogState where+  toJSON DialogState' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("dialogAction" Data..=) Prelude.<$> dialogAction,+            ("intent" Data..=) Prelude.<$> intent,+            ("sessionAttributes" Data..=)+              Prelude.<$> sessionAttributes+          ]+      )
+ gen/Amazonka/LexV2Models/Types/Effect.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.Effect+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.Effect+  ( Effect+      ( ..,+        Effect_Allow,+        Effect_Deny+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Effect = Effect' {fromEffect :: Data.Text}+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern Effect_Allow :: Effect+pattern Effect_Allow = Effect' "Allow"++pattern Effect_Deny :: Effect+pattern Effect_Deny = Effect' "Deny"++{-# COMPLETE+  Effect_Allow,+  Effect_Deny,+  Effect'+  #-}
+ gen/Amazonka/LexV2Models/Types/ElicitationCodeHookInvocationSetting.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ElicitationCodeHookInvocationSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ElicitationCodeHookInvocationSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Settings that specify the dialog code hook that is called by Amazon Lex+-- between eliciting slot values.+--+-- /See:/ 'newElicitationCodeHookInvocationSetting' smart constructor.+data ElicitationCodeHookInvocationSetting = ElicitationCodeHookInvocationSetting'+  { -- | A label that indicates the dialog step from which the dialog code hook+    -- is happening.+    invocationLabel :: Prelude.Maybe Prelude.Text,+    -- | Indicates whether a Lambda function should be invoked for the dialog.+    enableCodeHookInvocation :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ElicitationCodeHookInvocationSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'invocationLabel', 'elicitationCodeHookInvocationSetting_invocationLabel' - A label that indicates the dialog step from which the dialog code hook+-- is happening.+--+-- 'enableCodeHookInvocation', 'elicitationCodeHookInvocationSetting_enableCodeHookInvocation' - Indicates whether a Lambda function should be invoked for the dialog.+newElicitationCodeHookInvocationSetting ::+  -- | 'enableCodeHookInvocation'+  Prelude.Bool ->+  ElicitationCodeHookInvocationSetting+newElicitationCodeHookInvocationSetting+  pEnableCodeHookInvocation_ =+    ElicitationCodeHookInvocationSetting'+      { invocationLabel =+          Prelude.Nothing,+        enableCodeHookInvocation =+          pEnableCodeHookInvocation_+      }++-- | A label that indicates the dialog step from which the dialog code hook+-- is happening.+elicitationCodeHookInvocationSetting_invocationLabel :: Lens.Lens' ElicitationCodeHookInvocationSetting (Prelude.Maybe Prelude.Text)+elicitationCodeHookInvocationSetting_invocationLabel = Lens.lens (\ElicitationCodeHookInvocationSetting' {invocationLabel} -> invocationLabel) (\s@ElicitationCodeHookInvocationSetting' {} a -> s {invocationLabel = a} :: ElicitationCodeHookInvocationSetting)++-- | Indicates whether a Lambda function should be invoked for the dialog.+elicitationCodeHookInvocationSetting_enableCodeHookInvocation :: Lens.Lens' ElicitationCodeHookInvocationSetting Prelude.Bool+elicitationCodeHookInvocationSetting_enableCodeHookInvocation = Lens.lens (\ElicitationCodeHookInvocationSetting' {enableCodeHookInvocation} -> enableCodeHookInvocation) (\s@ElicitationCodeHookInvocationSetting' {} a -> s {enableCodeHookInvocation = a} :: ElicitationCodeHookInvocationSetting)++instance+  Data.FromJSON+    ElicitationCodeHookInvocationSetting+  where+  parseJSON =+    Data.withObject+      "ElicitationCodeHookInvocationSetting"+      ( \x ->+          ElicitationCodeHookInvocationSetting'+            Prelude.<$> (x Data..:? "invocationLabel")+            Prelude.<*> (x Data..: "enableCodeHookInvocation")+      )++instance+  Prelude.Hashable+    ElicitationCodeHookInvocationSetting+  where+  hashWithSalt+    _salt+    ElicitationCodeHookInvocationSetting' {..} =+      _salt+        `Prelude.hashWithSalt` invocationLabel+        `Prelude.hashWithSalt` enableCodeHookInvocation++instance+  Prelude.NFData+    ElicitationCodeHookInvocationSetting+  where+  rnf ElicitationCodeHookInvocationSetting' {..} =+    Prelude.rnf invocationLabel+      `Prelude.seq` Prelude.rnf enableCodeHookInvocation++instance+  Data.ToJSON+    ElicitationCodeHookInvocationSetting+  where+  toJSON ElicitationCodeHookInvocationSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("invocationLabel" Data..=)+              Prelude.<$> invocationLabel,+            Prelude.Just+              ( "enableCodeHookInvocation"+                  Data..= enableCodeHookInvocation+              )+          ]+      )
+ gen/Amazonka/LexV2Models/Types/EncryptionSetting.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.EncryptionSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.EncryptionSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The object representing the passwords that were used to encrypt the data+-- related to the bot recommendation, as well as the KMS key ARN used to+-- encrypt the associated metadata.+--+-- /See:/ 'newEncryptionSetting' smart constructor.+data EncryptionSetting = EncryptionSetting'+  { -- | The password used to encrypt the associated transcript file.+    associatedTranscriptsPassword :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The password used to encrypt the recommended bot recommendation file.+    botLocaleExportPassword :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The KMS key ARN used to encrypt the metadata associated with the bot+    -- recommendation.+    kmsKeyArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EncryptionSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'associatedTranscriptsPassword', 'encryptionSetting_associatedTranscriptsPassword' - The password used to encrypt the associated transcript file.+--+-- 'botLocaleExportPassword', 'encryptionSetting_botLocaleExportPassword' - The password used to encrypt the recommended bot recommendation file.+--+-- 'kmsKeyArn', 'encryptionSetting_kmsKeyArn' - The KMS key ARN used to encrypt the metadata associated with the bot+-- recommendation.+newEncryptionSetting ::+  EncryptionSetting+newEncryptionSetting =+  EncryptionSetting'+    { associatedTranscriptsPassword =+        Prelude.Nothing,+      botLocaleExportPassword = Prelude.Nothing,+      kmsKeyArn = Prelude.Nothing+    }++-- | The password used to encrypt the associated transcript file.+encryptionSetting_associatedTranscriptsPassword :: Lens.Lens' EncryptionSetting (Prelude.Maybe Prelude.Text)+encryptionSetting_associatedTranscriptsPassword = Lens.lens (\EncryptionSetting' {associatedTranscriptsPassword} -> associatedTranscriptsPassword) (\s@EncryptionSetting' {} a -> s {associatedTranscriptsPassword = a} :: EncryptionSetting) Prelude.. Lens.mapping Data._Sensitive++-- | The password used to encrypt the recommended bot recommendation file.+encryptionSetting_botLocaleExportPassword :: Lens.Lens' EncryptionSetting (Prelude.Maybe Prelude.Text)+encryptionSetting_botLocaleExportPassword = Lens.lens (\EncryptionSetting' {botLocaleExportPassword} -> botLocaleExportPassword) (\s@EncryptionSetting' {} a -> s {botLocaleExportPassword = a} :: EncryptionSetting) Prelude.. Lens.mapping Data._Sensitive++-- | The KMS key ARN used to encrypt the metadata associated with the bot+-- recommendation.+encryptionSetting_kmsKeyArn :: Lens.Lens' EncryptionSetting (Prelude.Maybe Prelude.Text)+encryptionSetting_kmsKeyArn = Lens.lens (\EncryptionSetting' {kmsKeyArn} -> kmsKeyArn) (\s@EncryptionSetting' {} a -> s {kmsKeyArn = a} :: EncryptionSetting)++instance Data.FromJSON EncryptionSetting where+  parseJSON =+    Data.withObject+      "EncryptionSetting"+      ( \x ->+          EncryptionSetting'+            Prelude.<$> (x Data..:? "associatedTranscriptsPassword")+            Prelude.<*> (x Data..:? "botLocaleExportPassword")+            Prelude.<*> (x Data..:? "kmsKeyArn")+      )++instance Prelude.Hashable EncryptionSetting where+  hashWithSalt _salt EncryptionSetting' {..} =+    _salt+      `Prelude.hashWithSalt` associatedTranscriptsPassword+      `Prelude.hashWithSalt` botLocaleExportPassword+      `Prelude.hashWithSalt` kmsKeyArn++instance Prelude.NFData EncryptionSetting where+  rnf EncryptionSetting' {..} =+    Prelude.rnf associatedTranscriptsPassword+      `Prelude.seq` Prelude.rnf botLocaleExportPassword+      `Prelude.seq` Prelude.rnf kmsKeyArn++instance Data.ToJSON EncryptionSetting where+  toJSON EncryptionSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("associatedTranscriptsPassword" Data..=)+              Prelude.<$> associatedTranscriptsPassword,+            ("botLocaleExportPassword" Data..=)+              Prelude.<$> botLocaleExportPassword,+            ("kmsKeyArn" Data..=) Prelude.<$> kmsKeyArn+          ]+      )
+ gen/Amazonka/LexV2Models/Types/ErrorCode.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ErrorCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ErrorCode+  ( ErrorCode+      ( ..,+        ErrorCode_DUPLICATE_INPUT,+        ErrorCode_INTERNAL_SERVER_FAILURE,+        ErrorCode_RESOURCE_ALREADY_EXISTS,+        ErrorCode_RESOURCE_DOES_NOT_EXIST+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ErrorCode = ErrorCode'+  { fromErrorCode ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ErrorCode_DUPLICATE_INPUT :: ErrorCode+pattern ErrorCode_DUPLICATE_INPUT = ErrorCode' "DUPLICATE_INPUT"++pattern ErrorCode_INTERNAL_SERVER_FAILURE :: ErrorCode+pattern ErrorCode_INTERNAL_SERVER_FAILURE = ErrorCode' "INTERNAL_SERVER_FAILURE"++pattern ErrorCode_RESOURCE_ALREADY_EXISTS :: ErrorCode+pattern ErrorCode_RESOURCE_ALREADY_EXISTS = ErrorCode' "RESOURCE_ALREADY_EXISTS"++pattern ErrorCode_RESOURCE_DOES_NOT_EXIST :: ErrorCode+pattern ErrorCode_RESOURCE_DOES_NOT_EXIST = ErrorCode' "RESOURCE_DOES_NOT_EXIST"++{-# COMPLETE+  ErrorCode_DUPLICATE_INPUT,+  ErrorCode_INTERNAL_SERVER_FAILURE,+  ErrorCode_RESOURCE_ALREADY_EXISTS,+  ErrorCode_RESOURCE_DOES_NOT_EXIST,+  ErrorCode'+  #-}
+ gen/Amazonka/LexV2Models/Types/ExportFilter.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ExportFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ExportFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.ExportFilterName+import Amazonka.LexV2Models.Types.ExportFilterOperator+import qualified Amazonka.Prelude as Prelude++-- | Filters the response form the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_ListExports.html ListExports>+-- operation+--+-- /See:/ 'newExportFilter' smart constructor.+data ExportFilter = ExportFilter'+  { -- | The name of the field to use for filtering.+    name :: ExportFilterName,+    -- | The values to use to filter the response. The values must be @Bot@,+    -- @BotLocale@, or @CustomVocabulary@.+    values :: Prelude.NonEmpty Prelude.Text,+    -- | The operator to use for the filter. Specify EQ when the @ListExports@+    -- operation should return only resource types that equal the specified+    -- value. Specify CO when the @ListExports@ operation should return+    -- resource types that contain the specified value.+    operator :: ExportFilterOperator+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'exportFilter_name' - The name of the field to use for filtering.+--+-- 'values', 'exportFilter_values' - The values to use to filter the response. The values must be @Bot@,+-- @BotLocale@, or @CustomVocabulary@.+--+-- 'operator', 'exportFilter_operator' - The operator to use for the filter. Specify EQ when the @ListExports@+-- operation should return only resource types that equal the specified+-- value. Specify CO when the @ListExports@ operation should return+-- resource types that contain the specified value.+newExportFilter ::+  -- | 'name'+  ExportFilterName ->+  -- | 'values'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'operator'+  ExportFilterOperator ->+  ExportFilter+newExportFilter pName_ pValues_ pOperator_ =+  ExportFilter'+    { name = pName_,+      values = Lens.coerced Lens.# pValues_,+      operator = pOperator_+    }++-- | The name of the field to use for filtering.+exportFilter_name :: Lens.Lens' ExportFilter ExportFilterName+exportFilter_name = Lens.lens (\ExportFilter' {name} -> name) (\s@ExportFilter' {} a -> s {name = a} :: ExportFilter)++-- | The values to use to filter the response. The values must be @Bot@,+-- @BotLocale@, or @CustomVocabulary@.+exportFilter_values :: Lens.Lens' ExportFilter (Prelude.NonEmpty Prelude.Text)+exportFilter_values = Lens.lens (\ExportFilter' {values} -> values) (\s@ExportFilter' {} a -> s {values = a} :: ExportFilter) Prelude.. Lens.coerced++-- | The operator to use for the filter. Specify EQ when the @ListExports@+-- operation should return only resource types that equal the specified+-- value. Specify CO when the @ListExports@ operation should return+-- resource types that contain the specified value.+exportFilter_operator :: Lens.Lens' ExportFilter ExportFilterOperator+exportFilter_operator = Lens.lens (\ExportFilter' {operator} -> operator) (\s@ExportFilter' {} a -> s {operator = a} :: ExportFilter)++instance Prelude.Hashable ExportFilter where+  hashWithSalt _salt ExportFilter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values+      `Prelude.hashWithSalt` operator++instance Prelude.NFData ExportFilter where+  rnf ExportFilter' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf values+      `Prelude.seq` Prelude.rnf operator++instance Data.ToJSON ExportFilter where+  toJSON ExportFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("name" Data..= name),+            Prelude.Just ("values" Data..= values),+            Prelude.Just ("operator" Data..= operator)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/ExportFilterName.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ExportFilterName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ExportFilterName+  ( ExportFilterName+      ( ..,+        ExportFilterName_ExportResourceType+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ExportFilterName = ExportFilterName'+  { fromExportFilterName ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ExportFilterName_ExportResourceType :: ExportFilterName+pattern ExportFilterName_ExportResourceType = ExportFilterName' "ExportResourceType"++{-# COMPLETE+  ExportFilterName_ExportResourceType,+  ExportFilterName'+  #-}
+ gen/Amazonka/LexV2Models/Types/ExportFilterOperator.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ExportFilterOperator+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ExportFilterOperator+  ( ExportFilterOperator+      ( ..,+        ExportFilterOperator_CO,+        ExportFilterOperator_EQ+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ExportFilterOperator = ExportFilterOperator'+  { fromExportFilterOperator ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ExportFilterOperator_CO :: ExportFilterOperator+pattern ExportFilterOperator_CO = ExportFilterOperator' "CO"++pattern ExportFilterOperator_EQ :: ExportFilterOperator+pattern ExportFilterOperator_EQ = ExportFilterOperator' "EQ"++{-# COMPLETE+  ExportFilterOperator_CO,+  ExportFilterOperator_EQ,+  ExportFilterOperator'+  #-}
+ gen/Amazonka/LexV2Models/Types/ExportResourceSpecification.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ExportResourceSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ExportResourceSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.BotExportSpecification+import Amazonka.LexV2Models.Types.BotLocaleExportSpecification+import Amazonka.LexV2Models.Types.CustomVocabularyExportSpecification+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the bot or bot locale that you want to+-- export. You can specify the @botExportSpecification@ or the+-- @botLocaleExportSpecification@, but not both.+--+-- /See:/ 'newExportResourceSpecification' smart constructor.+data ExportResourceSpecification = ExportResourceSpecification'+  { -- | Parameters for exporting a bot.+    botExportSpecification :: Prelude.Maybe BotExportSpecification,+    -- | Parameters for exporting a bot locale.+    botLocaleExportSpecification :: Prelude.Maybe BotLocaleExportSpecification,+    -- | The parameters required to export a custom vocabulary.+    customVocabularyExportSpecification :: Prelude.Maybe CustomVocabularyExportSpecification+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportResourceSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botExportSpecification', 'exportResourceSpecification_botExportSpecification' - Parameters for exporting a bot.+--+-- 'botLocaleExportSpecification', 'exportResourceSpecification_botLocaleExportSpecification' - Parameters for exporting a bot locale.+--+-- 'customVocabularyExportSpecification', 'exportResourceSpecification_customVocabularyExportSpecification' - The parameters required to export a custom vocabulary.+newExportResourceSpecification ::+  ExportResourceSpecification+newExportResourceSpecification =+  ExportResourceSpecification'+    { botExportSpecification =+        Prelude.Nothing,+      botLocaleExportSpecification = Prelude.Nothing,+      customVocabularyExportSpecification =+        Prelude.Nothing+    }++-- | Parameters for exporting a bot.+exportResourceSpecification_botExportSpecification :: Lens.Lens' ExportResourceSpecification (Prelude.Maybe BotExportSpecification)+exportResourceSpecification_botExportSpecification = Lens.lens (\ExportResourceSpecification' {botExportSpecification} -> botExportSpecification) (\s@ExportResourceSpecification' {} a -> s {botExportSpecification = a} :: ExportResourceSpecification)++-- | Parameters for exporting a bot locale.+exportResourceSpecification_botLocaleExportSpecification :: Lens.Lens' ExportResourceSpecification (Prelude.Maybe BotLocaleExportSpecification)+exportResourceSpecification_botLocaleExportSpecification = Lens.lens (\ExportResourceSpecification' {botLocaleExportSpecification} -> botLocaleExportSpecification) (\s@ExportResourceSpecification' {} a -> s {botLocaleExportSpecification = a} :: ExportResourceSpecification)++-- | The parameters required to export a custom vocabulary.+exportResourceSpecification_customVocabularyExportSpecification :: Lens.Lens' ExportResourceSpecification (Prelude.Maybe CustomVocabularyExportSpecification)+exportResourceSpecification_customVocabularyExportSpecification = Lens.lens (\ExportResourceSpecification' {customVocabularyExportSpecification} -> customVocabularyExportSpecification) (\s@ExportResourceSpecification' {} a -> s {customVocabularyExportSpecification = a} :: ExportResourceSpecification)++instance Data.FromJSON ExportResourceSpecification where+  parseJSON =+    Data.withObject+      "ExportResourceSpecification"+      ( \x ->+          ExportResourceSpecification'+            Prelude.<$> (x Data..:? "botExportSpecification")+            Prelude.<*> (x Data..:? "botLocaleExportSpecification")+            Prelude.<*> (x Data..:? "customVocabularyExportSpecification")+      )++instance Prelude.Hashable ExportResourceSpecification where+  hashWithSalt _salt ExportResourceSpecification' {..} =+    _salt+      `Prelude.hashWithSalt` botExportSpecification+      `Prelude.hashWithSalt` botLocaleExportSpecification+      `Prelude.hashWithSalt` customVocabularyExportSpecification++instance Prelude.NFData ExportResourceSpecification where+  rnf ExportResourceSpecification' {..} =+    Prelude.rnf botExportSpecification+      `Prelude.seq` Prelude.rnf botLocaleExportSpecification+      `Prelude.seq` Prelude.rnf customVocabularyExportSpecification++instance Data.ToJSON ExportResourceSpecification where+  toJSON ExportResourceSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("botExportSpecification" Data..=)+              Prelude.<$> botExportSpecification,+            ("botLocaleExportSpecification" Data..=)+              Prelude.<$> botLocaleExportSpecification,+            ("customVocabularyExportSpecification" Data..=)+              Prelude.<$> customVocabularyExportSpecification+          ]+      )
+ gen/Amazonka/LexV2Models/Types/ExportSortAttribute.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ExportSortAttribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ExportSortAttribute+  ( ExportSortAttribute+      ( ..,+        ExportSortAttribute_LastUpdatedDateTime+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ExportSortAttribute = ExportSortAttribute'+  { fromExportSortAttribute ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ExportSortAttribute_LastUpdatedDateTime :: ExportSortAttribute+pattern ExportSortAttribute_LastUpdatedDateTime = ExportSortAttribute' "LastUpdatedDateTime"++{-# COMPLETE+  ExportSortAttribute_LastUpdatedDateTime,+  ExportSortAttribute'+  #-}
+ gen/Amazonka/LexV2Models/Types/ExportSortBy.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ExportSortBy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ExportSortBy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.ExportSortAttribute+import Amazonka.LexV2Models.Types.SortOrder+import qualified Amazonka.Prelude as Prelude++-- | Provides information about sorting a list of exports.+--+-- /See:/ 'newExportSortBy' smart constructor.+data ExportSortBy = ExportSortBy'+  { -- | The export field to use for sorting.+    attribute :: ExportSortAttribute,+    -- | The order to sort the list.+    order :: SortOrder+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportSortBy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attribute', 'exportSortBy_attribute' - The export field to use for sorting.+--+-- 'order', 'exportSortBy_order' - The order to sort the list.+newExportSortBy ::+  -- | 'attribute'+  ExportSortAttribute ->+  -- | 'order'+  SortOrder ->+  ExportSortBy+newExportSortBy pAttribute_ pOrder_ =+  ExportSortBy'+    { attribute = pAttribute_,+      order = pOrder_+    }++-- | The export field to use for sorting.+exportSortBy_attribute :: Lens.Lens' ExportSortBy ExportSortAttribute+exportSortBy_attribute = Lens.lens (\ExportSortBy' {attribute} -> attribute) (\s@ExportSortBy' {} a -> s {attribute = a} :: ExportSortBy)++-- | The order to sort the list.+exportSortBy_order :: Lens.Lens' ExportSortBy SortOrder+exportSortBy_order = Lens.lens (\ExportSortBy' {order} -> order) (\s@ExportSortBy' {} a -> s {order = a} :: ExportSortBy)++instance Prelude.Hashable ExportSortBy where+  hashWithSalt _salt ExportSortBy' {..} =+    _salt+      `Prelude.hashWithSalt` attribute+      `Prelude.hashWithSalt` order++instance Prelude.NFData ExportSortBy where+  rnf ExportSortBy' {..} =+    Prelude.rnf attribute+      `Prelude.seq` Prelude.rnf order++instance Data.ToJSON ExportSortBy where+  toJSON ExportSortBy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("attribute" Data..= attribute),+            Prelude.Just ("order" Data..= order)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/ExportStatus.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ExportStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ExportStatus+  ( ExportStatus+      ( ..,+        ExportStatus_Completed,+        ExportStatus_Deleting,+        ExportStatus_Failed,+        ExportStatus_InProgress+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ExportStatus = ExportStatus'+  { fromExportStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ExportStatus_Completed :: ExportStatus+pattern ExportStatus_Completed = ExportStatus' "Completed"++pattern ExportStatus_Deleting :: ExportStatus+pattern ExportStatus_Deleting = ExportStatus' "Deleting"++pattern ExportStatus_Failed :: ExportStatus+pattern ExportStatus_Failed = ExportStatus' "Failed"++pattern ExportStatus_InProgress :: ExportStatus+pattern ExportStatus_InProgress = ExportStatus' "InProgress"++{-# COMPLETE+  ExportStatus_Completed,+  ExportStatus_Deleting,+  ExportStatus_Failed,+  ExportStatus_InProgress,+  ExportStatus'+  #-}
+ gen/Amazonka/LexV2Models/Types/ExportSummary.hs view
@@ -0,0 +1,138 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ExportSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ExportSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.ExportResourceSpecification+import Amazonka.LexV2Models.Types.ExportStatus+import Amazonka.LexV2Models.Types.ImportExportFileFormat+import qualified Amazonka.Prelude as Prelude++-- | Provides summary information about an export in an export list.+--+-- /See:/ 'newExportSummary' smart constructor.+data ExportSummary = ExportSummary'+  { -- | The date and time that the export was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The unique identifier that Amazon Lex assigned to the export.+    exportId :: Prelude.Maybe Prelude.Text,+    -- | The status of the export. When the status is @Completed@ the export is+    -- ready to download.+    exportStatus :: Prelude.Maybe ExportStatus,+    -- | The file format used in the export files.+    fileFormat :: Prelude.Maybe ImportExportFileFormat,+    -- | The date and time that the export was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | Information about the bot or bot locale that was exported.+    resourceSpecification :: Prelude.Maybe ExportResourceSpecification+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExportSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'exportSummary_creationDateTime' - The date and time that the export was created.+--+-- 'exportId', 'exportSummary_exportId' - The unique identifier that Amazon Lex assigned to the export.+--+-- 'exportStatus', 'exportSummary_exportStatus' - The status of the export. When the status is @Completed@ the export is+-- ready to download.+--+-- 'fileFormat', 'exportSummary_fileFormat' - The file format used in the export files.+--+-- 'lastUpdatedDateTime', 'exportSummary_lastUpdatedDateTime' - The date and time that the export was last updated.+--+-- 'resourceSpecification', 'exportSummary_resourceSpecification' - Information about the bot or bot locale that was exported.+newExportSummary ::+  ExportSummary+newExportSummary =+  ExportSummary'+    { creationDateTime = Prelude.Nothing,+      exportId = Prelude.Nothing,+      exportStatus = Prelude.Nothing,+      fileFormat = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      resourceSpecification = Prelude.Nothing+    }++-- | The date and time that the export was created.+exportSummary_creationDateTime :: Lens.Lens' ExportSummary (Prelude.Maybe Prelude.UTCTime)+exportSummary_creationDateTime = Lens.lens (\ExportSummary' {creationDateTime} -> creationDateTime) (\s@ExportSummary' {} a -> s {creationDateTime = a} :: ExportSummary) Prelude.. Lens.mapping Data._Time++-- | The unique identifier that Amazon Lex assigned to the export.+exportSummary_exportId :: Lens.Lens' ExportSummary (Prelude.Maybe Prelude.Text)+exportSummary_exportId = Lens.lens (\ExportSummary' {exportId} -> exportId) (\s@ExportSummary' {} a -> s {exportId = a} :: ExportSummary)++-- | The status of the export. When the status is @Completed@ the export is+-- ready to download.+exportSummary_exportStatus :: Lens.Lens' ExportSummary (Prelude.Maybe ExportStatus)+exportSummary_exportStatus = Lens.lens (\ExportSummary' {exportStatus} -> exportStatus) (\s@ExportSummary' {} a -> s {exportStatus = a} :: ExportSummary)++-- | The file format used in the export files.+exportSummary_fileFormat :: Lens.Lens' ExportSummary (Prelude.Maybe ImportExportFileFormat)+exportSummary_fileFormat = Lens.lens (\ExportSummary' {fileFormat} -> fileFormat) (\s@ExportSummary' {} a -> s {fileFormat = a} :: ExportSummary)++-- | The date and time that the export was last updated.+exportSummary_lastUpdatedDateTime :: Lens.Lens' ExportSummary (Prelude.Maybe Prelude.UTCTime)+exportSummary_lastUpdatedDateTime = Lens.lens (\ExportSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@ExportSummary' {} a -> s {lastUpdatedDateTime = a} :: ExportSummary) Prelude.. Lens.mapping Data._Time++-- | Information about the bot or bot locale that was exported.+exportSummary_resourceSpecification :: Lens.Lens' ExportSummary (Prelude.Maybe ExportResourceSpecification)+exportSummary_resourceSpecification = Lens.lens (\ExportSummary' {resourceSpecification} -> resourceSpecification) (\s@ExportSummary' {} a -> s {resourceSpecification = a} :: ExportSummary)++instance Data.FromJSON ExportSummary where+  parseJSON =+    Data.withObject+      "ExportSummary"+      ( \x ->+          ExportSummary'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "exportId")+            Prelude.<*> (x Data..:? "exportStatus")+            Prelude.<*> (x Data..:? "fileFormat")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "resourceSpecification")+      )++instance Prelude.Hashable ExportSummary where+  hashWithSalt _salt ExportSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` exportId+      `Prelude.hashWithSalt` exportStatus+      `Prelude.hashWithSalt` fileFormat+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` resourceSpecification++instance Prelude.NFData ExportSummary where+  rnf ExportSummary' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf exportId+      `Prelude.seq` Prelude.rnf exportStatus+      `Prelude.seq` Prelude.rnf fileFormat+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf resourceSpecification
+ gen/Amazonka/LexV2Models/Types/ExternalSourceSetting.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ExternalSourceSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ExternalSourceSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.GrammarSlotTypeSetting+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the external source of the slot type\'s+-- definition.+--+-- /See:/ 'newExternalSourceSetting' smart constructor.+data ExternalSourceSetting = ExternalSourceSetting'+  { -- | Settings required for a slot type based on a grammar that you provide.+    grammarSlotTypeSetting :: Prelude.Maybe GrammarSlotTypeSetting+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExternalSourceSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'grammarSlotTypeSetting', 'externalSourceSetting_grammarSlotTypeSetting' - Settings required for a slot type based on a grammar that you provide.+newExternalSourceSetting ::+  ExternalSourceSetting+newExternalSourceSetting =+  ExternalSourceSetting'+    { grammarSlotTypeSetting =+        Prelude.Nothing+    }++-- | Settings required for a slot type based on a grammar that you provide.+externalSourceSetting_grammarSlotTypeSetting :: Lens.Lens' ExternalSourceSetting (Prelude.Maybe GrammarSlotTypeSetting)+externalSourceSetting_grammarSlotTypeSetting = Lens.lens (\ExternalSourceSetting' {grammarSlotTypeSetting} -> grammarSlotTypeSetting) (\s@ExternalSourceSetting' {} a -> s {grammarSlotTypeSetting = a} :: ExternalSourceSetting)++instance Data.FromJSON ExternalSourceSetting where+  parseJSON =+    Data.withObject+      "ExternalSourceSetting"+      ( \x ->+          ExternalSourceSetting'+            Prelude.<$> (x Data..:? "grammarSlotTypeSetting")+      )++instance Prelude.Hashable ExternalSourceSetting where+  hashWithSalt _salt ExternalSourceSetting' {..} =+    _salt `Prelude.hashWithSalt` grammarSlotTypeSetting++instance Prelude.NFData ExternalSourceSetting where+  rnf ExternalSourceSetting' {..} =+    Prelude.rnf grammarSlotTypeSetting++instance Data.ToJSON ExternalSourceSetting where+  toJSON ExternalSourceSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("grammarSlotTypeSetting" Data..=)+              Prelude.<$> grammarSlotTypeSetting+          ]+      )
+ gen/Amazonka/LexV2Models/Types/FailedCustomVocabularyItem.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.FailedCustomVocabularyItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.FailedCustomVocabularyItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.ErrorCode+import qualified Amazonka.Prelude as Prelude++-- | The unique failed custom vocabulary item from the custom vocabulary+-- list.+--+-- /See:/ 'newFailedCustomVocabularyItem' smart constructor.+data FailedCustomVocabularyItem = FailedCustomVocabularyItem'+  { -- | The unique error code for the failed custom vocabulary item from the+    -- custom vocabulary list.+    errorCode :: Prelude.Maybe ErrorCode,+    -- | The error message for the failed custom vocabulary item from the custom+    -- vocabulary list.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The unique item identifer for the failed custom vocabulary item from the+    -- custom vocabulary list.+    itemId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FailedCustomVocabularyItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errorCode', 'failedCustomVocabularyItem_errorCode' - The unique error code for the failed custom vocabulary item from the+-- custom vocabulary list.+--+-- 'errorMessage', 'failedCustomVocabularyItem_errorMessage' - The error message for the failed custom vocabulary item from the custom+-- vocabulary list.+--+-- 'itemId', 'failedCustomVocabularyItem_itemId' - The unique item identifer for the failed custom vocabulary item from the+-- custom vocabulary list.+newFailedCustomVocabularyItem ::+  FailedCustomVocabularyItem+newFailedCustomVocabularyItem =+  FailedCustomVocabularyItem'+    { errorCode =+        Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      itemId = Prelude.Nothing+    }++-- | The unique error code for the failed custom vocabulary item from the+-- custom vocabulary list.+failedCustomVocabularyItem_errorCode :: Lens.Lens' FailedCustomVocabularyItem (Prelude.Maybe ErrorCode)+failedCustomVocabularyItem_errorCode = Lens.lens (\FailedCustomVocabularyItem' {errorCode} -> errorCode) (\s@FailedCustomVocabularyItem' {} a -> s {errorCode = a} :: FailedCustomVocabularyItem)++-- | The error message for the failed custom vocabulary item from the custom+-- vocabulary list.+failedCustomVocabularyItem_errorMessage :: Lens.Lens' FailedCustomVocabularyItem (Prelude.Maybe Prelude.Text)+failedCustomVocabularyItem_errorMessage = Lens.lens (\FailedCustomVocabularyItem' {errorMessage} -> errorMessage) (\s@FailedCustomVocabularyItem' {} a -> s {errorMessage = a} :: FailedCustomVocabularyItem)++-- | The unique item identifer for the failed custom vocabulary item from the+-- custom vocabulary list.+failedCustomVocabularyItem_itemId :: Lens.Lens' FailedCustomVocabularyItem (Prelude.Maybe Prelude.Text)+failedCustomVocabularyItem_itemId = Lens.lens (\FailedCustomVocabularyItem' {itemId} -> itemId) (\s@FailedCustomVocabularyItem' {} a -> s {itemId = a} :: FailedCustomVocabularyItem)++instance Data.FromJSON FailedCustomVocabularyItem where+  parseJSON =+    Data.withObject+      "FailedCustomVocabularyItem"+      ( \x ->+          FailedCustomVocabularyItem'+            Prelude.<$> (x Data..:? "errorCode")+            Prelude.<*> (x Data..:? "errorMessage")+            Prelude.<*> (x Data..:? "itemId")+      )++instance Prelude.Hashable FailedCustomVocabularyItem where+  hashWithSalt _salt FailedCustomVocabularyItem' {..} =+    _salt+      `Prelude.hashWithSalt` errorCode+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` itemId++instance Prelude.NFData FailedCustomVocabularyItem where+  rnf FailedCustomVocabularyItem' {..} =+    Prelude.rnf errorCode+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf itemId
+ gen/Amazonka/LexV2Models/Types/FulfillmentCodeHookSettings.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.FulfillmentCodeHookSettings+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.FulfillmentCodeHookSettings where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.FulfillmentUpdatesSpecification+import Amazonka.LexV2Models.Types.PostFulfillmentStatusSpecification+import qualified Amazonka.Prelude as Prelude++-- | Determines if a Lambda function should be invoked for a specific intent.+--+-- /See:/ 'newFulfillmentCodeHookSettings' smart constructor.+data FulfillmentCodeHookSettings = FulfillmentCodeHookSettings'+  { -- | Determines whether the fulfillment code hook is used. When @active@ is+    -- false, the code hook doesn\'t run.+    active :: Prelude.Maybe Prelude.Bool,+    -- | Provides settings for update messages sent to the user for long-running+    -- Lambda fulfillment functions. Fulfillment updates can be used only with+    -- streaming conversations.+    fulfillmentUpdatesSpecification :: Prelude.Maybe FulfillmentUpdatesSpecification,+    -- | Provides settings for messages sent to the user for after the Lambda+    -- fulfillment function completes. Post-fulfillment messages can be sent+    -- for both streaming and non-streaming conversations.+    postFulfillmentStatusSpecification :: Prelude.Maybe PostFulfillmentStatusSpecification,+    -- | Indicates whether a Lambda function should be invoked to fulfill a+    -- specific intent.+    enabled :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FulfillmentCodeHookSettings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'active', 'fulfillmentCodeHookSettings_active' - Determines whether the fulfillment code hook is used. When @active@ is+-- false, the code hook doesn\'t run.+--+-- 'fulfillmentUpdatesSpecification', 'fulfillmentCodeHookSettings_fulfillmentUpdatesSpecification' - Provides settings for update messages sent to the user for long-running+-- Lambda fulfillment functions. Fulfillment updates can be used only with+-- streaming conversations.+--+-- 'postFulfillmentStatusSpecification', 'fulfillmentCodeHookSettings_postFulfillmentStatusSpecification' - Provides settings for messages sent to the user for after the Lambda+-- fulfillment function completes. Post-fulfillment messages can be sent+-- for both streaming and non-streaming conversations.+--+-- 'enabled', 'fulfillmentCodeHookSettings_enabled' - Indicates whether a Lambda function should be invoked to fulfill a+-- specific intent.+newFulfillmentCodeHookSettings ::+  -- | 'enabled'+  Prelude.Bool ->+  FulfillmentCodeHookSettings+newFulfillmentCodeHookSettings pEnabled_ =+  FulfillmentCodeHookSettings'+    { active =+        Prelude.Nothing,+      fulfillmentUpdatesSpecification =+        Prelude.Nothing,+      postFulfillmentStatusSpecification =+        Prelude.Nothing,+      enabled = pEnabled_+    }++-- | Determines whether the fulfillment code hook is used. When @active@ is+-- false, the code hook doesn\'t run.+fulfillmentCodeHookSettings_active :: Lens.Lens' FulfillmentCodeHookSettings (Prelude.Maybe Prelude.Bool)+fulfillmentCodeHookSettings_active = Lens.lens (\FulfillmentCodeHookSettings' {active} -> active) (\s@FulfillmentCodeHookSettings' {} a -> s {active = a} :: FulfillmentCodeHookSettings)++-- | Provides settings for update messages sent to the user for long-running+-- Lambda fulfillment functions. Fulfillment updates can be used only with+-- streaming conversations.+fulfillmentCodeHookSettings_fulfillmentUpdatesSpecification :: Lens.Lens' FulfillmentCodeHookSettings (Prelude.Maybe FulfillmentUpdatesSpecification)+fulfillmentCodeHookSettings_fulfillmentUpdatesSpecification = Lens.lens (\FulfillmentCodeHookSettings' {fulfillmentUpdatesSpecification} -> fulfillmentUpdatesSpecification) (\s@FulfillmentCodeHookSettings' {} a -> s {fulfillmentUpdatesSpecification = a} :: FulfillmentCodeHookSettings)++-- | Provides settings for messages sent to the user for after the Lambda+-- fulfillment function completes. Post-fulfillment messages can be sent+-- for both streaming and non-streaming conversations.+fulfillmentCodeHookSettings_postFulfillmentStatusSpecification :: Lens.Lens' FulfillmentCodeHookSettings (Prelude.Maybe PostFulfillmentStatusSpecification)+fulfillmentCodeHookSettings_postFulfillmentStatusSpecification = Lens.lens (\FulfillmentCodeHookSettings' {postFulfillmentStatusSpecification} -> postFulfillmentStatusSpecification) (\s@FulfillmentCodeHookSettings' {} a -> s {postFulfillmentStatusSpecification = a} :: FulfillmentCodeHookSettings)++-- | Indicates whether a Lambda function should be invoked to fulfill a+-- specific intent.+fulfillmentCodeHookSettings_enabled :: Lens.Lens' FulfillmentCodeHookSettings Prelude.Bool+fulfillmentCodeHookSettings_enabled = Lens.lens (\FulfillmentCodeHookSettings' {enabled} -> enabled) (\s@FulfillmentCodeHookSettings' {} a -> s {enabled = a} :: FulfillmentCodeHookSettings)++instance Data.FromJSON FulfillmentCodeHookSettings where+  parseJSON =+    Data.withObject+      "FulfillmentCodeHookSettings"+      ( \x ->+          FulfillmentCodeHookSettings'+            Prelude.<$> (x Data..:? "active")+            Prelude.<*> (x Data..:? "fulfillmentUpdatesSpecification")+            Prelude.<*> (x Data..:? "postFulfillmentStatusSpecification")+            Prelude.<*> (x Data..: "enabled")+      )++instance Prelude.Hashable FulfillmentCodeHookSettings where+  hashWithSalt _salt FulfillmentCodeHookSettings' {..} =+    _salt+      `Prelude.hashWithSalt` active+      `Prelude.hashWithSalt` fulfillmentUpdatesSpecification+      `Prelude.hashWithSalt` postFulfillmentStatusSpecification+      `Prelude.hashWithSalt` enabled++instance Prelude.NFData FulfillmentCodeHookSettings where+  rnf FulfillmentCodeHookSettings' {..} =+    Prelude.rnf active+      `Prelude.seq` Prelude.rnf fulfillmentUpdatesSpecification+      `Prelude.seq` Prelude.rnf postFulfillmentStatusSpecification+      `Prelude.seq` Prelude.rnf enabled++instance Data.ToJSON FulfillmentCodeHookSettings where+  toJSON FulfillmentCodeHookSettings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("active" Data..=) Prelude.<$> active,+            ("fulfillmentUpdatesSpecification" Data..=)+              Prelude.<$> fulfillmentUpdatesSpecification,+            ("postFulfillmentStatusSpecification" Data..=)+              Prelude.<$> postFulfillmentStatusSpecification,+            Prelude.Just ("enabled" Data..= enabled)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/FulfillmentStartResponseSpecification.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.FulfillmentStartResponseSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.FulfillmentStartResponseSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.MessageGroup+import qualified Amazonka.Prelude as Prelude++-- | Provides settings for a message that is sent to the user when a+-- fulfillment Lambda function starts running.+--+-- /See:/ 'newFulfillmentStartResponseSpecification' smart constructor.+data FulfillmentStartResponseSpecification = FulfillmentStartResponseSpecification'+  { -- | Determines whether the user can interrupt the start message while it is+    -- playing.+    allowInterrupt :: Prelude.Maybe Prelude.Bool,+    -- | The delay between when the Lambda fulfillment function starts running+    -- and the start message is played. If the Lambda function returns before+    -- the delay is over, the start message isn\'t played.+    delayInSeconds :: Prelude.Natural,+    -- | One to 5 message groups that contain start messages. Amazon Lex chooses+    -- one of the messages to play to the user.+    messageGroups :: Prelude.NonEmpty MessageGroup+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FulfillmentStartResponseSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowInterrupt', 'fulfillmentStartResponseSpecification_allowInterrupt' - Determines whether the user can interrupt the start message while it is+-- playing.+--+-- 'delayInSeconds', 'fulfillmentStartResponseSpecification_delayInSeconds' - The delay between when the Lambda fulfillment function starts running+-- and the start message is played. If the Lambda function returns before+-- the delay is over, the start message isn\'t played.+--+-- 'messageGroups', 'fulfillmentStartResponseSpecification_messageGroups' - One to 5 message groups that contain start messages. Amazon Lex chooses+-- one of the messages to play to the user.+newFulfillmentStartResponseSpecification ::+  -- | 'delayInSeconds'+  Prelude.Natural ->+  -- | 'messageGroups'+  Prelude.NonEmpty MessageGroup ->+  FulfillmentStartResponseSpecification+newFulfillmentStartResponseSpecification+  pDelayInSeconds_+  pMessageGroups_ =+    FulfillmentStartResponseSpecification'+      { allowInterrupt =+          Prelude.Nothing,+        delayInSeconds = pDelayInSeconds_,+        messageGroups =+          Lens.coerced+            Lens.# pMessageGroups_+      }++-- | Determines whether the user can interrupt the start message while it is+-- playing.+fulfillmentStartResponseSpecification_allowInterrupt :: Lens.Lens' FulfillmentStartResponseSpecification (Prelude.Maybe Prelude.Bool)+fulfillmentStartResponseSpecification_allowInterrupt = Lens.lens (\FulfillmentStartResponseSpecification' {allowInterrupt} -> allowInterrupt) (\s@FulfillmentStartResponseSpecification' {} a -> s {allowInterrupt = a} :: FulfillmentStartResponseSpecification)++-- | The delay between when the Lambda fulfillment function starts running+-- and the start message is played. If the Lambda function returns before+-- the delay is over, the start message isn\'t played.+fulfillmentStartResponseSpecification_delayInSeconds :: Lens.Lens' FulfillmentStartResponseSpecification Prelude.Natural+fulfillmentStartResponseSpecification_delayInSeconds = Lens.lens (\FulfillmentStartResponseSpecification' {delayInSeconds} -> delayInSeconds) (\s@FulfillmentStartResponseSpecification' {} a -> s {delayInSeconds = a} :: FulfillmentStartResponseSpecification)++-- | One to 5 message groups that contain start messages. Amazon Lex chooses+-- one of the messages to play to the user.+fulfillmentStartResponseSpecification_messageGroups :: Lens.Lens' FulfillmentStartResponseSpecification (Prelude.NonEmpty MessageGroup)+fulfillmentStartResponseSpecification_messageGroups = Lens.lens (\FulfillmentStartResponseSpecification' {messageGroups} -> messageGroups) (\s@FulfillmentStartResponseSpecification' {} a -> s {messageGroups = a} :: FulfillmentStartResponseSpecification) Prelude.. Lens.coerced++instance+  Data.FromJSON+    FulfillmentStartResponseSpecification+  where+  parseJSON =+    Data.withObject+      "FulfillmentStartResponseSpecification"+      ( \x ->+          FulfillmentStartResponseSpecification'+            Prelude.<$> (x Data..:? "allowInterrupt")+            Prelude.<*> (x Data..: "delayInSeconds")+            Prelude.<*> (x Data..: "messageGroups")+      )++instance+  Prelude.Hashable+    FulfillmentStartResponseSpecification+  where+  hashWithSalt+    _salt+    FulfillmentStartResponseSpecification' {..} =+      _salt+        `Prelude.hashWithSalt` allowInterrupt+        `Prelude.hashWithSalt` delayInSeconds+        `Prelude.hashWithSalt` messageGroups++instance+  Prelude.NFData+    FulfillmentStartResponseSpecification+  where+  rnf FulfillmentStartResponseSpecification' {..} =+    Prelude.rnf allowInterrupt+      `Prelude.seq` Prelude.rnf delayInSeconds+      `Prelude.seq` Prelude.rnf messageGroups++instance+  Data.ToJSON+    FulfillmentStartResponseSpecification+  where+  toJSON FulfillmentStartResponseSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("allowInterrupt" Data..=)+              Prelude.<$> allowInterrupt,+            Prelude.Just+              ("delayInSeconds" Data..= delayInSeconds),+            Prelude.Just+              ("messageGroups" Data..= messageGroups)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/FulfillmentUpdateResponseSpecification.hs view
@@ -0,0 +1,150 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.FulfillmentUpdateResponseSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.FulfillmentUpdateResponseSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.MessageGroup+import qualified Amazonka.Prelude as Prelude++-- | Provides settings for a message that is sent periodically to the user+-- while a fulfillment Lambda function is running.+--+-- /See:/ 'newFulfillmentUpdateResponseSpecification' smart constructor.+data FulfillmentUpdateResponseSpecification = FulfillmentUpdateResponseSpecification'+  { -- | Determines whether the user can interrupt an update message while it is+    -- playing.+    allowInterrupt :: Prelude.Maybe Prelude.Bool,+    -- | The frequency that a message is sent to the user. When the period ends,+    -- Amazon Lex chooses a message from the message groups and plays it to the+    -- user. If the fulfillment Lambda returns before the first period ends, an+    -- update message is not played to the user.+    frequencyInSeconds :: Prelude.Natural,+    -- | One to 5 message groups that contain update messages. Amazon Lex chooses+    -- one of the messages to play to the user.+    messageGroups :: Prelude.NonEmpty MessageGroup+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FulfillmentUpdateResponseSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowInterrupt', 'fulfillmentUpdateResponseSpecification_allowInterrupt' - Determines whether the user can interrupt an update message while it is+-- playing.+--+-- 'frequencyInSeconds', 'fulfillmentUpdateResponseSpecification_frequencyInSeconds' - The frequency that a message is sent to the user. When the period ends,+-- Amazon Lex chooses a message from the message groups and plays it to the+-- user. If the fulfillment Lambda returns before the first period ends, an+-- update message is not played to the user.+--+-- 'messageGroups', 'fulfillmentUpdateResponseSpecification_messageGroups' - One to 5 message groups that contain update messages. Amazon Lex chooses+-- one of the messages to play to the user.+newFulfillmentUpdateResponseSpecification ::+  -- | 'frequencyInSeconds'+  Prelude.Natural ->+  -- | 'messageGroups'+  Prelude.NonEmpty MessageGroup ->+  FulfillmentUpdateResponseSpecification+newFulfillmentUpdateResponseSpecification+  pFrequencyInSeconds_+  pMessageGroups_ =+    FulfillmentUpdateResponseSpecification'+      { allowInterrupt =+          Prelude.Nothing,+        frequencyInSeconds =+          pFrequencyInSeconds_,+        messageGroups =+          Lens.coerced+            Lens.# pMessageGroups_+      }++-- | Determines whether the user can interrupt an update message while it is+-- playing.+fulfillmentUpdateResponseSpecification_allowInterrupt :: Lens.Lens' FulfillmentUpdateResponseSpecification (Prelude.Maybe Prelude.Bool)+fulfillmentUpdateResponseSpecification_allowInterrupt = Lens.lens (\FulfillmentUpdateResponseSpecification' {allowInterrupt} -> allowInterrupt) (\s@FulfillmentUpdateResponseSpecification' {} a -> s {allowInterrupt = a} :: FulfillmentUpdateResponseSpecification)++-- | The frequency that a message is sent to the user. When the period ends,+-- Amazon Lex chooses a message from the message groups and plays it to the+-- user. If the fulfillment Lambda returns before the first period ends, an+-- update message is not played to the user.+fulfillmentUpdateResponseSpecification_frequencyInSeconds :: Lens.Lens' FulfillmentUpdateResponseSpecification Prelude.Natural+fulfillmentUpdateResponseSpecification_frequencyInSeconds = Lens.lens (\FulfillmentUpdateResponseSpecification' {frequencyInSeconds} -> frequencyInSeconds) (\s@FulfillmentUpdateResponseSpecification' {} a -> s {frequencyInSeconds = a} :: FulfillmentUpdateResponseSpecification)++-- | One to 5 message groups that contain update messages. Amazon Lex chooses+-- one of the messages to play to the user.+fulfillmentUpdateResponseSpecification_messageGroups :: Lens.Lens' FulfillmentUpdateResponseSpecification (Prelude.NonEmpty MessageGroup)+fulfillmentUpdateResponseSpecification_messageGroups = Lens.lens (\FulfillmentUpdateResponseSpecification' {messageGroups} -> messageGroups) (\s@FulfillmentUpdateResponseSpecification' {} a -> s {messageGroups = a} :: FulfillmentUpdateResponseSpecification) Prelude.. Lens.coerced++instance+  Data.FromJSON+    FulfillmentUpdateResponseSpecification+  where+  parseJSON =+    Data.withObject+      "FulfillmentUpdateResponseSpecification"+      ( \x ->+          FulfillmentUpdateResponseSpecification'+            Prelude.<$> (x Data..:? "allowInterrupt")+            Prelude.<*> (x Data..: "frequencyInSeconds")+            Prelude.<*> (x Data..: "messageGroups")+      )++instance+  Prelude.Hashable+    FulfillmentUpdateResponseSpecification+  where+  hashWithSalt+    _salt+    FulfillmentUpdateResponseSpecification' {..} =+      _salt+        `Prelude.hashWithSalt` allowInterrupt+        `Prelude.hashWithSalt` frequencyInSeconds+        `Prelude.hashWithSalt` messageGroups++instance+  Prelude.NFData+    FulfillmentUpdateResponseSpecification+  where+  rnf FulfillmentUpdateResponseSpecification' {..} =+    Prelude.rnf allowInterrupt+      `Prelude.seq` Prelude.rnf frequencyInSeconds+      `Prelude.seq` Prelude.rnf messageGroups++instance+  Data.ToJSON+    FulfillmentUpdateResponseSpecification+  where+  toJSON FulfillmentUpdateResponseSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("allowInterrupt" Data..=)+              Prelude.<$> allowInterrupt,+            Prelude.Just+              ("frequencyInSeconds" Data..= frequencyInSeconds),+            Prelude.Just+              ("messageGroups" Data..= messageGroups)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/FulfillmentUpdatesSpecification.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.FulfillmentUpdatesSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.FulfillmentUpdatesSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.FulfillmentStartResponseSpecification+import Amazonka.LexV2Models.Types.FulfillmentUpdateResponseSpecification+import qualified Amazonka.Prelude as Prelude++-- | Provides information for updating the user on the progress of fulfilling+-- an intent.+--+-- /See:/ 'newFulfillmentUpdatesSpecification' smart constructor.+data FulfillmentUpdatesSpecification = FulfillmentUpdatesSpecification'+  { -- | Provides configuration information for the message sent to users when+    -- the fulfillment Lambda functions starts running.+    startResponse :: Prelude.Maybe FulfillmentStartResponseSpecification,+    -- | The length of time that the fulfillment Lambda function should run+    -- before it times out.+    timeoutInSeconds :: Prelude.Maybe Prelude.Natural,+    -- | Provides configuration information for messages sent periodically to the+    -- user while the fulfillment Lambda function is running.+    updateResponse :: Prelude.Maybe FulfillmentUpdateResponseSpecification,+    -- | Determines whether fulfillment updates are sent to the user. When this+    -- field is true, updates are sent.+    --+    -- If the @active@ field is set to true, the @startResponse@,+    -- @updateResponse@, and @timeoutInSeconds@ fields are required.+    active :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FulfillmentUpdatesSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'startResponse', 'fulfillmentUpdatesSpecification_startResponse' - Provides configuration information for the message sent to users when+-- the fulfillment Lambda functions starts running.+--+-- 'timeoutInSeconds', 'fulfillmentUpdatesSpecification_timeoutInSeconds' - The length of time that the fulfillment Lambda function should run+-- before it times out.+--+-- 'updateResponse', 'fulfillmentUpdatesSpecification_updateResponse' - Provides configuration information for messages sent periodically to the+-- user while the fulfillment Lambda function is running.+--+-- 'active', 'fulfillmentUpdatesSpecification_active' - Determines whether fulfillment updates are sent to the user. When this+-- field is true, updates are sent.+--+-- If the @active@ field is set to true, the @startResponse@,+-- @updateResponse@, and @timeoutInSeconds@ fields are required.+newFulfillmentUpdatesSpecification ::+  -- | 'active'+  Prelude.Bool ->+  FulfillmentUpdatesSpecification+newFulfillmentUpdatesSpecification pActive_ =+  FulfillmentUpdatesSpecification'+    { startResponse =+        Prelude.Nothing,+      timeoutInSeconds = Prelude.Nothing,+      updateResponse = Prelude.Nothing,+      active = pActive_+    }++-- | Provides configuration information for the message sent to users when+-- the fulfillment Lambda functions starts running.+fulfillmentUpdatesSpecification_startResponse :: Lens.Lens' FulfillmentUpdatesSpecification (Prelude.Maybe FulfillmentStartResponseSpecification)+fulfillmentUpdatesSpecification_startResponse = Lens.lens (\FulfillmentUpdatesSpecification' {startResponse} -> startResponse) (\s@FulfillmentUpdatesSpecification' {} a -> s {startResponse = a} :: FulfillmentUpdatesSpecification)++-- | The length of time that the fulfillment Lambda function should run+-- before it times out.+fulfillmentUpdatesSpecification_timeoutInSeconds :: Lens.Lens' FulfillmentUpdatesSpecification (Prelude.Maybe Prelude.Natural)+fulfillmentUpdatesSpecification_timeoutInSeconds = Lens.lens (\FulfillmentUpdatesSpecification' {timeoutInSeconds} -> timeoutInSeconds) (\s@FulfillmentUpdatesSpecification' {} a -> s {timeoutInSeconds = a} :: FulfillmentUpdatesSpecification)++-- | Provides configuration information for messages sent periodically to the+-- user while the fulfillment Lambda function is running.+fulfillmentUpdatesSpecification_updateResponse :: Lens.Lens' FulfillmentUpdatesSpecification (Prelude.Maybe FulfillmentUpdateResponseSpecification)+fulfillmentUpdatesSpecification_updateResponse = Lens.lens (\FulfillmentUpdatesSpecification' {updateResponse} -> updateResponse) (\s@FulfillmentUpdatesSpecification' {} a -> s {updateResponse = a} :: FulfillmentUpdatesSpecification)++-- | Determines whether fulfillment updates are sent to the user. When this+-- field is true, updates are sent.+--+-- If the @active@ field is set to true, the @startResponse@,+-- @updateResponse@, and @timeoutInSeconds@ fields are required.+fulfillmentUpdatesSpecification_active :: Lens.Lens' FulfillmentUpdatesSpecification Prelude.Bool+fulfillmentUpdatesSpecification_active = Lens.lens (\FulfillmentUpdatesSpecification' {active} -> active) (\s@FulfillmentUpdatesSpecification' {} a -> s {active = a} :: FulfillmentUpdatesSpecification)++instance+  Data.FromJSON+    FulfillmentUpdatesSpecification+  where+  parseJSON =+    Data.withObject+      "FulfillmentUpdatesSpecification"+      ( \x ->+          FulfillmentUpdatesSpecification'+            Prelude.<$> (x Data..:? "startResponse")+            Prelude.<*> (x Data..:? "timeoutInSeconds")+            Prelude.<*> (x Data..:? "updateResponse")+            Prelude.<*> (x Data..: "active")+      )++instance+  Prelude.Hashable+    FulfillmentUpdatesSpecification+  where+  hashWithSalt+    _salt+    FulfillmentUpdatesSpecification' {..} =+      _salt+        `Prelude.hashWithSalt` startResponse+        `Prelude.hashWithSalt` timeoutInSeconds+        `Prelude.hashWithSalt` updateResponse+        `Prelude.hashWithSalt` active++instance+  Prelude.NFData+    FulfillmentUpdatesSpecification+  where+  rnf FulfillmentUpdatesSpecification' {..} =+    Prelude.rnf startResponse+      `Prelude.seq` Prelude.rnf timeoutInSeconds+      `Prelude.seq` Prelude.rnf updateResponse+      `Prelude.seq` Prelude.rnf active++instance Data.ToJSON FulfillmentUpdatesSpecification where+  toJSON FulfillmentUpdatesSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("startResponse" Data..=) Prelude.<$> startResponse,+            ("timeoutInSeconds" Data..=)+              Prelude.<$> timeoutInSeconds,+            ("updateResponse" Data..=)+              Prelude.<$> updateResponse,+            Prelude.Just ("active" Data..= active)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/GrammarSlotTypeSetting.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.GrammarSlotTypeSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.GrammarSlotTypeSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.GrammarSlotTypeSource+import qualified Amazonka.Prelude as Prelude++-- | Settings requried for a slot type based on a grammar that you provide.+--+-- /See:/ 'newGrammarSlotTypeSetting' smart constructor.+data GrammarSlotTypeSetting = GrammarSlotTypeSetting'+  { -- | The source of the grammar used to create the slot type.+    source :: Prelude.Maybe GrammarSlotTypeSource+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrammarSlotTypeSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'source', 'grammarSlotTypeSetting_source' - The source of the grammar used to create the slot type.+newGrammarSlotTypeSetting ::+  GrammarSlotTypeSetting+newGrammarSlotTypeSetting =+  GrammarSlotTypeSetting' {source = Prelude.Nothing}++-- | The source of the grammar used to create the slot type.+grammarSlotTypeSetting_source :: Lens.Lens' GrammarSlotTypeSetting (Prelude.Maybe GrammarSlotTypeSource)+grammarSlotTypeSetting_source = Lens.lens (\GrammarSlotTypeSetting' {source} -> source) (\s@GrammarSlotTypeSetting' {} a -> s {source = a} :: GrammarSlotTypeSetting)++instance Data.FromJSON GrammarSlotTypeSetting where+  parseJSON =+    Data.withObject+      "GrammarSlotTypeSetting"+      ( \x ->+          GrammarSlotTypeSetting'+            Prelude.<$> (x Data..:? "source")+      )++instance Prelude.Hashable GrammarSlotTypeSetting where+  hashWithSalt _salt GrammarSlotTypeSetting' {..} =+    _salt `Prelude.hashWithSalt` source++instance Prelude.NFData GrammarSlotTypeSetting where+  rnf GrammarSlotTypeSetting' {..} = Prelude.rnf source++instance Data.ToJSON GrammarSlotTypeSetting where+  toJSON GrammarSlotTypeSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [("source" Data..=) Prelude.<$> source]+      )
+ gen/Amazonka/LexV2Models/Types/GrammarSlotTypeSource.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.GrammarSlotTypeSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.GrammarSlotTypeSource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes the Amazon S3 bucket name and location for the grammar that is+-- the source for the slot type.+--+-- /See:/ 'newGrammarSlotTypeSource' smart constructor.+data GrammarSlotTypeSource = GrammarSlotTypeSource'+  { -- | The Amazon KMS key required to decrypt the contents of the grammar, if+    -- any.+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The name of the S3 bucket that contains the grammar source.+    s3BucketName :: Prelude.Text,+    -- | The path to the grammar in the S3 bucket.+    s3ObjectKey :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GrammarSlotTypeSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'kmsKeyArn', 'grammarSlotTypeSource_kmsKeyArn' - The Amazon KMS key required to decrypt the contents of the grammar, if+-- any.+--+-- 's3BucketName', 'grammarSlotTypeSource_s3BucketName' - The name of the S3 bucket that contains the grammar source.+--+-- 's3ObjectKey', 'grammarSlotTypeSource_s3ObjectKey' - The path to the grammar in the S3 bucket.+newGrammarSlotTypeSource ::+  -- | 's3BucketName'+  Prelude.Text ->+  -- | 's3ObjectKey'+  Prelude.Text ->+  GrammarSlotTypeSource+newGrammarSlotTypeSource pS3BucketName_ pS3ObjectKey_ =+  GrammarSlotTypeSource'+    { kmsKeyArn = Prelude.Nothing,+      s3BucketName = pS3BucketName_,+      s3ObjectKey = pS3ObjectKey_+    }++-- | The Amazon KMS key required to decrypt the contents of the grammar, if+-- any.+grammarSlotTypeSource_kmsKeyArn :: Lens.Lens' GrammarSlotTypeSource (Prelude.Maybe Prelude.Text)+grammarSlotTypeSource_kmsKeyArn = Lens.lens (\GrammarSlotTypeSource' {kmsKeyArn} -> kmsKeyArn) (\s@GrammarSlotTypeSource' {} a -> s {kmsKeyArn = a} :: GrammarSlotTypeSource)++-- | The name of the S3 bucket that contains the grammar source.+grammarSlotTypeSource_s3BucketName :: Lens.Lens' GrammarSlotTypeSource Prelude.Text+grammarSlotTypeSource_s3BucketName = Lens.lens (\GrammarSlotTypeSource' {s3BucketName} -> s3BucketName) (\s@GrammarSlotTypeSource' {} a -> s {s3BucketName = a} :: GrammarSlotTypeSource)++-- | The path to the grammar in the S3 bucket.+grammarSlotTypeSource_s3ObjectKey :: Lens.Lens' GrammarSlotTypeSource Prelude.Text+grammarSlotTypeSource_s3ObjectKey = Lens.lens (\GrammarSlotTypeSource' {s3ObjectKey} -> s3ObjectKey) (\s@GrammarSlotTypeSource' {} a -> s {s3ObjectKey = a} :: GrammarSlotTypeSource)++instance Data.FromJSON GrammarSlotTypeSource where+  parseJSON =+    Data.withObject+      "GrammarSlotTypeSource"+      ( \x ->+          GrammarSlotTypeSource'+            Prelude.<$> (x Data..:? "kmsKeyArn")+            Prelude.<*> (x Data..: "s3BucketName")+            Prelude.<*> (x Data..: "s3ObjectKey")+      )++instance Prelude.Hashable GrammarSlotTypeSource where+  hashWithSalt _salt GrammarSlotTypeSource' {..} =+    _salt+      `Prelude.hashWithSalt` kmsKeyArn+      `Prelude.hashWithSalt` s3BucketName+      `Prelude.hashWithSalt` s3ObjectKey++instance Prelude.NFData GrammarSlotTypeSource where+  rnf GrammarSlotTypeSource' {..} =+    Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf s3BucketName+      `Prelude.seq` Prelude.rnf s3ObjectKey++instance Data.ToJSON GrammarSlotTypeSource where+  toJSON GrammarSlotTypeSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("kmsKeyArn" Data..=) Prelude.<$> kmsKeyArn,+            Prelude.Just ("s3BucketName" Data..= s3BucketName),+            Prelude.Just ("s3ObjectKey" Data..= s3ObjectKey)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/ImageResponseCard.hs view
@@ -0,0 +1,144 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ImageResponseCard+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ImageResponseCard where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.Button+import qualified Amazonka.Prelude as Prelude++-- | A card that is shown to the user by a messaging platform. You define the+-- contents of the card, the card is displayed by the platform.+--+-- When you use a response card, the response from the user is constrained+-- to the text associated with a button on the card.+--+-- /See:/ 'newImageResponseCard' smart constructor.+data ImageResponseCard = ImageResponseCard'+  { -- | A list of buttons that should be displayed on the response card. The+    -- arrangement of the buttons is determined by the platform that displays+    -- the button.+    buttons :: Prelude.Maybe [Button],+    -- | The URL of an image to display on the response card. The image URL must+    -- be publicly available so that the platform displaying the response card+    -- has access to the image.+    imageUrl :: Prelude.Maybe Prelude.Text,+    -- | The subtitle to display on the response card. The format of the subtitle+    -- is determined by the platform displaying the response card.+    subtitle :: Prelude.Maybe Prelude.Text,+    -- | The title to display on the response card. The format of the title is+    -- determined by the platform displaying the response card.+    title :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImageResponseCard' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'buttons', 'imageResponseCard_buttons' - A list of buttons that should be displayed on the response card. The+-- arrangement of the buttons is determined by the platform that displays+-- the button.+--+-- 'imageUrl', 'imageResponseCard_imageUrl' - The URL of an image to display on the response card. The image URL must+-- be publicly available so that the platform displaying the response card+-- has access to the image.+--+-- 'subtitle', 'imageResponseCard_subtitle' - The subtitle to display on the response card. The format of the subtitle+-- is determined by the platform displaying the response card.+--+-- 'title', 'imageResponseCard_title' - The title to display on the response card. The format of the title is+-- determined by the platform displaying the response card.+newImageResponseCard ::+  -- | 'title'+  Prelude.Text ->+  ImageResponseCard+newImageResponseCard pTitle_ =+  ImageResponseCard'+    { buttons = Prelude.Nothing,+      imageUrl = Prelude.Nothing,+      subtitle = Prelude.Nothing,+      title = pTitle_+    }++-- | A list of buttons that should be displayed on the response card. The+-- arrangement of the buttons is determined by the platform that displays+-- the button.+imageResponseCard_buttons :: Lens.Lens' ImageResponseCard (Prelude.Maybe [Button])+imageResponseCard_buttons = Lens.lens (\ImageResponseCard' {buttons} -> buttons) (\s@ImageResponseCard' {} a -> s {buttons = a} :: ImageResponseCard) Prelude.. Lens.mapping Lens.coerced++-- | The URL of an image to display on the response card. The image URL must+-- be publicly available so that the platform displaying the response card+-- has access to the image.+imageResponseCard_imageUrl :: Lens.Lens' ImageResponseCard (Prelude.Maybe Prelude.Text)+imageResponseCard_imageUrl = Lens.lens (\ImageResponseCard' {imageUrl} -> imageUrl) (\s@ImageResponseCard' {} a -> s {imageUrl = a} :: ImageResponseCard)++-- | The subtitle to display on the response card. The format of the subtitle+-- is determined by the platform displaying the response card.+imageResponseCard_subtitle :: Lens.Lens' ImageResponseCard (Prelude.Maybe Prelude.Text)+imageResponseCard_subtitle = Lens.lens (\ImageResponseCard' {subtitle} -> subtitle) (\s@ImageResponseCard' {} a -> s {subtitle = a} :: ImageResponseCard)++-- | The title to display on the response card. The format of the title is+-- determined by the platform displaying the response card.+imageResponseCard_title :: Lens.Lens' ImageResponseCard Prelude.Text+imageResponseCard_title = Lens.lens (\ImageResponseCard' {title} -> title) (\s@ImageResponseCard' {} a -> s {title = a} :: ImageResponseCard)++instance Data.FromJSON ImageResponseCard where+  parseJSON =+    Data.withObject+      "ImageResponseCard"+      ( \x ->+          ImageResponseCard'+            Prelude.<$> (x Data..:? "buttons" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "imageUrl")+            Prelude.<*> (x Data..:? "subtitle")+            Prelude.<*> (x Data..: "title")+      )++instance Prelude.Hashable ImageResponseCard where+  hashWithSalt _salt ImageResponseCard' {..} =+    _salt+      `Prelude.hashWithSalt` buttons+      `Prelude.hashWithSalt` imageUrl+      `Prelude.hashWithSalt` subtitle+      `Prelude.hashWithSalt` title++instance Prelude.NFData ImageResponseCard where+  rnf ImageResponseCard' {..} =+    Prelude.rnf buttons+      `Prelude.seq` Prelude.rnf imageUrl+      `Prelude.seq` Prelude.rnf subtitle+      `Prelude.seq` Prelude.rnf title++instance Data.ToJSON ImageResponseCard where+  toJSON ImageResponseCard' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("buttons" Data..=) Prelude.<$> buttons,+            ("imageUrl" Data..=) Prelude.<$> imageUrl,+            ("subtitle" Data..=) Prelude.<$> subtitle,+            Prelude.Just ("title" Data..= title)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/ImportExportFileFormat.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ImportExportFileFormat+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ImportExportFileFormat+  ( ImportExportFileFormat+      ( ..,+        ImportExportFileFormat_LexJson,+        ImportExportFileFormat_TSV+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ImportExportFileFormat = ImportExportFileFormat'+  { fromImportExportFileFormat ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ImportExportFileFormat_LexJson :: ImportExportFileFormat+pattern ImportExportFileFormat_LexJson = ImportExportFileFormat' "LexJson"++pattern ImportExportFileFormat_TSV :: ImportExportFileFormat+pattern ImportExportFileFormat_TSV = ImportExportFileFormat' "TSV"++{-# COMPLETE+  ImportExportFileFormat_LexJson,+  ImportExportFileFormat_TSV,+  ImportExportFileFormat'+  #-}
+ gen/Amazonka/LexV2Models/Types/ImportFilter.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ImportFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ImportFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.ImportFilterName+import Amazonka.LexV2Models.Types.ImportFilterOperator+import qualified Amazonka.Prelude as Prelude++-- | Filters the response from the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_ListImports.html ListImports>+-- operation.+--+-- /See:/ 'newImportFilter' smart constructor.+data ImportFilter = ImportFilter'+  { -- | The name of the field to use for filtering.+    name :: ImportFilterName,+    -- | The values to use to filter the response. The values must be @Bot@,+    -- @BotLocale@, or @CustomVocabulary@.+    values :: Prelude.NonEmpty Prelude.Text,+    -- | The operator to use for the filter. Specify EQ when the @ListImports@+    -- operation should return only resource types that equal the specified+    -- value. Specify CO when the @ListImports@ operation should return+    -- resource types that contain the specified value.+    operator :: ImportFilterOperator+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'importFilter_name' - The name of the field to use for filtering.+--+-- 'values', 'importFilter_values' - The values to use to filter the response. The values must be @Bot@,+-- @BotLocale@, or @CustomVocabulary@.+--+-- 'operator', 'importFilter_operator' - The operator to use for the filter. Specify EQ when the @ListImports@+-- operation should return only resource types that equal the specified+-- value. Specify CO when the @ListImports@ operation should return+-- resource types that contain the specified value.+newImportFilter ::+  -- | 'name'+  ImportFilterName ->+  -- | 'values'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'operator'+  ImportFilterOperator ->+  ImportFilter+newImportFilter pName_ pValues_ pOperator_ =+  ImportFilter'+    { name = pName_,+      values = Lens.coerced Lens.# pValues_,+      operator = pOperator_+    }++-- | The name of the field to use for filtering.+importFilter_name :: Lens.Lens' ImportFilter ImportFilterName+importFilter_name = Lens.lens (\ImportFilter' {name} -> name) (\s@ImportFilter' {} a -> s {name = a} :: ImportFilter)++-- | The values to use to filter the response. The values must be @Bot@,+-- @BotLocale@, or @CustomVocabulary@.+importFilter_values :: Lens.Lens' ImportFilter (Prelude.NonEmpty Prelude.Text)+importFilter_values = Lens.lens (\ImportFilter' {values} -> values) (\s@ImportFilter' {} a -> s {values = a} :: ImportFilter) Prelude.. Lens.coerced++-- | The operator to use for the filter. Specify EQ when the @ListImports@+-- operation should return only resource types that equal the specified+-- value. Specify CO when the @ListImports@ operation should return+-- resource types that contain the specified value.+importFilter_operator :: Lens.Lens' ImportFilter ImportFilterOperator+importFilter_operator = Lens.lens (\ImportFilter' {operator} -> operator) (\s@ImportFilter' {} a -> s {operator = a} :: ImportFilter)++instance Prelude.Hashable ImportFilter where+  hashWithSalt _salt ImportFilter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values+      `Prelude.hashWithSalt` operator++instance Prelude.NFData ImportFilter where+  rnf ImportFilter' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf values+      `Prelude.seq` Prelude.rnf operator++instance Data.ToJSON ImportFilter where+  toJSON ImportFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("name" Data..= name),+            Prelude.Just ("values" Data..= values),+            Prelude.Just ("operator" Data..= operator)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/ImportFilterName.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ImportFilterName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ImportFilterName+  ( ImportFilterName+      ( ..,+        ImportFilterName_ImportResourceType+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ImportFilterName = ImportFilterName'+  { fromImportFilterName ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ImportFilterName_ImportResourceType :: ImportFilterName+pattern ImportFilterName_ImportResourceType = ImportFilterName' "ImportResourceType"++{-# COMPLETE+  ImportFilterName_ImportResourceType,+  ImportFilterName'+  #-}
+ gen/Amazonka/LexV2Models/Types/ImportFilterOperator.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ImportFilterOperator+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ImportFilterOperator+  ( ImportFilterOperator+      ( ..,+        ImportFilterOperator_CO,+        ImportFilterOperator_EQ+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ImportFilterOperator = ImportFilterOperator'+  { fromImportFilterOperator ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ImportFilterOperator_CO :: ImportFilterOperator+pattern ImportFilterOperator_CO = ImportFilterOperator' "CO"++pattern ImportFilterOperator_EQ :: ImportFilterOperator+pattern ImportFilterOperator_EQ = ImportFilterOperator' "EQ"++{-# COMPLETE+  ImportFilterOperator_CO,+  ImportFilterOperator_EQ,+  ImportFilterOperator'+  #-}
+ gen/Amazonka/LexV2Models/Types/ImportResourceSpecification.hs view
@@ -0,0 +1,115 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ImportResourceSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ImportResourceSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.BotImportSpecification+import Amazonka.LexV2Models.Types.BotLocaleImportSpecification+import Amazonka.LexV2Models.Types.CustomVocabularyImportSpecification+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the bot or bot locale that you want to+-- import. You can specify the @botImportSpecification@ or the+-- @botLocaleImportSpecification@, but not both.+--+-- /See:/ 'newImportResourceSpecification' smart constructor.+data ImportResourceSpecification = ImportResourceSpecification'+  { -- | Parameters for importing a bot.+    botImportSpecification :: Prelude.Maybe BotImportSpecification,+    -- | Parameters for importing a bot locale.+    botLocaleImportSpecification :: Prelude.Maybe BotLocaleImportSpecification,+    customVocabularyImportSpecification :: Prelude.Maybe CustomVocabularyImportSpecification+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportResourceSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botImportSpecification', 'importResourceSpecification_botImportSpecification' - Parameters for importing a bot.+--+-- 'botLocaleImportSpecification', 'importResourceSpecification_botLocaleImportSpecification' - Parameters for importing a bot locale.+--+-- 'customVocabularyImportSpecification', 'importResourceSpecification_customVocabularyImportSpecification' - Undocumented member.+newImportResourceSpecification ::+  ImportResourceSpecification+newImportResourceSpecification =+  ImportResourceSpecification'+    { botImportSpecification =+        Prelude.Nothing,+      botLocaleImportSpecification = Prelude.Nothing,+      customVocabularyImportSpecification =+        Prelude.Nothing+    }++-- | Parameters for importing a bot.+importResourceSpecification_botImportSpecification :: Lens.Lens' ImportResourceSpecification (Prelude.Maybe BotImportSpecification)+importResourceSpecification_botImportSpecification = Lens.lens (\ImportResourceSpecification' {botImportSpecification} -> botImportSpecification) (\s@ImportResourceSpecification' {} a -> s {botImportSpecification = a} :: ImportResourceSpecification)++-- | Parameters for importing a bot locale.+importResourceSpecification_botLocaleImportSpecification :: Lens.Lens' ImportResourceSpecification (Prelude.Maybe BotLocaleImportSpecification)+importResourceSpecification_botLocaleImportSpecification = Lens.lens (\ImportResourceSpecification' {botLocaleImportSpecification} -> botLocaleImportSpecification) (\s@ImportResourceSpecification' {} a -> s {botLocaleImportSpecification = a} :: ImportResourceSpecification)++-- | Undocumented member.+importResourceSpecification_customVocabularyImportSpecification :: Lens.Lens' ImportResourceSpecification (Prelude.Maybe CustomVocabularyImportSpecification)+importResourceSpecification_customVocabularyImportSpecification = Lens.lens (\ImportResourceSpecification' {customVocabularyImportSpecification} -> customVocabularyImportSpecification) (\s@ImportResourceSpecification' {} a -> s {customVocabularyImportSpecification = a} :: ImportResourceSpecification)++instance Data.FromJSON ImportResourceSpecification where+  parseJSON =+    Data.withObject+      "ImportResourceSpecification"+      ( \x ->+          ImportResourceSpecification'+            Prelude.<$> (x Data..:? "botImportSpecification")+            Prelude.<*> (x Data..:? "botLocaleImportSpecification")+            Prelude.<*> (x Data..:? "customVocabularyImportSpecification")+      )++instance Prelude.Hashable ImportResourceSpecification where+  hashWithSalt _salt ImportResourceSpecification' {..} =+    _salt+      `Prelude.hashWithSalt` botImportSpecification+      `Prelude.hashWithSalt` botLocaleImportSpecification+      `Prelude.hashWithSalt` customVocabularyImportSpecification++instance Prelude.NFData ImportResourceSpecification where+  rnf ImportResourceSpecification' {..} =+    Prelude.rnf botImportSpecification+      `Prelude.seq` Prelude.rnf botLocaleImportSpecification+      `Prelude.seq` Prelude.rnf customVocabularyImportSpecification++instance Data.ToJSON ImportResourceSpecification where+  toJSON ImportResourceSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("botImportSpecification" Data..=)+              Prelude.<$> botImportSpecification,+            ("botLocaleImportSpecification" Data..=)+              Prelude.<$> botLocaleImportSpecification,+            ("customVocabularyImportSpecification" Data..=)+              Prelude.<$> customVocabularyImportSpecification+          ]+      )
+ gen/Amazonka/LexV2Models/Types/ImportResourceType.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ImportResourceType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ImportResourceType+  ( ImportResourceType+      ( ..,+        ImportResourceType_Bot,+        ImportResourceType_BotLocale,+        ImportResourceType_CustomVocabulary+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ImportResourceType = ImportResourceType'+  { fromImportResourceType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ImportResourceType_Bot :: ImportResourceType+pattern ImportResourceType_Bot = ImportResourceType' "Bot"++pattern ImportResourceType_BotLocale :: ImportResourceType+pattern ImportResourceType_BotLocale = ImportResourceType' "BotLocale"++pattern ImportResourceType_CustomVocabulary :: ImportResourceType+pattern ImportResourceType_CustomVocabulary = ImportResourceType' "CustomVocabulary"++{-# COMPLETE+  ImportResourceType_Bot,+  ImportResourceType_BotLocale,+  ImportResourceType_CustomVocabulary,+  ImportResourceType'+  #-}
+ gen/Amazonka/LexV2Models/Types/ImportSortAttribute.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ImportSortAttribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ImportSortAttribute+  ( ImportSortAttribute+      ( ..,+        ImportSortAttribute_LastUpdatedDateTime+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ImportSortAttribute = ImportSortAttribute'+  { fromImportSortAttribute ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ImportSortAttribute_LastUpdatedDateTime :: ImportSortAttribute+pattern ImportSortAttribute_LastUpdatedDateTime = ImportSortAttribute' "LastUpdatedDateTime"++{-# COMPLETE+  ImportSortAttribute_LastUpdatedDateTime,+  ImportSortAttribute'+  #-}
+ gen/Amazonka/LexV2Models/Types/ImportSortBy.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ImportSortBy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ImportSortBy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.ImportSortAttribute+import Amazonka.LexV2Models.Types.SortOrder+import qualified Amazonka.Prelude as Prelude++-- | Provides information for sorting a list of imports.+--+-- /See:/ 'newImportSortBy' smart constructor.+data ImportSortBy = ImportSortBy'+  { -- | The export field to use for sorting.+    attribute :: ImportSortAttribute,+    -- | The order to sort the list.+    order :: SortOrder+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportSortBy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attribute', 'importSortBy_attribute' - The export field to use for sorting.+--+-- 'order', 'importSortBy_order' - The order to sort the list.+newImportSortBy ::+  -- | 'attribute'+  ImportSortAttribute ->+  -- | 'order'+  SortOrder ->+  ImportSortBy+newImportSortBy pAttribute_ pOrder_ =+  ImportSortBy'+    { attribute = pAttribute_,+      order = pOrder_+    }++-- | The export field to use for sorting.+importSortBy_attribute :: Lens.Lens' ImportSortBy ImportSortAttribute+importSortBy_attribute = Lens.lens (\ImportSortBy' {attribute} -> attribute) (\s@ImportSortBy' {} a -> s {attribute = a} :: ImportSortBy)++-- | The order to sort the list.+importSortBy_order :: Lens.Lens' ImportSortBy SortOrder+importSortBy_order = Lens.lens (\ImportSortBy' {order} -> order) (\s@ImportSortBy' {} a -> s {order = a} :: ImportSortBy)++instance Prelude.Hashable ImportSortBy where+  hashWithSalt _salt ImportSortBy' {..} =+    _salt+      `Prelude.hashWithSalt` attribute+      `Prelude.hashWithSalt` order++instance Prelude.NFData ImportSortBy where+  rnf ImportSortBy' {..} =+    Prelude.rnf attribute+      `Prelude.seq` Prelude.rnf order++instance Data.ToJSON ImportSortBy where+  toJSON ImportSortBy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("attribute" Data..= attribute),+            Prelude.Just ("order" Data..= order)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/ImportStatus.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ImportStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ImportStatus+  ( ImportStatus+      ( ..,+        ImportStatus_Completed,+        ImportStatus_Deleting,+        ImportStatus_Failed,+        ImportStatus_InProgress+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ImportStatus = ImportStatus'+  { fromImportStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ImportStatus_Completed :: ImportStatus+pattern ImportStatus_Completed = ImportStatus' "Completed"++pattern ImportStatus_Deleting :: ImportStatus+pattern ImportStatus_Deleting = ImportStatus' "Deleting"++pattern ImportStatus_Failed :: ImportStatus+pattern ImportStatus_Failed = ImportStatus' "Failed"++pattern ImportStatus_InProgress :: ImportStatus+pattern ImportStatus_InProgress = ImportStatus' "InProgress"++{-# COMPLETE+  ImportStatus_Completed,+  ImportStatus_Deleting,+  ImportStatus_Failed,+  ImportStatus_InProgress,+  ImportStatus'+  #-}
+ gen/Amazonka/LexV2Models/Types/ImportSummary.hs view
@@ -0,0 +1,165 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ImportSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ImportSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.ImportResourceType+import Amazonka.LexV2Models.Types.ImportStatus+import Amazonka.LexV2Models.Types.MergeStrategy+import qualified Amazonka.Prelude as Prelude++-- | Provides summary information about an import in an import list.+--+-- /See:/ 'newImportSummary' smart constructor.+data ImportSummary = ImportSummary'+  { -- | The date and time that the import was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The unique identifier that Amazon Lex assigned to the import.+    importId :: Prelude.Maybe Prelude.Text,+    -- | The status of the resource. When the status is @Completed@ the resource+    -- is ready to build.+    importStatus :: Prelude.Maybe ImportStatus,+    -- | The unique identifier that Amazon Lex assigned to the imported resource.+    importedResourceId :: Prelude.Maybe Prelude.Text,+    -- | The name that you gave the imported resource.+    importedResourceName :: Prelude.Maybe Prelude.Text,+    -- | The type of resource that was imported.+    importedResourceType :: Prelude.Maybe ImportResourceType,+    -- | The date and time that the import was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The strategy used to merge existing bot or bot locale definitions with+    -- the imported definition.+    mergeStrategy :: Prelude.Maybe MergeStrategy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ImportSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'importSummary_creationDateTime' - The date and time that the import was created.+--+-- 'importId', 'importSummary_importId' - The unique identifier that Amazon Lex assigned to the import.+--+-- 'importStatus', 'importSummary_importStatus' - The status of the resource. When the status is @Completed@ the resource+-- is ready to build.+--+-- 'importedResourceId', 'importSummary_importedResourceId' - The unique identifier that Amazon Lex assigned to the imported resource.+--+-- 'importedResourceName', 'importSummary_importedResourceName' - The name that you gave the imported resource.+--+-- 'importedResourceType', 'importSummary_importedResourceType' - The type of resource that was imported.+--+-- 'lastUpdatedDateTime', 'importSummary_lastUpdatedDateTime' - The date and time that the import was last updated.+--+-- 'mergeStrategy', 'importSummary_mergeStrategy' - The strategy used to merge existing bot or bot locale definitions with+-- the imported definition.+newImportSummary ::+  ImportSummary+newImportSummary =+  ImportSummary'+    { creationDateTime = Prelude.Nothing,+      importId = Prelude.Nothing,+      importStatus = Prelude.Nothing,+      importedResourceId = Prelude.Nothing,+      importedResourceName = Prelude.Nothing,+      importedResourceType = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      mergeStrategy = Prelude.Nothing+    }++-- | The date and time that the import was created.+importSummary_creationDateTime :: Lens.Lens' ImportSummary (Prelude.Maybe Prelude.UTCTime)+importSummary_creationDateTime = Lens.lens (\ImportSummary' {creationDateTime} -> creationDateTime) (\s@ImportSummary' {} a -> s {creationDateTime = a} :: ImportSummary) Prelude.. Lens.mapping Data._Time++-- | The unique identifier that Amazon Lex assigned to the import.+importSummary_importId :: Lens.Lens' ImportSummary (Prelude.Maybe Prelude.Text)+importSummary_importId = Lens.lens (\ImportSummary' {importId} -> importId) (\s@ImportSummary' {} a -> s {importId = a} :: ImportSummary)++-- | The status of the resource. When the status is @Completed@ the resource+-- is ready to build.+importSummary_importStatus :: Lens.Lens' ImportSummary (Prelude.Maybe ImportStatus)+importSummary_importStatus = Lens.lens (\ImportSummary' {importStatus} -> importStatus) (\s@ImportSummary' {} a -> s {importStatus = a} :: ImportSummary)++-- | The unique identifier that Amazon Lex assigned to the imported resource.+importSummary_importedResourceId :: Lens.Lens' ImportSummary (Prelude.Maybe Prelude.Text)+importSummary_importedResourceId = Lens.lens (\ImportSummary' {importedResourceId} -> importedResourceId) (\s@ImportSummary' {} a -> s {importedResourceId = a} :: ImportSummary)++-- | The name that you gave the imported resource.+importSummary_importedResourceName :: Lens.Lens' ImportSummary (Prelude.Maybe Prelude.Text)+importSummary_importedResourceName = Lens.lens (\ImportSummary' {importedResourceName} -> importedResourceName) (\s@ImportSummary' {} a -> s {importedResourceName = a} :: ImportSummary)++-- | The type of resource that was imported.+importSummary_importedResourceType :: Lens.Lens' ImportSummary (Prelude.Maybe ImportResourceType)+importSummary_importedResourceType = Lens.lens (\ImportSummary' {importedResourceType} -> importedResourceType) (\s@ImportSummary' {} a -> s {importedResourceType = a} :: ImportSummary)++-- | The date and time that the import was last updated.+importSummary_lastUpdatedDateTime :: Lens.Lens' ImportSummary (Prelude.Maybe Prelude.UTCTime)+importSummary_lastUpdatedDateTime = Lens.lens (\ImportSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@ImportSummary' {} a -> s {lastUpdatedDateTime = a} :: ImportSummary) Prelude.. Lens.mapping Data._Time++-- | The strategy used to merge existing bot or bot locale definitions with+-- the imported definition.+importSummary_mergeStrategy :: Lens.Lens' ImportSummary (Prelude.Maybe MergeStrategy)+importSummary_mergeStrategy = Lens.lens (\ImportSummary' {mergeStrategy} -> mergeStrategy) (\s@ImportSummary' {} a -> s {mergeStrategy = a} :: ImportSummary)++instance Data.FromJSON ImportSummary where+  parseJSON =+    Data.withObject+      "ImportSummary"+      ( \x ->+          ImportSummary'+            Prelude.<$> (x Data..:? "creationDateTime")+            Prelude.<*> (x Data..:? "importId")+            Prelude.<*> (x Data..:? "importStatus")+            Prelude.<*> (x Data..:? "importedResourceId")+            Prelude.<*> (x Data..:? "importedResourceName")+            Prelude.<*> (x Data..:? "importedResourceType")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "mergeStrategy")+      )++instance Prelude.Hashable ImportSummary where+  hashWithSalt _salt ImportSummary' {..} =+    _salt+      `Prelude.hashWithSalt` creationDateTime+      `Prelude.hashWithSalt` importId+      `Prelude.hashWithSalt` importStatus+      `Prelude.hashWithSalt` importedResourceId+      `Prelude.hashWithSalt` importedResourceName+      `Prelude.hashWithSalt` importedResourceType+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` mergeStrategy++instance Prelude.NFData ImportSummary where+  rnf ImportSummary' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf importId+      `Prelude.seq` Prelude.rnf importStatus+      `Prelude.seq` Prelude.rnf importedResourceId+      `Prelude.seq` Prelude.rnf importedResourceName+      `Prelude.seq` Prelude.rnf importedResourceType+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf mergeStrategy
+ gen/Amazonka/LexV2Models/Types/InitialResponseSetting.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.InitialResponseSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.InitialResponseSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.ConditionalSpecification+import Amazonka.LexV2Models.Types.DialogCodeHookInvocationSetting+import Amazonka.LexV2Models.Types.DialogState+import Amazonka.LexV2Models.Types.ResponseSpecification+import qualified Amazonka.Prelude as Prelude++-- | Configuration setting for a response sent to the user before Amazon Lex+-- starts eliciting slots.+--+-- /See:/ 'newInitialResponseSetting' smart constructor.+data InitialResponseSetting = InitialResponseSetting'+  { codeHook :: Prelude.Maybe DialogCodeHookInvocationSetting,+    conditional :: Prelude.Maybe ConditionalSpecification,+    initialResponse :: Prelude.Maybe ResponseSpecification,+    -- | The next step in the conversation.+    nextStep :: Prelude.Maybe DialogState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InitialResponseSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'codeHook', 'initialResponseSetting_codeHook' - Undocumented member.+--+-- 'conditional', 'initialResponseSetting_conditional' - Undocumented member.+--+-- 'initialResponse', 'initialResponseSetting_initialResponse' - Undocumented member.+--+-- 'nextStep', 'initialResponseSetting_nextStep' - The next step in the conversation.+newInitialResponseSetting ::+  InitialResponseSetting+newInitialResponseSetting =+  InitialResponseSetting'+    { codeHook = Prelude.Nothing,+      conditional = Prelude.Nothing,+      initialResponse = Prelude.Nothing,+      nextStep = Prelude.Nothing+    }++-- | Undocumented member.+initialResponseSetting_codeHook :: Lens.Lens' InitialResponseSetting (Prelude.Maybe DialogCodeHookInvocationSetting)+initialResponseSetting_codeHook = Lens.lens (\InitialResponseSetting' {codeHook} -> codeHook) (\s@InitialResponseSetting' {} a -> s {codeHook = a} :: InitialResponseSetting)++-- | Undocumented member.+initialResponseSetting_conditional :: Lens.Lens' InitialResponseSetting (Prelude.Maybe ConditionalSpecification)+initialResponseSetting_conditional = Lens.lens (\InitialResponseSetting' {conditional} -> conditional) (\s@InitialResponseSetting' {} a -> s {conditional = a} :: InitialResponseSetting)++-- | Undocumented member.+initialResponseSetting_initialResponse :: Lens.Lens' InitialResponseSetting (Prelude.Maybe ResponseSpecification)+initialResponseSetting_initialResponse = Lens.lens (\InitialResponseSetting' {initialResponse} -> initialResponse) (\s@InitialResponseSetting' {} a -> s {initialResponse = a} :: InitialResponseSetting)++-- | The next step in the conversation.+initialResponseSetting_nextStep :: Lens.Lens' InitialResponseSetting (Prelude.Maybe DialogState)+initialResponseSetting_nextStep = Lens.lens (\InitialResponseSetting' {nextStep} -> nextStep) (\s@InitialResponseSetting' {} a -> s {nextStep = a} :: InitialResponseSetting)++instance Data.FromJSON InitialResponseSetting where+  parseJSON =+    Data.withObject+      "InitialResponseSetting"+      ( \x ->+          InitialResponseSetting'+            Prelude.<$> (x Data..:? "codeHook")+            Prelude.<*> (x Data..:? "conditional")+            Prelude.<*> (x Data..:? "initialResponse")+            Prelude.<*> (x Data..:? "nextStep")+      )++instance Prelude.Hashable InitialResponseSetting where+  hashWithSalt _salt InitialResponseSetting' {..} =+    _salt+      `Prelude.hashWithSalt` codeHook+      `Prelude.hashWithSalt` conditional+      `Prelude.hashWithSalt` initialResponse+      `Prelude.hashWithSalt` nextStep++instance Prelude.NFData InitialResponseSetting where+  rnf InitialResponseSetting' {..} =+    Prelude.rnf codeHook+      `Prelude.seq` Prelude.rnf conditional+      `Prelude.seq` Prelude.rnf initialResponse+      `Prelude.seq` Prelude.rnf nextStep++instance Data.ToJSON InitialResponseSetting where+  toJSON InitialResponseSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("codeHook" Data..=) Prelude.<$> codeHook,+            ("conditional" Data..=) Prelude.<$> conditional,+            ("initialResponse" Data..=)+              Prelude.<$> initialResponse,+            ("nextStep" Data..=) Prelude.<$> nextStep+          ]+      )
+ gen/Amazonka/LexV2Models/Types/InputContext.hs view
@@ -0,0 +1,74 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.InputContext+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.InputContext where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The name of a context that must be active for an intent to be selected+-- by Amazon Lex.+--+-- /See:/ 'newInputContext' smart constructor.+data InputContext = InputContext'+  { -- | The name of the context.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InputContext' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'inputContext_name' - The name of the context.+newInputContext ::+  -- | 'name'+  Prelude.Text ->+  InputContext+newInputContext pName_ = InputContext' {name = pName_}++-- | The name of the context.+inputContext_name :: Lens.Lens' InputContext Prelude.Text+inputContext_name = Lens.lens (\InputContext' {name} -> name) (\s@InputContext' {} a -> s {name = a} :: InputContext)++instance Data.FromJSON InputContext where+  parseJSON =+    Data.withObject+      "InputContext"+      (\x -> InputContext' Prelude.<$> (x Data..: "name"))++instance Prelude.Hashable InputContext where+  hashWithSalt _salt InputContext' {..} =+    _salt `Prelude.hashWithSalt` name++instance Prelude.NFData InputContext where+  rnf InputContext' {..} = Prelude.rnf name++instance Data.ToJSON InputContext where+  toJSON InputContext' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("name" Data..= name)]+      )
+ gen/Amazonka/LexV2Models/Types/IntentClosingSetting.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.IntentClosingSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.IntentClosingSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.ConditionalSpecification+import Amazonka.LexV2Models.Types.DialogState+import Amazonka.LexV2Models.Types.ResponseSpecification+import qualified Amazonka.Prelude as Prelude++-- | Provides a statement the Amazon Lex conveys to the user when the intent+-- is successfully fulfilled.+--+-- /See:/ 'newIntentClosingSetting' smart constructor.+data IntentClosingSetting = IntentClosingSetting'+  { -- | Specifies whether an intent\'s closing response is used. When this field+    -- is false, the closing response isn\'t sent to the user. If the @active@+    -- field isn\'t specified, the default is true.+    active :: Prelude.Maybe Prelude.Bool,+    -- | The response that Amazon Lex sends to the user when the intent is+    -- complete.+    closingResponse :: Prelude.Maybe ResponseSpecification,+    -- | A list of conditional branches associated with the intent\'s closing+    -- response. These branches are executed when the @nextStep@ attribute is+    -- set to @EvalutateConditional@.+    conditional :: Prelude.Maybe ConditionalSpecification,+    -- | Specifies the next step that the bot executes after playing the+    -- intent\'s closing response.+    nextStep :: Prelude.Maybe DialogState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IntentClosingSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'active', 'intentClosingSetting_active' - Specifies whether an intent\'s closing response is used. When this field+-- is false, the closing response isn\'t sent to the user. If the @active@+-- field isn\'t specified, the default is true.+--+-- 'closingResponse', 'intentClosingSetting_closingResponse' - The response that Amazon Lex sends to the user when the intent is+-- complete.+--+-- 'conditional', 'intentClosingSetting_conditional' - A list of conditional branches associated with the intent\'s closing+-- response. These branches are executed when the @nextStep@ attribute is+-- set to @EvalutateConditional@.+--+-- 'nextStep', 'intentClosingSetting_nextStep' - Specifies the next step that the bot executes after playing the+-- intent\'s closing response.+newIntentClosingSetting ::+  IntentClosingSetting+newIntentClosingSetting =+  IntentClosingSetting'+    { active = Prelude.Nothing,+      closingResponse = Prelude.Nothing,+      conditional = Prelude.Nothing,+      nextStep = Prelude.Nothing+    }++-- | Specifies whether an intent\'s closing response is used. When this field+-- is false, the closing response isn\'t sent to the user. If the @active@+-- field isn\'t specified, the default is true.+intentClosingSetting_active :: Lens.Lens' IntentClosingSetting (Prelude.Maybe Prelude.Bool)+intentClosingSetting_active = Lens.lens (\IntentClosingSetting' {active} -> active) (\s@IntentClosingSetting' {} a -> s {active = a} :: IntentClosingSetting)++-- | The response that Amazon Lex sends to the user when the intent is+-- complete.+intentClosingSetting_closingResponse :: Lens.Lens' IntentClosingSetting (Prelude.Maybe ResponseSpecification)+intentClosingSetting_closingResponse = Lens.lens (\IntentClosingSetting' {closingResponse} -> closingResponse) (\s@IntentClosingSetting' {} a -> s {closingResponse = a} :: IntentClosingSetting)++-- | A list of conditional branches associated with the intent\'s closing+-- response. These branches are executed when the @nextStep@ attribute is+-- set to @EvalutateConditional@.+intentClosingSetting_conditional :: Lens.Lens' IntentClosingSetting (Prelude.Maybe ConditionalSpecification)+intentClosingSetting_conditional = Lens.lens (\IntentClosingSetting' {conditional} -> conditional) (\s@IntentClosingSetting' {} a -> s {conditional = a} :: IntentClosingSetting)++-- | Specifies the next step that the bot executes after playing the+-- intent\'s closing response.+intentClosingSetting_nextStep :: Lens.Lens' IntentClosingSetting (Prelude.Maybe DialogState)+intentClosingSetting_nextStep = Lens.lens (\IntentClosingSetting' {nextStep} -> nextStep) (\s@IntentClosingSetting' {} a -> s {nextStep = a} :: IntentClosingSetting)++instance Data.FromJSON IntentClosingSetting where+  parseJSON =+    Data.withObject+      "IntentClosingSetting"+      ( \x ->+          IntentClosingSetting'+            Prelude.<$> (x Data..:? "active")+            Prelude.<*> (x Data..:? "closingResponse")+            Prelude.<*> (x Data..:? "conditional")+            Prelude.<*> (x Data..:? "nextStep")+      )++instance Prelude.Hashable IntentClosingSetting where+  hashWithSalt _salt IntentClosingSetting' {..} =+    _salt+      `Prelude.hashWithSalt` active+      `Prelude.hashWithSalt` closingResponse+      `Prelude.hashWithSalt` conditional+      `Prelude.hashWithSalt` nextStep++instance Prelude.NFData IntentClosingSetting where+  rnf IntentClosingSetting' {..} =+    Prelude.rnf active+      `Prelude.seq` Prelude.rnf closingResponse+      `Prelude.seq` Prelude.rnf conditional+      `Prelude.seq` Prelude.rnf nextStep++instance Data.ToJSON IntentClosingSetting where+  toJSON IntentClosingSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("active" Data..=) Prelude.<$> active,+            ("closingResponse" Data..=)+              Prelude.<$> closingResponse,+            ("conditional" Data..=) Prelude.<$> conditional,+            ("nextStep" Data..=) Prelude.<$> nextStep+          ]+      )
+ gen/Amazonka/LexV2Models/Types/IntentConfirmationSetting.hs view
@@ -0,0 +1,311 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.IntentConfirmationSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.IntentConfirmationSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.ConditionalSpecification+import Amazonka.LexV2Models.Types.DialogCodeHookInvocationSetting+import Amazonka.LexV2Models.Types.DialogState+import Amazonka.LexV2Models.Types.ElicitationCodeHookInvocationSetting+import Amazonka.LexV2Models.Types.PromptSpecification+import Amazonka.LexV2Models.Types.ResponseSpecification+import qualified Amazonka.Prelude as Prelude++-- | Provides a prompt for making sure that the user is ready for the intent+-- to be fulfilled.+--+-- /See:/ 'newIntentConfirmationSetting' smart constructor.+data IntentConfirmationSetting = IntentConfirmationSetting'+  { -- | Specifies whether the intent\'s confirmation is sent to the user. When+    -- this field is false, confirmation and declination responses aren\'t+    -- sent. If the @active@ field isn\'t specified, the default is true.+    active :: Prelude.Maybe Prelude.Bool,+    -- | The @DialogCodeHookInvocationSetting@ object associated with intent\'s+    -- confirmation step. The dialog code hook is triggered based on these+    -- invocation settings when the confirmation next step or declination next+    -- step or failure next step is @InvokeDialogCodeHook@.+    codeHook :: Prelude.Maybe DialogCodeHookInvocationSetting,+    -- | A list of conditional branches to evaluate after the intent is closed.+    confirmationConditional :: Prelude.Maybe ConditionalSpecification,+    -- | Specifies the next step that the bot executes when the customer confirms+    -- the intent.+    confirmationNextStep :: Prelude.Maybe DialogState,+    confirmationResponse :: Prelude.Maybe ResponseSpecification,+    -- | A list of conditional branches to evaluate after the intent is declined.+    declinationConditional :: Prelude.Maybe ConditionalSpecification,+    -- | Specifies the next step that the bot executes when the customer declines+    -- the intent.+    declinationNextStep :: Prelude.Maybe DialogState,+    -- | When the user answers \"no\" to the question defined in+    -- @promptSpecification@, Amazon Lex responds with this response to+    -- acknowledge that the intent was canceled.+    declinationResponse :: Prelude.Maybe ResponseSpecification,+    -- | The @DialogCodeHookInvocationSetting@ used when the code hook is invoked+    -- during confirmation prompt retries.+    elicitationCodeHook :: Prelude.Maybe ElicitationCodeHookInvocationSetting,+    failureConditional :: Prelude.Maybe ConditionalSpecification,+    -- | The next step to take in the conversation if the confirmation step+    -- fails.+    failureNextStep :: Prelude.Maybe DialogState,+    failureResponse :: Prelude.Maybe ResponseSpecification,+    -- | Prompts the user to confirm the intent. This question should have a yes+    -- or no answer.+    --+    -- Amazon Lex uses this prompt to ensure that the user acknowledges that+    -- the intent is ready for fulfillment. For example, with the @OrderPizza@+    -- intent, you might want to confirm that the order is correct before+    -- placing it. For other intents, such as intents that simply respond to+    -- user questions, you might not need to ask the user for confirmation+    -- before providing the information.+    promptSpecification :: PromptSpecification+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IntentConfirmationSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'active', 'intentConfirmationSetting_active' - Specifies whether the intent\'s confirmation is sent to the user. When+-- this field is false, confirmation and declination responses aren\'t+-- sent. If the @active@ field isn\'t specified, the default is true.+--+-- 'codeHook', 'intentConfirmationSetting_codeHook' - The @DialogCodeHookInvocationSetting@ object associated with intent\'s+-- confirmation step. The dialog code hook is triggered based on these+-- invocation settings when the confirmation next step or declination next+-- step or failure next step is @InvokeDialogCodeHook@.+--+-- 'confirmationConditional', 'intentConfirmationSetting_confirmationConditional' - A list of conditional branches to evaluate after the intent is closed.+--+-- 'confirmationNextStep', 'intentConfirmationSetting_confirmationNextStep' - Specifies the next step that the bot executes when the customer confirms+-- the intent.+--+-- 'confirmationResponse', 'intentConfirmationSetting_confirmationResponse' - Undocumented member.+--+-- 'declinationConditional', 'intentConfirmationSetting_declinationConditional' - A list of conditional branches to evaluate after the intent is declined.+--+-- 'declinationNextStep', 'intentConfirmationSetting_declinationNextStep' - Specifies the next step that the bot executes when the customer declines+-- the intent.+--+-- 'declinationResponse', 'intentConfirmationSetting_declinationResponse' - When the user answers \"no\" to the question defined in+-- @promptSpecification@, Amazon Lex responds with this response to+-- acknowledge that the intent was canceled.+--+-- 'elicitationCodeHook', 'intentConfirmationSetting_elicitationCodeHook' - The @DialogCodeHookInvocationSetting@ used when the code hook is invoked+-- during confirmation prompt retries.+--+-- 'failureConditional', 'intentConfirmationSetting_failureConditional' - Undocumented member.+--+-- 'failureNextStep', 'intentConfirmationSetting_failureNextStep' - The next step to take in the conversation if the confirmation step+-- fails.+--+-- 'failureResponse', 'intentConfirmationSetting_failureResponse' - Undocumented member.+--+-- 'promptSpecification', 'intentConfirmationSetting_promptSpecification' - Prompts the user to confirm the intent. This question should have a yes+-- or no answer.+--+-- Amazon Lex uses this prompt to ensure that the user acknowledges that+-- the intent is ready for fulfillment. For example, with the @OrderPizza@+-- intent, you might want to confirm that the order is correct before+-- placing it. For other intents, such as intents that simply respond to+-- user questions, you might not need to ask the user for confirmation+-- before providing the information.+newIntentConfirmationSetting ::+  -- | 'promptSpecification'+  PromptSpecification ->+  IntentConfirmationSetting+newIntentConfirmationSetting pPromptSpecification_ =+  IntentConfirmationSetting'+    { active =+        Prelude.Nothing,+      codeHook = Prelude.Nothing,+      confirmationConditional = Prelude.Nothing,+      confirmationNextStep = Prelude.Nothing,+      confirmationResponse = Prelude.Nothing,+      declinationConditional = Prelude.Nothing,+      declinationNextStep = Prelude.Nothing,+      declinationResponse = Prelude.Nothing,+      elicitationCodeHook = Prelude.Nothing,+      failureConditional = Prelude.Nothing,+      failureNextStep = Prelude.Nothing,+      failureResponse = Prelude.Nothing,+      promptSpecification = pPromptSpecification_+    }++-- | Specifies whether the intent\'s confirmation is sent to the user. When+-- this field is false, confirmation and declination responses aren\'t+-- sent. If the @active@ field isn\'t specified, the default is true.+intentConfirmationSetting_active :: Lens.Lens' IntentConfirmationSetting (Prelude.Maybe Prelude.Bool)+intentConfirmationSetting_active = Lens.lens (\IntentConfirmationSetting' {active} -> active) (\s@IntentConfirmationSetting' {} a -> s {active = a} :: IntentConfirmationSetting)++-- | The @DialogCodeHookInvocationSetting@ object associated with intent\'s+-- confirmation step. The dialog code hook is triggered based on these+-- invocation settings when the confirmation next step or declination next+-- step or failure next step is @InvokeDialogCodeHook@.+intentConfirmationSetting_codeHook :: Lens.Lens' IntentConfirmationSetting (Prelude.Maybe DialogCodeHookInvocationSetting)+intentConfirmationSetting_codeHook = Lens.lens (\IntentConfirmationSetting' {codeHook} -> codeHook) (\s@IntentConfirmationSetting' {} a -> s {codeHook = a} :: IntentConfirmationSetting)++-- | A list of conditional branches to evaluate after the intent is closed.+intentConfirmationSetting_confirmationConditional :: Lens.Lens' IntentConfirmationSetting (Prelude.Maybe ConditionalSpecification)+intentConfirmationSetting_confirmationConditional = Lens.lens (\IntentConfirmationSetting' {confirmationConditional} -> confirmationConditional) (\s@IntentConfirmationSetting' {} a -> s {confirmationConditional = a} :: IntentConfirmationSetting)++-- | Specifies the next step that the bot executes when the customer confirms+-- the intent.+intentConfirmationSetting_confirmationNextStep :: Lens.Lens' IntentConfirmationSetting (Prelude.Maybe DialogState)+intentConfirmationSetting_confirmationNextStep = Lens.lens (\IntentConfirmationSetting' {confirmationNextStep} -> confirmationNextStep) (\s@IntentConfirmationSetting' {} a -> s {confirmationNextStep = a} :: IntentConfirmationSetting)++-- | Undocumented member.+intentConfirmationSetting_confirmationResponse :: Lens.Lens' IntentConfirmationSetting (Prelude.Maybe ResponseSpecification)+intentConfirmationSetting_confirmationResponse = Lens.lens (\IntentConfirmationSetting' {confirmationResponse} -> confirmationResponse) (\s@IntentConfirmationSetting' {} a -> s {confirmationResponse = a} :: IntentConfirmationSetting)++-- | A list of conditional branches to evaluate after the intent is declined.+intentConfirmationSetting_declinationConditional :: Lens.Lens' IntentConfirmationSetting (Prelude.Maybe ConditionalSpecification)+intentConfirmationSetting_declinationConditional = Lens.lens (\IntentConfirmationSetting' {declinationConditional} -> declinationConditional) (\s@IntentConfirmationSetting' {} a -> s {declinationConditional = a} :: IntentConfirmationSetting)++-- | Specifies the next step that the bot executes when the customer declines+-- the intent.+intentConfirmationSetting_declinationNextStep :: Lens.Lens' IntentConfirmationSetting (Prelude.Maybe DialogState)+intentConfirmationSetting_declinationNextStep = Lens.lens (\IntentConfirmationSetting' {declinationNextStep} -> declinationNextStep) (\s@IntentConfirmationSetting' {} a -> s {declinationNextStep = a} :: IntentConfirmationSetting)++-- | When the user answers \"no\" to the question defined in+-- @promptSpecification@, Amazon Lex responds with this response to+-- acknowledge that the intent was canceled.+intentConfirmationSetting_declinationResponse :: Lens.Lens' IntentConfirmationSetting (Prelude.Maybe ResponseSpecification)+intentConfirmationSetting_declinationResponse = Lens.lens (\IntentConfirmationSetting' {declinationResponse} -> declinationResponse) (\s@IntentConfirmationSetting' {} a -> s {declinationResponse = a} :: IntentConfirmationSetting)++-- | The @DialogCodeHookInvocationSetting@ used when the code hook is invoked+-- during confirmation prompt retries.+intentConfirmationSetting_elicitationCodeHook :: Lens.Lens' IntentConfirmationSetting (Prelude.Maybe ElicitationCodeHookInvocationSetting)+intentConfirmationSetting_elicitationCodeHook = Lens.lens (\IntentConfirmationSetting' {elicitationCodeHook} -> elicitationCodeHook) (\s@IntentConfirmationSetting' {} a -> s {elicitationCodeHook = a} :: IntentConfirmationSetting)++-- | Undocumented member.+intentConfirmationSetting_failureConditional :: Lens.Lens' IntentConfirmationSetting (Prelude.Maybe ConditionalSpecification)+intentConfirmationSetting_failureConditional = Lens.lens (\IntentConfirmationSetting' {failureConditional} -> failureConditional) (\s@IntentConfirmationSetting' {} a -> s {failureConditional = a} :: IntentConfirmationSetting)++-- | The next step to take in the conversation if the confirmation step+-- fails.+intentConfirmationSetting_failureNextStep :: Lens.Lens' IntentConfirmationSetting (Prelude.Maybe DialogState)+intentConfirmationSetting_failureNextStep = Lens.lens (\IntentConfirmationSetting' {failureNextStep} -> failureNextStep) (\s@IntentConfirmationSetting' {} a -> s {failureNextStep = a} :: IntentConfirmationSetting)++-- | Undocumented member.+intentConfirmationSetting_failureResponse :: Lens.Lens' IntentConfirmationSetting (Prelude.Maybe ResponseSpecification)+intentConfirmationSetting_failureResponse = Lens.lens (\IntentConfirmationSetting' {failureResponse} -> failureResponse) (\s@IntentConfirmationSetting' {} a -> s {failureResponse = a} :: IntentConfirmationSetting)++-- | Prompts the user to confirm the intent. This question should have a yes+-- or no answer.+--+-- Amazon Lex uses this prompt to ensure that the user acknowledges that+-- the intent is ready for fulfillment. For example, with the @OrderPizza@+-- intent, you might want to confirm that the order is correct before+-- placing it. For other intents, such as intents that simply respond to+-- user questions, you might not need to ask the user for confirmation+-- before providing the information.+intentConfirmationSetting_promptSpecification :: Lens.Lens' IntentConfirmationSetting PromptSpecification+intentConfirmationSetting_promptSpecification = Lens.lens (\IntentConfirmationSetting' {promptSpecification} -> promptSpecification) (\s@IntentConfirmationSetting' {} a -> s {promptSpecification = a} :: IntentConfirmationSetting)++instance Data.FromJSON IntentConfirmationSetting where+  parseJSON =+    Data.withObject+      "IntentConfirmationSetting"+      ( \x ->+          IntentConfirmationSetting'+            Prelude.<$> (x Data..:? "active")+            Prelude.<*> (x Data..:? "codeHook")+            Prelude.<*> (x Data..:? "confirmationConditional")+            Prelude.<*> (x Data..:? "confirmationNextStep")+            Prelude.<*> (x Data..:? "confirmationResponse")+            Prelude.<*> (x Data..:? "declinationConditional")+            Prelude.<*> (x Data..:? "declinationNextStep")+            Prelude.<*> (x Data..:? "declinationResponse")+            Prelude.<*> (x Data..:? "elicitationCodeHook")+            Prelude.<*> (x Data..:? "failureConditional")+            Prelude.<*> (x Data..:? "failureNextStep")+            Prelude.<*> (x Data..:? "failureResponse")+            Prelude.<*> (x Data..: "promptSpecification")+      )++instance Prelude.Hashable IntentConfirmationSetting where+  hashWithSalt _salt IntentConfirmationSetting' {..} =+    _salt+      `Prelude.hashWithSalt` active+      `Prelude.hashWithSalt` codeHook+      `Prelude.hashWithSalt` confirmationConditional+      `Prelude.hashWithSalt` confirmationNextStep+      `Prelude.hashWithSalt` confirmationResponse+      `Prelude.hashWithSalt` declinationConditional+      `Prelude.hashWithSalt` declinationNextStep+      `Prelude.hashWithSalt` declinationResponse+      `Prelude.hashWithSalt` elicitationCodeHook+      `Prelude.hashWithSalt` failureConditional+      `Prelude.hashWithSalt` failureNextStep+      `Prelude.hashWithSalt` failureResponse+      `Prelude.hashWithSalt` promptSpecification++instance Prelude.NFData IntentConfirmationSetting where+  rnf IntentConfirmationSetting' {..} =+    Prelude.rnf active+      `Prelude.seq` Prelude.rnf codeHook+      `Prelude.seq` Prelude.rnf confirmationConditional+      `Prelude.seq` Prelude.rnf confirmationNextStep+      `Prelude.seq` Prelude.rnf confirmationResponse+      `Prelude.seq` Prelude.rnf declinationConditional+      `Prelude.seq` Prelude.rnf declinationNextStep+      `Prelude.seq` Prelude.rnf declinationResponse+      `Prelude.seq` Prelude.rnf elicitationCodeHook+      `Prelude.seq` Prelude.rnf failureConditional+      `Prelude.seq` Prelude.rnf failureNextStep+      `Prelude.seq` Prelude.rnf failureResponse+      `Prelude.seq` Prelude.rnf promptSpecification++instance Data.ToJSON IntentConfirmationSetting where+  toJSON IntentConfirmationSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("active" Data..=) Prelude.<$> active,+            ("codeHook" Data..=) Prelude.<$> codeHook,+            ("confirmationConditional" Data..=)+              Prelude.<$> confirmationConditional,+            ("confirmationNextStep" Data..=)+              Prelude.<$> confirmationNextStep,+            ("confirmationResponse" Data..=)+              Prelude.<$> confirmationResponse,+            ("declinationConditional" Data..=)+              Prelude.<$> declinationConditional,+            ("declinationNextStep" Data..=)+              Prelude.<$> declinationNextStep,+            ("declinationResponse" Data..=)+              Prelude.<$> declinationResponse,+            ("elicitationCodeHook" Data..=)+              Prelude.<$> elicitationCodeHook,+            ("failureConditional" Data..=)+              Prelude.<$> failureConditional,+            ("failureNextStep" Data..=)+              Prelude.<$> failureNextStep,+            ("failureResponse" Data..=)+              Prelude.<$> failureResponse,+            Prelude.Just+              ("promptSpecification" Data..= promptSpecification)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/IntentFilter.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.IntentFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.IntentFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.IntentFilterName+import Amazonka.LexV2Models.Types.IntentFilterOperator+import qualified Amazonka.Prelude as Prelude++-- | Filters the response from the @ListIntents@ operation.+--+-- /See:/ 'newIntentFilter' smart constructor.+data IntentFilter = IntentFilter'+  { -- | The name of the field to use for the filter.+    name :: IntentFilterName,+    -- | The value to use for the filter.+    values :: Prelude.NonEmpty Prelude.Text,+    -- | The operator to use for the filter. Specify @EQ@ when the @ListIntents@+    -- operation should return only aliases that equal the specified value.+    -- Specify @CO@ when the @ListIntents@ operation should return aliases that+    -- contain the specified value.+    operator :: IntentFilterOperator+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IntentFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'intentFilter_name' - The name of the field to use for the filter.+--+-- 'values', 'intentFilter_values' - The value to use for the filter.+--+-- 'operator', 'intentFilter_operator' - The operator to use for the filter. Specify @EQ@ when the @ListIntents@+-- operation should return only aliases that equal the specified value.+-- Specify @CO@ when the @ListIntents@ operation should return aliases that+-- contain the specified value.+newIntentFilter ::+  -- | 'name'+  IntentFilterName ->+  -- | 'values'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'operator'+  IntentFilterOperator ->+  IntentFilter+newIntentFilter pName_ pValues_ pOperator_ =+  IntentFilter'+    { name = pName_,+      values = Lens.coerced Lens.# pValues_,+      operator = pOperator_+    }++-- | The name of the field to use for the filter.+intentFilter_name :: Lens.Lens' IntentFilter IntentFilterName+intentFilter_name = Lens.lens (\IntentFilter' {name} -> name) (\s@IntentFilter' {} a -> s {name = a} :: IntentFilter)++-- | The value to use for the filter.+intentFilter_values :: Lens.Lens' IntentFilter (Prelude.NonEmpty Prelude.Text)+intentFilter_values = Lens.lens (\IntentFilter' {values} -> values) (\s@IntentFilter' {} a -> s {values = a} :: IntentFilter) Prelude.. Lens.coerced++-- | The operator to use for the filter. Specify @EQ@ when the @ListIntents@+-- operation should return only aliases that equal the specified value.+-- Specify @CO@ when the @ListIntents@ operation should return aliases that+-- contain the specified value.+intentFilter_operator :: Lens.Lens' IntentFilter IntentFilterOperator+intentFilter_operator = Lens.lens (\IntentFilter' {operator} -> operator) (\s@IntentFilter' {} a -> s {operator = a} :: IntentFilter)++instance Prelude.Hashable IntentFilter where+  hashWithSalt _salt IntentFilter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values+      `Prelude.hashWithSalt` operator++instance Prelude.NFData IntentFilter where+  rnf IntentFilter' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf values+      `Prelude.seq` Prelude.rnf operator++instance Data.ToJSON IntentFilter where+  toJSON IntentFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("name" Data..= name),+            Prelude.Just ("values" Data..= values),+            Prelude.Just ("operator" Data..= operator)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/IntentFilterName.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.IntentFilterName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.IntentFilterName+  ( IntentFilterName+      ( ..,+        IntentFilterName_IntentName+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IntentFilterName = IntentFilterName'+  { fromIntentFilterName ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern IntentFilterName_IntentName :: IntentFilterName+pattern IntentFilterName_IntentName = IntentFilterName' "IntentName"++{-# COMPLETE+  IntentFilterName_IntentName,+  IntentFilterName'+  #-}
+ gen/Amazonka/LexV2Models/Types/IntentFilterOperator.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.IntentFilterOperator+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.IntentFilterOperator+  ( IntentFilterOperator+      ( ..,+        IntentFilterOperator_CO,+        IntentFilterOperator_EQ+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IntentFilterOperator = IntentFilterOperator'+  { fromIntentFilterOperator ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern IntentFilterOperator_CO :: IntentFilterOperator+pattern IntentFilterOperator_CO = IntentFilterOperator' "CO"++pattern IntentFilterOperator_EQ :: IntentFilterOperator+pattern IntentFilterOperator_EQ = IntentFilterOperator' "EQ"++{-# COMPLETE+  IntentFilterOperator_CO,+  IntentFilterOperator_EQ,+  IntentFilterOperator'+  #-}
+ gen/Amazonka/LexV2Models/Types/IntentOverride.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.IntentOverride+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.IntentOverride where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.SlotValueOverride+import qualified Amazonka.Prelude as Prelude++-- | Override settings to configure the intent state.+--+-- /See:/ 'newIntentOverride' smart constructor.+data IntentOverride = IntentOverride'+  { -- | The name of the intent. Only required when you\'re switching intents.+    name :: Prelude.Maybe Prelude.Text,+    -- | A map of all of the slot value overrides for the intent. The name of the+    -- slot maps to the value of the slot. Slots that are not included in the+    -- map aren\'t overridden.,+    slots :: Prelude.Maybe (Prelude.HashMap Prelude.Text SlotValueOverride)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IntentOverride' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'intentOverride_name' - The name of the intent. Only required when you\'re switching intents.+--+-- 'slots', 'intentOverride_slots' - A map of all of the slot value overrides for the intent. The name of the+-- slot maps to the value of the slot. Slots that are not included in the+-- map aren\'t overridden.,+newIntentOverride ::+  IntentOverride+newIntentOverride =+  IntentOverride'+    { name = Prelude.Nothing,+      slots = Prelude.Nothing+    }++-- | The name of the intent. Only required when you\'re switching intents.+intentOverride_name :: Lens.Lens' IntentOverride (Prelude.Maybe Prelude.Text)+intentOverride_name = Lens.lens (\IntentOverride' {name} -> name) (\s@IntentOverride' {} a -> s {name = a} :: IntentOverride)++-- | A map of all of the slot value overrides for the intent. The name of the+-- slot maps to the value of the slot. Slots that are not included in the+-- map aren\'t overridden.,+intentOverride_slots :: Lens.Lens' IntentOverride (Prelude.Maybe (Prelude.HashMap Prelude.Text SlotValueOverride))+intentOverride_slots = Lens.lens (\IntentOverride' {slots} -> slots) (\s@IntentOverride' {} a -> s {slots = a} :: IntentOverride) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON IntentOverride where+  parseJSON =+    Data.withObject+      "IntentOverride"+      ( \x ->+          IntentOverride'+            Prelude.<$> (x Data..:? "name")+            Prelude.<*> (x Data..:? "slots" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable IntentOverride where+  hashWithSalt _salt IntentOverride' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` slots++instance Prelude.NFData IntentOverride where+  rnf IntentOverride' {..} =+    Prelude.rnf name `Prelude.seq` Prelude.rnf slots++instance Data.ToJSON IntentOverride where+  toJSON IntentOverride' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("name" Data..=) Prelude.<$> name,+            ("slots" Data..=) Prelude.<$> slots+          ]+      )
+ gen/Amazonka/LexV2Models/Types/IntentSortAttribute.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.IntentSortAttribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.IntentSortAttribute+  ( IntentSortAttribute+      ( ..,+        IntentSortAttribute_IntentName,+        IntentSortAttribute_LastUpdatedDateTime+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IntentSortAttribute = IntentSortAttribute'+  { fromIntentSortAttribute ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern IntentSortAttribute_IntentName :: IntentSortAttribute+pattern IntentSortAttribute_IntentName = IntentSortAttribute' "IntentName"++pattern IntentSortAttribute_LastUpdatedDateTime :: IntentSortAttribute+pattern IntentSortAttribute_LastUpdatedDateTime = IntentSortAttribute' "LastUpdatedDateTime"++{-# COMPLETE+  IntentSortAttribute_IntentName,+  IntentSortAttribute_LastUpdatedDateTime,+  IntentSortAttribute'+  #-}
+ gen/Amazonka/LexV2Models/Types/IntentSortBy.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.IntentSortBy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.IntentSortBy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.IntentSortAttribute+import Amazonka.LexV2Models.Types.SortOrder+import qualified Amazonka.Prelude as Prelude++-- | Specifies attributes for sorting a list of intents.+--+-- /See:/ 'newIntentSortBy' smart constructor.+data IntentSortBy = IntentSortBy'+  { -- | The attribute to use to sort the list of intents.+    attribute :: IntentSortAttribute,+    -- | The order to sort the list. You can choose ascending or descending.+    order :: SortOrder+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IntentSortBy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attribute', 'intentSortBy_attribute' - The attribute to use to sort the list of intents.+--+-- 'order', 'intentSortBy_order' - The order to sort the list. You can choose ascending or descending.+newIntentSortBy ::+  -- | 'attribute'+  IntentSortAttribute ->+  -- | 'order'+  SortOrder ->+  IntentSortBy+newIntentSortBy pAttribute_ pOrder_ =+  IntentSortBy'+    { attribute = pAttribute_,+      order = pOrder_+    }++-- | The attribute to use to sort the list of intents.+intentSortBy_attribute :: Lens.Lens' IntentSortBy IntentSortAttribute+intentSortBy_attribute = Lens.lens (\IntentSortBy' {attribute} -> attribute) (\s@IntentSortBy' {} a -> s {attribute = a} :: IntentSortBy)++-- | The order to sort the list. You can choose ascending or descending.+intentSortBy_order :: Lens.Lens' IntentSortBy SortOrder+intentSortBy_order = Lens.lens (\IntentSortBy' {order} -> order) (\s@IntentSortBy' {} a -> s {order = a} :: IntentSortBy)++instance Prelude.Hashable IntentSortBy where+  hashWithSalt _salt IntentSortBy' {..} =+    _salt+      `Prelude.hashWithSalt` attribute+      `Prelude.hashWithSalt` order++instance Prelude.NFData IntentSortBy where+  rnf IntentSortBy' {..} =+    Prelude.rnf attribute+      `Prelude.seq` Prelude.rnf order++instance Data.ToJSON IntentSortBy where+  toJSON IntentSortBy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("attribute" Data..= attribute),+            Prelude.Just ("order" Data..= order)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/IntentStatistics.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.IntentStatistics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.IntentStatistics where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The object that contains the statistical summary of recommended intents+-- associated with the bot recommendation.+--+-- /See:/ 'newIntentStatistics' smart constructor.+data IntentStatistics = IntentStatistics'+  { -- | The number of recommended intents associated with the bot+    -- recommendation.+    discoveredIntentCount :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IntentStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'discoveredIntentCount', 'intentStatistics_discoveredIntentCount' - The number of recommended intents associated with the bot+-- recommendation.+newIntentStatistics ::+  IntentStatistics+newIntentStatistics =+  IntentStatistics'+    { discoveredIntentCount =+        Prelude.Nothing+    }++-- | The number of recommended intents associated with the bot+-- recommendation.+intentStatistics_discoveredIntentCount :: Lens.Lens' IntentStatistics (Prelude.Maybe Prelude.Int)+intentStatistics_discoveredIntentCount = Lens.lens (\IntentStatistics' {discoveredIntentCount} -> discoveredIntentCount) (\s@IntentStatistics' {} a -> s {discoveredIntentCount = a} :: IntentStatistics)++instance Data.FromJSON IntentStatistics where+  parseJSON =+    Data.withObject+      "IntentStatistics"+      ( \x ->+          IntentStatistics'+            Prelude.<$> (x Data..:? "discoveredIntentCount")+      )++instance Prelude.Hashable IntentStatistics where+  hashWithSalt _salt IntentStatistics' {..} =+    _salt `Prelude.hashWithSalt` discoveredIntentCount++instance Prelude.NFData IntentStatistics where+  rnf IntentStatistics' {..} =+    Prelude.rnf discoveredIntentCount
+ gen/Amazonka/LexV2Models/Types/IntentSummary.hs view
@@ -0,0 +1,159 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.IntentSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.IntentSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.InputContext+import Amazonka.LexV2Models.Types.OutputContext+import qualified Amazonka.Prelude as Prelude++-- | Summary information about an intent returned by the @ListIntents@+-- operation.+--+-- /See:/ 'newIntentSummary' smart constructor.+data IntentSummary = IntentSummary'+  { -- | The description of the intent.+    description :: Prelude.Maybe Prelude.Text,+    -- | The input contexts that must be active for this intent to be considered+    -- for recognition.+    inputContexts :: Prelude.Maybe [InputContext],+    -- | The unique identifier assigned to the intent. Use this ID to get+    -- detailed information about the intent with the @DescribeIntent@+    -- operation.+    intentId :: Prelude.Maybe Prelude.Text,+    -- | The name of the intent.+    intentName :: Prelude.Maybe Prelude.Text,+    -- | The timestamp of the date and time that the intent was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The output contexts that are activated when this intent is fulfilled.+    outputContexts :: Prelude.Maybe [OutputContext],+    -- | If this intent is derived from a built-in intent, the name of the parent+    -- intent.+    parentIntentSignature :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IntentSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'intentSummary_description' - The description of the intent.+--+-- 'inputContexts', 'intentSummary_inputContexts' - The input contexts that must be active for this intent to be considered+-- for recognition.+--+-- 'intentId', 'intentSummary_intentId' - The unique identifier assigned to the intent. Use this ID to get+-- detailed information about the intent with the @DescribeIntent@+-- operation.+--+-- 'intentName', 'intentSummary_intentName' - The name of the intent.+--+-- 'lastUpdatedDateTime', 'intentSummary_lastUpdatedDateTime' - The timestamp of the date and time that the intent was last updated.+--+-- 'outputContexts', 'intentSummary_outputContexts' - The output contexts that are activated when this intent is fulfilled.+--+-- 'parentIntentSignature', 'intentSummary_parentIntentSignature' - If this intent is derived from a built-in intent, the name of the parent+-- intent.+newIntentSummary ::+  IntentSummary+newIntentSummary =+  IntentSummary'+    { description = Prelude.Nothing,+      inputContexts = Prelude.Nothing,+      intentId = Prelude.Nothing,+      intentName = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      outputContexts = Prelude.Nothing,+      parentIntentSignature = Prelude.Nothing+    }++-- | The description of the intent.+intentSummary_description :: Lens.Lens' IntentSummary (Prelude.Maybe Prelude.Text)+intentSummary_description = Lens.lens (\IntentSummary' {description} -> description) (\s@IntentSummary' {} a -> s {description = a} :: IntentSummary)++-- | The input contexts that must be active for this intent to be considered+-- for recognition.+intentSummary_inputContexts :: Lens.Lens' IntentSummary (Prelude.Maybe [InputContext])+intentSummary_inputContexts = Lens.lens (\IntentSummary' {inputContexts} -> inputContexts) (\s@IntentSummary' {} a -> s {inputContexts = a} :: IntentSummary) Prelude.. Lens.mapping Lens.coerced++-- | The unique identifier assigned to the intent. Use this ID to get+-- detailed information about the intent with the @DescribeIntent@+-- operation.+intentSummary_intentId :: Lens.Lens' IntentSummary (Prelude.Maybe Prelude.Text)+intentSummary_intentId = Lens.lens (\IntentSummary' {intentId} -> intentId) (\s@IntentSummary' {} a -> s {intentId = a} :: IntentSummary)++-- | The name of the intent.+intentSummary_intentName :: Lens.Lens' IntentSummary (Prelude.Maybe Prelude.Text)+intentSummary_intentName = Lens.lens (\IntentSummary' {intentName} -> intentName) (\s@IntentSummary' {} a -> s {intentName = a} :: IntentSummary)++-- | The timestamp of the date and time that the intent was last updated.+intentSummary_lastUpdatedDateTime :: Lens.Lens' IntentSummary (Prelude.Maybe Prelude.UTCTime)+intentSummary_lastUpdatedDateTime = Lens.lens (\IntentSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@IntentSummary' {} a -> s {lastUpdatedDateTime = a} :: IntentSummary) Prelude.. Lens.mapping Data._Time++-- | The output contexts that are activated when this intent is fulfilled.+intentSummary_outputContexts :: Lens.Lens' IntentSummary (Prelude.Maybe [OutputContext])+intentSummary_outputContexts = Lens.lens (\IntentSummary' {outputContexts} -> outputContexts) (\s@IntentSummary' {} a -> s {outputContexts = a} :: IntentSummary) Prelude.. Lens.mapping Lens.coerced++-- | If this intent is derived from a built-in intent, the name of the parent+-- intent.+intentSummary_parentIntentSignature :: Lens.Lens' IntentSummary (Prelude.Maybe Prelude.Text)+intentSummary_parentIntentSignature = Lens.lens (\IntentSummary' {parentIntentSignature} -> parentIntentSignature) (\s@IntentSummary' {} a -> s {parentIntentSignature = a} :: IntentSummary)++instance Data.FromJSON IntentSummary where+  parseJSON =+    Data.withObject+      "IntentSummary"+      ( \x ->+          IntentSummary'+            Prelude.<$> (x Data..:? "description")+            Prelude.<*> (x Data..:? "inputContexts" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "intentId")+            Prelude.<*> (x Data..:? "intentName")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "outputContexts" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "parentIntentSignature")+      )++instance Prelude.Hashable IntentSummary where+  hashWithSalt _salt IntentSummary' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` inputContexts+      `Prelude.hashWithSalt` intentId+      `Prelude.hashWithSalt` intentName+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` outputContexts+      `Prelude.hashWithSalt` parentIntentSignature++instance Prelude.NFData IntentSummary where+  rnf IntentSummary' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf inputContexts+      `Prelude.seq` Prelude.rnf intentId+      `Prelude.seq` Prelude.rnf intentName+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf outputContexts+      `Prelude.seq` Prelude.rnf parentIntentSignature
+ gen/Amazonka/LexV2Models/Types/KendraConfiguration.hs view
@@ -0,0 +1,132 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.KendraConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.KendraConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides configuration information for the AMAZON.KendraSearchIntent+-- intent. When you use this intent, Amazon Lex searches the specified+-- Amazon Kendra index and returns documents from the index that match the+-- user\'s utterance.+--+-- /See:/ 'newKendraConfiguration' smart constructor.+data KendraConfiguration = KendraConfiguration'+  { -- | A query filter that Amazon Lex sends to Amazon Kendra to filter the+    -- response from a query. The filter is in the format defined by Amazon+    -- Kendra. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/filtering.html Filtering queries>.+    queryFilterString :: Prelude.Maybe Prelude.Text,+    -- | Determines whether the AMAZON.KendraSearchIntent intent uses a custom+    -- query string to query the Amazon Kendra index.+    queryFilterStringEnabled :: Prelude.Maybe Prelude.Bool,+    -- | The Amazon Resource Name (ARN) of the Amazon Kendra index that you want+    -- the AMAZON.KendraSearchIntent intent to search. The index must be in the+    -- same account and Region as the Amazon Lex bot.+    kendraIndex :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'KendraConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'queryFilterString', 'kendraConfiguration_queryFilterString' - A query filter that Amazon Lex sends to Amazon Kendra to filter the+-- response from a query. The filter is in the format defined by Amazon+-- Kendra. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/filtering.html Filtering queries>.+--+-- 'queryFilterStringEnabled', 'kendraConfiguration_queryFilterStringEnabled' - Determines whether the AMAZON.KendraSearchIntent intent uses a custom+-- query string to query the Amazon Kendra index.+--+-- 'kendraIndex', 'kendraConfiguration_kendraIndex' - The Amazon Resource Name (ARN) of the Amazon Kendra index that you want+-- the AMAZON.KendraSearchIntent intent to search. The index must be in the+-- same account and Region as the Amazon Lex bot.+newKendraConfiguration ::+  -- | 'kendraIndex'+  Prelude.Text ->+  KendraConfiguration+newKendraConfiguration pKendraIndex_ =+  KendraConfiguration'+    { queryFilterString =+        Prelude.Nothing,+      queryFilterStringEnabled = Prelude.Nothing,+      kendraIndex = pKendraIndex_+    }++-- | A query filter that Amazon Lex sends to Amazon Kendra to filter the+-- response from a query. The filter is in the format defined by Amazon+-- Kendra. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/filtering.html Filtering queries>.+kendraConfiguration_queryFilterString :: Lens.Lens' KendraConfiguration (Prelude.Maybe Prelude.Text)+kendraConfiguration_queryFilterString = Lens.lens (\KendraConfiguration' {queryFilterString} -> queryFilterString) (\s@KendraConfiguration' {} a -> s {queryFilterString = a} :: KendraConfiguration)++-- | Determines whether the AMAZON.KendraSearchIntent intent uses a custom+-- query string to query the Amazon Kendra index.+kendraConfiguration_queryFilterStringEnabled :: Lens.Lens' KendraConfiguration (Prelude.Maybe Prelude.Bool)+kendraConfiguration_queryFilterStringEnabled = Lens.lens (\KendraConfiguration' {queryFilterStringEnabled} -> queryFilterStringEnabled) (\s@KendraConfiguration' {} a -> s {queryFilterStringEnabled = a} :: KendraConfiguration)++-- | The Amazon Resource Name (ARN) of the Amazon Kendra index that you want+-- the AMAZON.KendraSearchIntent intent to search. The index must be in the+-- same account and Region as the Amazon Lex bot.+kendraConfiguration_kendraIndex :: Lens.Lens' KendraConfiguration Prelude.Text+kendraConfiguration_kendraIndex = Lens.lens (\KendraConfiguration' {kendraIndex} -> kendraIndex) (\s@KendraConfiguration' {} a -> s {kendraIndex = a} :: KendraConfiguration)++instance Data.FromJSON KendraConfiguration where+  parseJSON =+    Data.withObject+      "KendraConfiguration"+      ( \x ->+          KendraConfiguration'+            Prelude.<$> (x Data..:? "queryFilterString")+            Prelude.<*> (x Data..:? "queryFilterStringEnabled")+            Prelude.<*> (x Data..: "kendraIndex")+      )++instance Prelude.Hashable KendraConfiguration where+  hashWithSalt _salt KendraConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` queryFilterString+      `Prelude.hashWithSalt` queryFilterStringEnabled+      `Prelude.hashWithSalt` kendraIndex++instance Prelude.NFData KendraConfiguration where+  rnf KendraConfiguration' {..} =+    Prelude.rnf queryFilterString+      `Prelude.seq` Prelude.rnf queryFilterStringEnabled+      `Prelude.seq` Prelude.rnf kendraIndex++instance Data.ToJSON KendraConfiguration where+  toJSON KendraConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("queryFilterString" Data..=)+              Prelude.<$> queryFilterString,+            ("queryFilterStringEnabled" Data..=)+              Prelude.<$> queryFilterStringEnabled,+            Prelude.Just ("kendraIndex" Data..= kendraIndex)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/LambdaCodeHook.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.LambdaCodeHook+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.LambdaCodeHook where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies a Lambda function that verifies requests to a bot or fulfills+-- the user\'s request to a bot.+--+-- /See:/ 'newLambdaCodeHook' smart constructor.+data LambdaCodeHook = LambdaCodeHook'+  { -- | The Amazon Resource Name (ARN) of the Lambda function.+    lambdaARN :: Prelude.Text,+    -- | The version of the request-response that you want Amazon Lex to use to+    -- invoke your Lambda function.+    codeHookInterfaceVersion :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LambdaCodeHook' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lambdaARN', 'lambdaCodeHook_lambdaARN' - The Amazon Resource Name (ARN) of the Lambda function.+--+-- 'codeHookInterfaceVersion', 'lambdaCodeHook_codeHookInterfaceVersion' - The version of the request-response that you want Amazon Lex to use to+-- invoke your Lambda function.+newLambdaCodeHook ::+  -- | 'lambdaARN'+  Prelude.Text ->+  -- | 'codeHookInterfaceVersion'+  Prelude.Text ->+  LambdaCodeHook+newLambdaCodeHook+  pLambdaARN_+  pCodeHookInterfaceVersion_ =+    LambdaCodeHook'+      { lambdaARN = pLambdaARN_,+        codeHookInterfaceVersion =+          pCodeHookInterfaceVersion_+      }++-- | The Amazon Resource Name (ARN) of the Lambda function.+lambdaCodeHook_lambdaARN :: Lens.Lens' LambdaCodeHook Prelude.Text+lambdaCodeHook_lambdaARN = Lens.lens (\LambdaCodeHook' {lambdaARN} -> lambdaARN) (\s@LambdaCodeHook' {} a -> s {lambdaARN = a} :: LambdaCodeHook)++-- | The version of the request-response that you want Amazon Lex to use to+-- invoke your Lambda function.+lambdaCodeHook_codeHookInterfaceVersion :: Lens.Lens' LambdaCodeHook Prelude.Text+lambdaCodeHook_codeHookInterfaceVersion = Lens.lens (\LambdaCodeHook' {codeHookInterfaceVersion} -> codeHookInterfaceVersion) (\s@LambdaCodeHook' {} a -> s {codeHookInterfaceVersion = a} :: LambdaCodeHook)++instance Data.FromJSON LambdaCodeHook where+  parseJSON =+    Data.withObject+      "LambdaCodeHook"+      ( \x ->+          LambdaCodeHook'+            Prelude.<$> (x Data..: "lambdaARN")+            Prelude.<*> (x Data..: "codeHookInterfaceVersion")+      )++instance Prelude.Hashable LambdaCodeHook where+  hashWithSalt _salt LambdaCodeHook' {..} =+    _salt+      `Prelude.hashWithSalt` lambdaARN+      `Prelude.hashWithSalt` codeHookInterfaceVersion++instance Prelude.NFData LambdaCodeHook where+  rnf LambdaCodeHook' {..} =+    Prelude.rnf lambdaARN+      `Prelude.seq` Prelude.rnf codeHookInterfaceVersion++instance Data.ToJSON LambdaCodeHook where+  toJSON LambdaCodeHook' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("lambdaARN" Data..= lambdaARN),+            Prelude.Just+              ( "codeHookInterfaceVersion"+                  Data..= codeHookInterfaceVersion+              )+          ]+      )
+ gen/Amazonka/LexV2Models/Types/LexTranscriptFilter.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.LexTranscriptFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.LexTranscriptFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.DateRangeFilter+import qualified Amazonka.Prelude as Prelude++-- | The object that contains transcript filter details that are associated+-- with a bot recommendation.+--+-- /See:/ 'newLexTranscriptFilter' smart constructor.+data LexTranscriptFilter = LexTranscriptFilter'+  { -- | The object that contains a date range filter that will be applied to the+    -- transcript. Specify this object if you want Amazon Lex to only read the+    -- files that are within the date range.+    dateRangeFilter :: Prelude.Maybe DateRangeFilter+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'LexTranscriptFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dateRangeFilter', 'lexTranscriptFilter_dateRangeFilter' - The object that contains a date range filter that will be applied to the+-- transcript. Specify this object if you want Amazon Lex to only read the+-- files that are within the date range.+newLexTranscriptFilter ::+  LexTranscriptFilter+newLexTranscriptFilter =+  LexTranscriptFilter'+    { dateRangeFilter =+        Prelude.Nothing+    }++-- | The object that contains a date range filter that will be applied to the+-- transcript. Specify this object if you want Amazon Lex to only read the+-- files that are within the date range.+lexTranscriptFilter_dateRangeFilter :: Lens.Lens' LexTranscriptFilter (Prelude.Maybe DateRangeFilter)+lexTranscriptFilter_dateRangeFilter = Lens.lens (\LexTranscriptFilter' {dateRangeFilter} -> dateRangeFilter) (\s@LexTranscriptFilter' {} a -> s {dateRangeFilter = a} :: LexTranscriptFilter)++instance Data.FromJSON LexTranscriptFilter where+  parseJSON =+    Data.withObject+      "LexTranscriptFilter"+      ( \x ->+          LexTranscriptFilter'+            Prelude.<$> (x Data..:? "dateRangeFilter")+      )++instance Prelude.Hashable LexTranscriptFilter where+  hashWithSalt _salt LexTranscriptFilter' {..} =+    _salt `Prelude.hashWithSalt` dateRangeFilter++instance Prelude.NFData LexTranscriptFilter where+  rnf LexTranscriptFilter' {..} =+    Prelude.rnf dateRangeFilter++instance Data.ToJSON LexTranscriptFilter where+  toJSON LexTranscriptFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("dateRangeFilter" Data..=)+              Prelude.<$> dateRangeFilter+          ]+      )
+ gen/Amazonka/LexV2Models/Types/MergeStrategy.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.MergeStrategy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.MergeStrategy+  ( MergeStrategy+      ( ..,+        MergeStrategy_Append,+        MergeStrategy_FailOnConflict,+        MergeStrategy_Overwrite+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype MergeStrategy = MergeStrategy'+  { fromMergeStrategy ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern MergeStrategy_Append :: MergeStrategy+pattern MergeStrategy_Append = MergeStrategy' "Append"++pattern MergeStrategy_FailOnConflict :: MergeStrategy+pattern MergeStrategy_FailOnConflict = MergeStrategy' "FailOnConflict"++pattern MergeStrategy_Overwrite :: MergeStrategy+pattern MergeStrategy_Overwrite = MergeStrategy' "Overwrite"++{-# COMPLETE+  MergeStrategy_Append,+  MergeStrategy_FailOnConflict,+  MergeStrategy_Overwrite,+  MergeStrategy'+  #-}
+ gen/Amazonka/LexV2Models/Types/Message.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.Message+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.Message where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.CustomPayload+import Amazonka.LexV2Models.Types.ImageResponseCard+import Amazonka.LexV2Models.Types.PlainTextMessage+import Amazonka.LexV2Models.Types.SSMLMessage+import qualified Amazonka.Prelude as Prelude++-- | The object that provides message text and it\'s type.+--+-- /See:/ 'newMessage' smart constructor.+data Message = Message'+  { -- | A message in a custom format defined by the client application.+    customPayload :: Prelude.Maybe CustomPayload,+    -- | A message that defines a response card that the client application can+    -- show to the user.+    imageResponseCard :: Prelude.Maybe ImageResponseCard,+    -- | A message in plain text format.+    plainTextMessage :: Prelude.Maybe PlainTextMessage,+    -- | A message in Speech Synthesis Markup Language (SSML).+    ssmlMessage :: Prelude.Maybe SSMLMessage+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Message' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'customPayload', 'message_customPayload' - A message in a custom format defined by the client application.+--+-- 'imageResponseCard', 'message_imageResponseCard' - A message that defines a response card that the client application can+-- show to the user.+--+-- 'plainTextMessage', 'message_plainTextMessage' - A message in plain text format.+--+-- 'ssmlMessage', 'message_ssmlMessage' - A message in Speech Synthesis Markup Language (SSML).+newMessage ::+  Message+newMessage =+  Message'+    { customPayload = Prelude.Nothing,+      imageResponseCard = Prelude.Nothing,+      plainTextMessage = Prelude.Nothing,+      ssmlMessage = Prelude.Nothing+    }++-- | A message in a custom format defined by the client application.+message_customPayload :: Lens.Lens' Message (Prelude.Maybe CustomPayload)+message_customPayload = Lens.lens (\Message' {customPayload} -> customPayload) (\s@Message' {} a -> s {customPayload = a} :: Message)++-- | A message that defines a response card that the client application can+-- show to the user.+message_imageResponseCard :: Lens.Lens' Message (Prelude.Maybe ImageResponseCard)+message_imageResponseCard = Lens.lens (\Message' {imageResponseCard} -> imageResponseCard) (\s@Message' {} a -> s {imageResponseCard = a} :: Message)++-- | A message in plain text format.+message_plainTextMessage :: Lens.Lens' Message (Prelude.Maybe PlainTextMessage)+message_plainTextMessage = Lens.lens (\Message' {plainTextMessage} -> plainTextMessage) (\s@Message' {} a -> s {plainTextMessage = a} :: Message)++-- | A message in Speech Synthesis Markup Language (SSML).+message_ssmlMessage :: Lens.Lens' Message (Prelude.Maybe SSMLMessage)+message_ssmlMessage = Lens.lens (\Message' {ssmlMessage} -> ssmlMessage) (\s@Message' {} a -> s {ssmlMessage = a} :: Message)++instance Data.FromJSON Message where+  parseJSON =+    Data.withObject+      "Message"+      ( \x ->+          Message'+            Prelude.<$> (x Data..:? "customPayload")+            Prelude.<*> (x Data..:? "imageResponseCard")+            Prelude.<*> (x Data..:? "plainTextMessage")+            Prelude.<*> (x Data..:? "ssmlMessage")+      )++instance Prelude.Hashable Message where+  hashWithSalt _salt Message' {..} =+    _salt+      `Prelude.hashWithSalt` customPayload+      `Prelude.hashWithSalt` imageResponseCard+      `Prelude.hashWithSalt` plainTextMessage+      `Prelude.hashWithSalt` ssmlMessage++instance Prelude.NFData Message where+  rnf Message' {..} =+    Prelude.rnf customPayload+      `Prelude.seq` Prelude.rnf imageResponseCard+      `Prelude.seq` Prelude.rnf plainTextMessage+      `Prelude.seq` Prelude.rnf ssmlMessage++instance Data.ToJSON Message where+  toJSON Message' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("customPayload" Data..=) Prelude.<$> customPayload,+            ("imageResponseCard" Data..=)+              Prelude.<$> imageResponseCard,+            ("plainTextMessage" Data..=)+              Prelude.<$> plainTextMessage,+            ("ssmlMessage" Data..=) Prelude.<$> ssmlMessage+          ]+      )
+ gen/Amazonka/LexV2Models/Types/MessageGroup.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.MessageGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.MessageGroup where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.Message+import qualified Amazonka.Prelude as Prelude++-- | Provides one or more messages that Amazon Lex should send to the user.+--+-- /See:/ 'newMessageGroup' smart constructor.+data MessageGroup = MessageGroup'+  { -- | Message variations to send to the user. When variations are defined,+    -- Amazon Lex chooses the primary message or one of the variations to send+    -- to the user.+    variations :: Prelude.Maybe [Message],+    -- | The primary message that Amazon Lex should send to the user.+    message :: Message+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MessageGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'variations', 'messageGroup_variations' - Message variations to send to the user. When variations are defined,+-- Amazon Lex chooses the primary message or one of the variations to send+-- to the user.+--+-- 'message', 'messageGroup_message' - The primary message that Amazon Lex should send to the user.+newMessageGroup ::+  -- | 'message'+  Message ->+  MessageGroup+newMessageGroup pMessage_ =+  MessageGroup'+    { variations = Prelude.Nothing,+      message = pMessage_+    }++-- | Message variations to send to the user. When variations are defined,+-- Amazon Lex chooses the primary message or one of the variations to send+-- to the user.+messageGroup_variations :: Lens.Lens' MessageGroup (Prelude.Maybe [Message])+messageGroup_variations = Lens.lens (\MessageGroup' {variations} -> variations) (\s@MessageGroup' {} a -> s {variations = a} :: MessageGroup) Prelude.. Lens.mapping Lens.coerced++-- | The primary message that Amazon Lex should send to the user.+messageGroup_message :: Lens.Lens' MessageGroup Message+messageGroup_message = Lens.lens (\MessageGroup' {message} -> message) (\s@MessageGroup' {} a -> s {message = a} :: MessageGroup)++instance Data.FromJSON MessageGroup where+  parseJSON =+    Data.withObject+      "MessageGroup"+      ( \x ->+          MessageGroup'+            Prelude.<$> (x Data..:? "variations" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "message")+      )++instance Prelude.Hashable MessageGroup where+  hashWithSalt _salt MessageGroup' {..} =+    _salt+      `Prelude.hashWithSalt` variations+      `Prelude.hashWithSalt` message++instance Prelude.NFData MessageGroup where+  rnf MessageGroup' {..} =+    Prelude.rnf variations+      `Prelude.seq` Prelude.rnf message++instance Data.ToJSON MessageGroup where+  toJSON MessageGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("variations" Data..=) Prelude.<$> variations,+            Prelude.Just ("message" Data..= message)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/MessageSelectionStrategy.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.MessageSelectionStrategy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.MessageSelectionStrategy+  ( MessageSelectionStrategy+      ( ..,+        MessageSelectionStrategy_Ordered,+        MessageSelectionStrategy_Random+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype MessageSelectionStrategy = MessageSelectionStrategy'+  { fromMessageSelectionStrategy ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern MessageSelectionStrategy_Ordered :: MessageSelectionStrategy+pattern MessageSelectionStrategy_Ordered = MessageSelectionStrategy' "Ordered"++pattern MessageSelectionStrategy_Random :: MessageSelectionStrategy+pattern MessageSelectionStrategy_Random = MessageSelectionStrategy' "Random"++{-# COMPLETE+  MessageSelectionStrategy_Ordered,+  MessageSelectionStrategy_Random,+  MessageSelectionStrategy'+  #-}
+ gen/Amazonka/LexV2Models/Types/MultipleValuesSetting.hs view
@@ -0,0 +1,105 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.MultipleValuesSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.MultipleValuesSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Indicates whether a slot can return multiple values.+--+-- /See:/ 'newMultipleValuesSetting' smart constructor.+data MultipleValuesSetting = MultipleValuesSetting'+  { -- | Indicates whether a slot can return multiple values. When @true@, the+    -- slot may return more than one value in a response. When @false@, the+    -- slot returns only a single value.+    --+    -- Multi-value slots are only available in the en-US locale. If you set+    -- this value to @true@ in any other locale, Amazon Lex throws a+    -- @ValidationException@.+    --+    -- If the @allowMutlipleValues@ is not set, the default value is @false@.+    allowMultipleValues :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MultipleValuesSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowMultipleValues', 'multipleValuesSetting_allowMultipleValues' - Indicates whether a slot can return multiple values. When @true@, the+-- slot may return more than one value in a response. When @false@, the+-- slot returns only a single value.+--+-- Multi-value slots are only available in the en-US locale. If you set+-- this value to @true@ in any other locale, Amazon Lex throws a+-- @ValidationException@.+--+-- If the @allowMutlipleValues@ is not set, the default value is @false@.+newMultipleValuesSetting ::+  MultipleValuesSetting+newMultipleValuesSetting =+  MultipleValuesSetting'+    { allowMultipleValues =+        Prelude.Nothing+    }++-- | Indicates whether a slot can return multiple values. When @true@, the+-- slot may return more than one value in a response. When @false@, the+-- slot returns only a single value.+--+-- Multi-value slots are only available in the en-US locale. If you set+-- this value to @true@ in any other locale, Amazon Lex throws a+-- @ValidationException@.+--+-- If the @allowMutlipleValues@ is not set, the default value is @false@.+multipleValuesSetting_allowMultipleValues :: Lens.Lens' MultipleValuesSetting (Prelude.Maybe Prelude.Bool)+multipleValuesSetting_allowMultipleValues = Lens.lens (\MultipleValuesSetting' {allowMultipleValues} -> allowMultipleValues) (\s@MultipleValuesSetting' {} a -> s {allowMultipleValues = a} :: MultipleValuesSetting)++instance Data.FromJSON MultipleValuesSetting where+  parseJSON =+    Data.withObject+      "MultipleValuesSetting"+      ( \x ->+          MultipleValuesSetting'+            Prelude.<$> (x Data..:? "allowMultipleValues")+      )++instance Prelude.Hashable MultipleValuesSetting where+  hashWithSalt _salt MultipleValuesSetting' {..} =+    _salt `Prelude.hashWithSalt` allowMultipleValues++instance Prelude.NFData MultipleValuesSetting where+  rnf MultipleValuesSetting' {..} =+    Prelude.rnf allowMultipleValues++instance Data.ToJSON MultipleValuesSetting where+  toJSON MultipleValuesSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("allowMultipleValues" Data..=)+              Prelude.<$> allowMultipleValues+          ]+      )
+ gen/Amazonka/LexV2Models/Types/NewCustomVocabularyItem.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.NewCustomVocabularyItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.NewCustomVocabularyItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The new custom vocabulary item from the custom vocabulary list.+--+-- /See:/ 'newNewCustomVocabularyItem' smart constructor.+data NewCustomVocabularyItem = NewCustomVocabularyItem'+  { -- | The display as value assigned to the new custom vocabulary item from the+    -- custom vocabulary list.+    displayAs :: Prelude.Maybe Prelude.Text,+    -- | The weight assigned to the new custom vocabulary item from the custom+    -- vocabulary list.+    weight :: Prelude.Maybe Prelude.Natural,+    -- | The unique phrase for the new custom vocabulary item from the custom+    -- vocabulary list.+    phrase :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NewCustomVocabularyItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'displayAs', 'newCustomVocabularyItem_displayAs' - The display as value assigned to the new custom vocabulary item from the+-- custom vocabulary list.+--+-- 'weight', 'newCustomVocabularyItem_weight' - The weight assigned to the new custom vocabulary item from the custom+-- vocabulary list.+--+-- 'phrase', 'newCustomVocabularyItem_phrase' - The unique phrase for the new custom vocabulary item from the custom+-- vocabulary list.+newNewCustomVocabularyItem ::+  -- | 'phrase'+  Prelude.Text ->+  NewCustomVocabularyItem+newNewCustomVocabularyItem pPhrase_ =+  NewCustomVocabularyItem'+    { displayAs =+        Prelude.Nothing,+      weight = Prelude.Nothing,+      phrase = pPhrase_+    }++-- | The display as value assigned to the new custom vocabulary item from the+-- custom vocabulary list.+newCustomVocabularyItem_displayAs :: Lens.Lens' NewCustomVocabularyItem (Prelude.Maybe Prelude.Text)+newCustomVocabularyItem_displayAs = Lens.lens (\NewCustomVocabularyItem' {displayAs} -> displayAs) (\s@NewCustomVocabularyItem' {} a -> s {displayAs = a} :: NewCustomVocabularyItem)++-- | The weight assigned to the new custom vocabulary item from the custom+-- vocabulary list.+newCustomVocabularyItem_weight :: Lens.Lens' NewCustomVocabularyItem (Prelude.Maybe Prelude.Natural)+newCustomVocabularyItem_weight = Lens.lens (\NewCustomVocabularyItem' {weight} -> weight) (\s@NewCustomVocabularyItem' {} a -> s {weight = a} :: NewCustomVocabularyItem)++-- | The unique phrase for the new custom vocabulary item from the custom+-- vocabulary list.+newCustomVocabularyItem_phrase :: Lens.Lens' NewCustomVocabularyItem Prelude.Text+newCustomVocabularyItem_phrase = Lens.lens (\NewCustomVocabularyItem' {phrase} -> phrase) (\s@NewCustomVocabularyItem' {} a -> s {phrase = a} :: NewCustomVocabularyItem)++instance Prelude.Hashable NewCustomVocabularyItem where+  hashWithSalt _salt NewCustomVocabularyItem' {..} =+    _salt+      `Prelude.hashWithSalt` displayAs+      `Prelude.hashWithSalt` weight+      `Prelude.hashWithSalt` phrase++instance Prelude.NFData NewCustomVocabularyItem where+  rnf NewCustomVocabularyItem' {..} =+    Prelude.rnf displayAs+      `Prelude.seq` Prelude.rnf weight+      `Prelude.seq` Prelude.rnf phrase++instance Data.ToJSON NewCustomVocabularyItem where+  toJSON NewCustomVocabularyItem' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("displayAs" Data..=) Prelude.<$> displayAs,+            ("weight" Data..=) Prelude.<$> weight,+            Prelude.Just ("phrase" Data..= phrase)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/ObfuscationSetting.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ObfuscationSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ObfuscationSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.ObfuscationSettingType+import qualified Amazonka.Prelude as Prelude++-- | Determines whether Amazon Lex obscures slot values in conversation logs.+--+-- /See:/ 'newObfuscationSetting' smart constructor.+data ObfuscationSetting = ObfuscationSetting'+  { -- | Value that determines whether Amazon Lex obscures slot values in+    -- conversation logs. The default is to obscure the values.+    obfuscationSettingType :: ObfuscationSettingType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ObfuscationSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'obfuscationSettingType', 'obfuscationSetting_obfuscationSettingType' - Value that determines whether Amazon Lex obscures slot values in+-- conversation logs. The default is to obscure the values.+newObfuscationSetting ::+  -- | 'obfuscationSettingType'+  ObfuscationSettingType ->+  ObfuscationSetting+newObfuscationSetting pObfuscationSettingType_ =+  ObfuscationSetting'+    { obfuscationSettingType =+        pObfuscationSettingType_+    }++-- | Value that determines whether Amazon Lex obscures slot values in+-- conversation logs. The default is to obscure the values.+obfuscationSetting_obfuscationSettingType :: Lens.Lens' ObfuscationSetting ObfuscationSettingType+obfuscationSetting_obfuscationSettingType = Lens.lens (\ObfuscationSetting' {obfuscationSettingType} -> obfuscationSettingType) (\s@ObfuscationSetting' {} a -> s {obfuscationSettingType = a} :: ObfuscationSetting)++instance Data.FromJSON ObfuscationSetting where+  parseJSON =+    Data.withObject+      "ObfuscationSetting"+      ( \x ->+          ObfuscationSetting'+            Prelude.<$> (x Data..: "obfuscationSettingType")+      )++instance Prelude.Hashable ObfuscationSetting where+  hashWithSalt _salt ObfuscationSetting' {..} =+    _salt `Prelude.hashWithSalt` obfuscationSettingType++instance Prelude.NFData ObfuscationSetting where+  rnf ObfuscationSetting' {..} =+    Prelude.rnf obfuscationSettingType++instance Data.ToJSON ObfuscationSetting where+  toJSON ObfuscationSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "obfuscationSettingType"+                  Data..= obfuscationSettingType+              )+          ]+      )
+ gen/Amazonka/LexV2Models/Types/ObfuscationSettingType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ObfuscationSettingType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ObfuscationSettingType+  ( ObfuscationSettingType+      ( ..,+        ObfuscationSettingType_DefaultObfuscation,+        ObfuscationSettingType_None+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ObfuscationSettingType = ObfuscationSettingType'+  { fromObfuscationSettingType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern ObfuscationSettingType_DefaultObfuscation :: ObfuscationSettingType+pattern ObfuscationSettingType_DefaultObfuscation = ObfuscationSettingType' "DefaultObfuscation"++pattern ObfuscationSettingType_None :: ObfuscationSettingType+pattern ObfuscationSettingType_None = ObfuscationSettingType' "None"++{-# COMPLETE+  ObfuscationSettingType_DefaultObfuscation,+  ObfuscationSettingType_None,+  ObfuscationSettingType'+  #-}
+ gen/Amazonka/LexV2Models/Types/OutputContext.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.OutputContext+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.OutputContext where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Describes a session context that is activated when an intent is+-- fulfilled.+--+-- /See:/ 'newOutputContext' smart constructor.+data OutputContext = OutputContext'+  { -- | The name of the output context.+    name :: Prelude.Text,+    -- | The amount of time, in seconds, that the output context should remain+    -- active. The time is figured from the first time the context is sent to+    -- the user.+    timeToLiveInSeconds :: Prelude.Natural,+    -- | The number of conversation turns that the output context should remain+    -- active. The number of turns is counted from the first time that the+    -- context is sent to the user.+    turnsToLive :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OutputContext' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'outputContext_name' - The name of the output context.+--+-- 'timeToLiveInSeconds', 'outputContext_timeToLiveInSeconds' - The amount of time, in seconds, that the output context should remain+-- active. The time is figured from the first time the context is sent to+-- the user.+--+-- 'turnsToLive', 'outputContext_turnsToLive' - The number of conversation turns that the output context should remain+-- active. The number of turns is counted from the first time that the+-- context is sent to the user.+newOutputContext ::+  -- | 'name'+  Prelude.Text ->+  -- | 'timeToLiveInSeconds'+  Prelude.Natural ->+  -- | 'turnsToLive'+  Prelude.Natural ->+  OutputContext+newOutputContext+  pName_+  pTimeToLiveInSeconds_+  pTurnsToLive_ =+    OutputContext'+      { name = pName_,+        timeToLiveInSeconds = pTimeToLiveInSeconds_,+        turnsToLive = pTurnsToLive_+      }++-- | The name of the output context.+outputContext_name :: Lens.Lens' OutputContext Prelude.Text+outputContext_name = Lens.lens (\OutputContext' {name} -> name) (\s@OutputContext' {} a -> s {name = a} :: OutputContext)++-- | The amount of time, in seconds, that the output context should remain+-- active. The time is figured from the first time the context is sent to+-- the user.+outputContext_timeToLiveInSeconds :: Lens.Lens' OutputContext Prelude.Natural+outputContext_timeToLiveInSeconds = Lens.lens (\OutputContext' {timeToLiveInSeconds} -> timeToLiveInSeconds) (\s@OutputContext' {} a -> s {timeToLiveInSeconds = a} :: OutputContext)++-- | The number of conversation turns that the output context should remain+-- active. The number of turns is counted from the first time that the+-- context is sent to the user.+outputContext_turnsToLive :: Lens.Lens' OutputContext Prelude.Natural+outputContext_turnsToLive = Lens.lens (\OutputContext' {turnsToLive} -> turnsToLive) (\s@OutputContext' {} a -> s {turnsToLive = a} :: OutputContext)++instance Data.FromJSON OutputContext where+  parseJSON =+    Data.withObject+      "OutputContext"+      ( \x ->+          OutputContext'+            Prelude.<$> (x Data..: "name")+            Prelude.<*> (x Data..: "timeToLiveInSeconds")+            Prelude.<*> (x Data..: "turnsToLive")+      )++instance Prelude.Hashable OutputContext where+  hashWithSalt _salt OutputContext' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` timeToLiveInSeconds+      `Prelude.hashWithSalt` turnsToLive++instance Prelude.NFData OutputContext where+  rnf OutputContext' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf timeToLiveInSeconds+      `Prelude.seq` Prelude.rnf turnsToLive++instance Data.ToJSON OutputContext where+  toJSON OutputContext' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("name" Data..= name),+            Prelude.Just+              ("timeToLiveInSeconds" Data..= timeToLiveInSeconds),+            Prelude.Just ("turnsToLive" Data..= turnsToLive)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/PathFormat.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.PathFormat+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.PathFormat where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The object that contains a path format that will be applied when Amazon+-- Lex reads the transcript file in the bucket you provide. Specify this+-- object if you only want Lex to read a subset of files in your Amazon S3+-- bucket.+--+-- /See:/ 'newPathFormat' smart constructor.+data PathFormat = PathFormat'+  { -- | A list of Amazon S3 prefixes that points to sub-folders in the Amazon S3+    -- bucket. Specify this list if you only want Lex to read the files under+    -- this set of sub-folders.+    objectPrefixes :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PathFormat' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'objectPrefixes', 'pathFormat_objectPrefixes' - A list of Amazon S3 prefixes that points to sub-folders in the Amazon S3+-- bucket. Specify this list if you only want Lex to read the files under+-- this set of sub-folders.+newPathFormat ::+  PathFormat+newPathFormat =+  PathFormat' {objectPrefixes = Prelude.Nothing}++-- | A list of Amazon S3 prefixes that points to sub-folders in the Amazon S3+-- bucket. Specify this list if you only want Lex to read the files under+-- this set of sub-folders.+pathFormat_objectPrefixes :: Lens.Lens' PathFormat (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+pathFormat_objectPrefixes = Lens.lens (\PathFormat' {objectPrefixes} -> objectPrefixes) (\s@PathFormat' {} a -> s {objectPrefixes = a} :: PathFormat) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON PathFormat where+  parseJSON =+    Data.withObject+      "PathFormat"+      ( \x ->+          PathFormat'+            Prelude.<$> (x Data..:? "objectPrefixes")+      )++instance Prelude.Hashable PathFormat where+  hashWithSalt _salt PathFormat' {..} =+    _salt `Prelude.hashWithSalt` objectPrefixes++instance Prelude.NFData PathFormat where+  rnf PathFormat' {..} = Prelude.rnf objectPrefixes++instance Data.ToJSON PathFormat where+  toJSON PathFormat' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("objectPrefixes" Data..=)+              Prelude.<$> objectPrefixes+          ]+      )
+ gen/Amazonka/LexV2Models/Types/PlainTextMessage.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.PlainTextMessage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.PlainTextMessage where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Defines an ASCII text message to send to the user.+--+-- /See:/ 'newPlainTextMessage' smart constructor.+data PlainTextMessage = PlainTextMessage'+  { -- | The message to send to the user.+    value :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PlainTextMessage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'value', 'plainTextMessage_value' - The message to send to the user.+newPlainTextMessage ::+  -- | 'value'+  Prelude.Text ->+  PlainTextMessage+newPlainTextMessage pValue_ =+  PlainTextMessage' {value = pValue_}++-- | The message to send to the user.+plainTextMessage_value :: Lens.Lens' PlainTextMessage Prelude.Text+plainTextMessage_value = Lens.lens (\PlainTextMessage' {value} -> value) (\s@PlainTextMessage' {} a -> s {value = a} :: PlainTextMessage)++instance Data.FromJSON PlainTextMessage where+  parseJSON =+    Data.withObject+      "PlainTextMessage"+      ( \x ->+          PlainTextMessage' Prelude.<$> (x Data..: "value")+      )++instance Prelude.Hashable PlainTextMessage where+  hashWithSalt _salt PlainTextMessage' {..} =+    _salt `Prelude.hashWithSalt` value++instance Prelude.NFData PlainTextMessage where+  rnf PlainTextMessage' {..} = Prelude.rnf value++instance Data.ToJSON PlainTextMessage where+  toJSON PlainTextMessage' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("value" Data..= value)]+      )
+ gen/Amazonka/LexV2Models/Types/PostDialogCodeHookInvocationSpecification.hs view
@@ -0,0 +1,234 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.PostDialogCodeHookInvocationSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.PostDialogCodeHookInvocationSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.ConditionalSpecification+import Amazonka.LexV2Models.Types.DialogState+import Amazonka.LexV2Models.Types.ResponseSpecification+import qualified Amazonka.Prelude as Prelude++-- | Specifies next steps to run after the dialog code hook finishes.+--+-- /See:/ 'newPostDialogCodeHookInvocationSpecification' smart constructor.+data PostDialogCodeHookInvocationSpecification = PostDialogCodeHookInvocationSpecification'+  { -- | A list of conditional branches to evaluate after the dialog code hook+    -- throws an exception or returns with the @State@ field of the @Intent@+    -- object set to @Failed@.+    failureConditional :: Prelude.Maybe ConditionalSpecification,+    -- | Specifies the next step the bot runs after the dialog code hook throws+    -- an exception or returns with the @State@ field of the @Intent@ object+    -- set to @Failed@.+    failureNextStep :: Prelude.Maybe DialogState,+    failureResponse :: Prelude.Maybe ResponseSpecification,+    -- | A list of conditional branches to evaluate after the dialog code hook+    -- finishes successfully.+    successConditional :: Prelude.Maybe ConditionalSpecification,+    -- | Specifics the next step the bot runs after the dialog code hook finishes+    -- successfully.+    successNextStep :: Prelude.Maybe DialogState,+    successResponse :: Prelude.Maybe ResponseSpecification,+    -- | A list of conditional branches to evaluate if the code hook times out.+    timeoutConditional :: Prelude.Maybe ConditionalSpecification,+    -- | Specifies the next step that the bot runs when the code hook times out.+    timeoutNextStep :: Prelude.Maybe DialogState,+    timeoutResponse :: Prelude.Maybe ResponseSpecification+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PostDialogCodeHookInvocationSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failureConditional', 'postDialogCodeHookInvocationSpecification_failureConditional' - A list of conditional branches to evaluate after the dialog code hook+-- throws an exception or returns with the @State@ field of the @Intent@+-- object set to @Failed@.+--+-- 'failureNextStep', 'postDialogCodeHookInvocationSpecification_failureNextStep' - Specifies the next step the bot runs after the dialog code hook throws+-- an exception or returns with the @State@ field of the @Intent@ object+-- set to @Failed@.+--+-- 'failureResponse', 'postDialogCodeHookInvocationSpecification_failureResponse' - Undocumented member.+--+-- 'successConditional', 'postDialogCodeHookInvocationSpecification_successConditional' - A list of conditional branches to evaluate after the dialog code hook+-- finishes successfully.+--+-- 'successNextStep', 'postDialogCodeHookInvocationSpecification_successNextStep' - Specifics the next step the bot runs after the dialog code hook finishes+-- successfully.+--+-- 'successResponse', 'postDialogCodeHookInvocationSpecification_successResponse' - Undocumented member.+--+-- 'timeoutConditional', 'postDialogCodeHookInvocationSpecification_timeoutConditional' - A list of conditional branches to evaluate if the code hook times out.+--+-- 'timeoutNextStep', 'postDialogCodeHookInvocationSpecification_timeoutNextStep' - Specifies the next step that the bot runs when the code hook times out.+--+-- 'timeoutResponse', 'postDialogCodeHookInvocationSpecification_timeoutResponse' - Undocumented member.+newPostDialogCodeHookInvocationSpecification ::+  PostDialogCodeHookInvocationSpecification+newPostDialogCodeHookInvocationSpecification =+  PostDialogCodeHookInvocationSpecification'+    { failureConditional =+        Prelude.Nothing,+      failureNextStep =+        Prelude.Nothing,+      failureResponse =+        Prelude.Nothing,+      successConditional =+        Prelude.Nothing,+      successNextStep =+        Prelude.Nothing,+      successResponse =+        Prelude.Nothing,+      timeoutConditional =+        Prelude.Nothing,+      timeoutNextStep =+        Prelude.Nothing,+      timeoutResponse =+        Prelude.Nothing+    }++-- | A list of conditional branches to evaluate after the dialog code hook+-- throws an exception or returns with the @State@ field of the @Intent@+-- object set to @Failed@.+postDialogCodeHookInvocationSpecification_failureConditional :: Lens.Lens' PostDialogCodeHookInvocationSpecification (Prelude.Maybe ConditionalSpecification)+postDialogCodeHookInvocationSpecification_failureConditional = Lens.lens (\PostDialogCodeHookInvocationSpecification' {failureConditional} -> failureConditional) (\s@PostDialogCodeHookInvocationSpecification' {} a -> s {failureConditional = a} :: PostDialogCodeHookInvocationSpecification)++-- | Specifies the next step the bot runs after the dialog code hook throws+-- an exception or returns with the @State@ field of the @Intent@ object+-- set to @Failed@.+postDialogCodeHookInvocationSpecification_failureNextStep :: Lens.Lens' PostDialogCodeHookInvocationSpecification (Prelude.Maybe DialogState)+postDialogCodeHookInvocationSpecification_failureNextStep = Lens.lens (\PostDialogCodeHookInvocationSpecification' {failureNextStep} -> failureNextStep) (\s@PostDialogCodeHookInvocationSpecification' {} a -> s {failureNextStep = a} :: PostDialogCodeHookInvocationSpecification)++-- | Undocumented member.+postDialogCodeHookInvocationSpecification_failureResponse :: Lens.Lens' PostDialogCodeHookInvocationSpecification (Prelude.Maybe ResponseSpecification)+postDialogCodeHookInvocationSpecification_failureResponse = Lens.lens (\PostDialogCodeHookInvocationSpecification' {failureResponse} -> failureResponse) (\s@PostDialogCodeHookInvocationSpecification' {} a -> s {failureResponse = a} :: PostDialogCodeHookInvocationSpecification)++-- | A list of conditional branches to evaluate after the dialog code hook+-- finishes successfully.+postDialogCodeHookInvocationSpecification_successConditional :: Lens.Lens' PostDialogCodeHookInvocationSpecification (Prelude.Maybe ConditionalSpecification)+postDialogCodeHookInvocationSpecification_successConditional = Lens.lens (\PostDialogCodeHookInvocationSpecification' {successConditional} -> successConditional) (\s@PostDialogCodeHookInvocationSpecification' {} a -> s {successConditional = a} :: PostDialogCodeHookInvocationSpecification)++-- | Specifics the next step the bot runs after the dialog code hook finishes+-- successfully.+postDialogCodeHookInvocationSpecification_successNextStep :: Lens.Lens' PostDialogCodeHookInvocationSpecification (Prelude.Maybe DialogState)+postDialogCodeHookInvocationSpecification_successNextStep = Lens.lens (\PostDialogCodeHookInvocationSpecification' {successNextStep} -> successNextStep) (\s@PostDialogCodeHookInvocationSpecification' {} a -> s {successNextStep = a} :: PostDialogCodeHookInvocationSpecification)++-- | Undocumented member.+postDialogCodeHookInvocationSpecification_successResponse :: Lens.Lens' PostDialogCodeHookInvocationSpecification (Prelude.Maybe ResponseSpecification)+postDialogCodeHookInvocationSpecification_successResponse = Lens.lens (\PostDialogCodeHookInvocationSpecification' {successResponse} -> successResponse) (\s@PostDialogCodeHookInvocationSpecification' {} a -> s {successResponse = a} :: PostDialogCodeHookInvocationSpecification)++-- | A list of conditional branches to evaluate if the code hook times out.+postDialogCodeHookInvocationSpecification_timeoutConditional :: Lens.Lens' PostDialogCodeHookInvocationSpecification (Prelude.Maybe ConditionalSpecification)+postDialogCodeHookInvocationSpecification_timeoutConditional = Lens.lens (\PostDialogCodeHookInvocationSpecification' {timeoutConditional} -> timeoutConditional) (\s@PostDialogCodeHookInvocationSpecification' {} a -> s {timeoutConditional = a} :: PostDialogCodeHookInvocationSpecification)++-- | Specifies the next step that the bot runs when the code hook times out.+postDialogCodeHookInvocationSpecification_timeoutNextStep :: Lens.Lens' PostDialogCodeHookInvocationSpecification (Prelude.Maybe DialogState)+postDialogCodeHookInvocationSpecification_timeoutNextStep = Lens.lens (\PostDialogCodeHookInvocationSpecification' {timeoutNextStep} -> timeoutNextStep) (\s@PostDialogCodeHookInvocationSpecification' {} a -> s {timeoutNextStep = a} :: PostDialogCodeHookInvocationSpecification)++-- | Undocumented member.+postDialogCodeHookInvocationSpecification_timeoutResponse :: Lens.Lens' PostDialogCodeHookInvocationSpecification (Prelude.Maybe ResponseSpecification)+postDialogCodeHookInvocationSpecification_timeoutResponse = Lens.lens (\PostDialogCodeHookInvocationSpecification' {timeoutResponse} -> timeoutResponse) (\s@PostDialogCodeHookInvocationSpecification' {} a -> s {timeoutResponse = a} :: PostDialogCodeHookInvocationSpecification)++instance+  Data.FromJSON+    PostDialogCodeHookInvocationSpecification+  where+  parseJSON =+    Data.withObject+      "PostDialogCodeHookInvocationSpecification"+      ( \x ->+          PostDialogCodeHookInvocationSpecification'+            Prelude.<$> (x Data..:? "failureConditional")+            Prelude.<*> (x Data..:? "failureNextStep")+            Prelude.<*> (x Data..:? "failureResponse")+            Prelude.<*> (x Data..:? "successConditional")+            Prelude.<*> (x Data..:? "successNextStep")+            Prelude.<*> (x Data..:? "successResponse")+            Prelude.<*> (x Data..:? "timeoutConditional")+            Prelude.<*> (x Data..:? "timeoutNextStep")+            Prelude.<*> (x Data..:? "timeoutResponse")+      )++instance+  Prelude.Hashable+    PostDialogCodeHookInvocationSpecification+  where+  hashWithSalt+    _salt+    PostDialogCodeHookInvocationSpecification' {..} =+      _salt+        `Prelude.hashWithSalt` failureConditional+        `Prelude.hashWithSalt` failureNextStep+        `Prelude.hashWithSalt` failureResponse+        `Prelude.hashWithSalt` successConditional+        `Prelude.hashWithSalt` successNextStep+        `Prelude.hashWithSalt` successResponse+        `Prelude.hashWithSalt` timeoutConditional+        `Prelude.hashWithSalt` timeoutNextStep+        `Prelude.hashWithSalt` timeoutResponse++instance+  Prelude.NFData+    PostDialogCodeHookInvocationSpecification+  where+  rnf PostDialogCodeHookInvocationSpecification' {..} =+    Prelude.rnf failureConditional+      `Prelude.seq` Prelude.rnf failureNextStep+      `Prelude.seq` Prelude.rnf failureResponse+      `Prelude.seq` Prelude.rnf successConditional+      `Prelude.seq` Prelude.rnf successNextStep+      `Prelude.seq` Prelude.rnf successResponse+      `Prelude.seq` Prelude.rnf timeoutConditional+      `Prelude.seq` Prelude.rnf timeoutNextStep+      `Prelude.seq` Prelude.rnf timeoutResponse++instance+  Data.ToJSON+    PostDialogCodeHookInvocationSpecification+  where+  toJSON PostDialogCodeHookInvocationSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("failureConditional" Data..=)+              Prelude.<$> failureConditional,+            ("failureNextStep" Data..=)+              Prelude.<$> failureNextStep,+            ("failureResponse" Data..=)+              Prelude.<$> failureResponse,+            ("successConditional" Data..=)+              Prelude.<$> successConditional,+            ("successNextStep" Data..=)+              Prelude.<$> successNextStep,+            ("successResponse" Data..=)+              Prelude.<$> successResponse,+            ("timeoutConditional" Data..=)+              Prelude.<$> timeoutConditional,+            ("timeoutNextStep" Data..=)+              Prelude.<$> timeoutNextStep,+            ("timeoutResponse" Data..=)+              Prelude.<$> timeoutResponse+          ]+      )
+ gen/Amazonka/LexV2Models/Types/PostFulfillmentStatusSpecification.hs view
@@ -0,0 +1,234 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.PostFulfillmentStatusSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.PostFulfillmentStatusSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.ConditionalSpecification+import Amazonka.LexV2Models.Types.DialogState+import Amazonka.LexV2Models.Types.ResponseSpecification+import qualified Amazonka.Prelude as Prelude++-- | Provides a setting that determines whether the post-fulfillment response+-- is sent to the user. For more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html#progress-complete>+--+-- /See:/ 'newPostFulfillmentStatusSpecification' smart constructor.+data PostFulfillmentStatusSpecification = PostFulfillmentStatusSpecification'+  { -- | A list of conditional branches to evaluate after the fulfillment code+    -- hook throws an exception or returns with the @State@ field of the+    -- @Intent@ object set to @Failed@.+    failureConditional :: Prelude.Maybe ConditionalSpecification,+    -- | Specifies the next step the bot runs after the fulfillment code hook+    -- throws an exception or returns with the @State@ field of the @Intent@+    -- object set to @Failed@.+    failureNextStep :: Prelude.Maybe DialogState,+    failureResponse :: Prelude.Maybe ResponseSpecification,+    -- | A list of conditional branches to evaluate after the fulfillment code+    -- hook finishes successfully.+    successConditional :: Prelude.Maybe ConditionalSpecification,+    -- | Specifies the next step in the conversation that Amazon Lex invokes when+    -- the fulfillment code hook completes successfully.+    successNextStep :: Prelude.Maybe DialogState,+    successResponse :: Prelude.Maybe ResponseSpecification,+    -- | A list of conditional branches to evaluate if the fulfillment code hook+    -- times out.+    timeoutConditional :: Prelude.Maybe ConditionalSpecification,+    -- | Specifies the next step that the bot runs when the fulfillment code hook+    -- times out.+    timeoutNextStep :: Prelude.Maybe DialogState,+    timeoutResponse :: Prelude.Maybe ResponseSpecification+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PostFulfillmentStatusSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failureConditional', 'postFulfillmentStatusSpecification_failureConditional' - A list of conditional branches to evaluate after the fulfillment code+-- hook throws an exception or returns with the @State@ field of the+-- @Intent@ object set to @Failed@.+--+-- 'failureNextStep', 'postFulfillmentStatusSpecification_failureNextStep' - Specifies the next step the bot runs after the fulfillment code hook+-- throws an exception or returns with the @State@ field of the @Intent@+-- object set to @Failed@.+--+-- 'failureResponse', 'postFulfillmentStatusSpecification_failureResponse' - Undocumented member.+--+-- 'successConditional', 'postFulfillmentStatusSpecification_successConditional' - A list of conditional branches to evaluate after the fulfillment code+-- hook finishes successfully.+--+-- 'successNextStep', 'postFulfillmentStatusSpecification_successNextStep' - Specifies the next step in the conversation that Amazon Lex invokes when+-- the fulfillment code hook completes successfully.+--+-- 'successResponse', 'postFulfillmentStatusSpecification_successResponse' - Undocumented member.+--+-- 'timeoutConditional', 'postFulfillmentStatusSpecification_timeoutConditional' - A list of conditional branches to evaluate if the fulfillment code hook+-- times out.+--+-- 'timeoutNextStep', 'postFulfillmentStatusSpecification_timeoutNextStep' - Specifies the next step that the bot runs when the fulfillment code hook+-- times out.+--+-- 'timeoutResponse', 'postFulfillmentStatusSpecification_timeoutResponse' - Undocumented member.+newPostFulfillmentStatusSpecification ::+  PostFulfillmentStatusSpecification+newPostFulfillmentStatusSpecification =+  PostFulfillmentStatusSpecification'+    { failureConditional =+        Prelude.Nothing,+      failureNextStep = Prelude.Nothing,+      failureResponse = Prelude.Nothing,+      successConditional = Prelude.Nothing,+      successNextStep = Prelude.Nothing,+      successResponse = Prelude.Nothing,+      timeoutConditional = Prelude.Nothing,+      timeoutNextStep = Prelude.Nothing,+      timeoutResponse = Prelude.Nothing+    }++-- | A list of conditional branches to evaluate after the fulfillment code+-- hook throws an exception or returns with the @State@ field of the+-- @Intent@ object set to @Failed@.+postFulfillmentStatusSpecification_failureConditional :: Lens.Lens' PostFulfillmentStatusSpecification (Prelude.Maybe ConditionalSpecification)+postFulfillmentStatusSpecification_failureConditional = Lens.lens (\PostFulfillmentStatusSpecification' {failureConditional} -> failureConditional) (\s@PostFulfillmentStatusSpecification' {} a -> s {failureConditional = a} :: PostFulfillmentStatusSpecification)++-- | Specifies the next step the bot runs after the fulfillment code hook+-- throws an exception or returns with the @State@ field of the @Intent@+-- object set to @Failed@.+postFulfillmentStatusSpecification_failureNextStep :: Lens.Lens' PostFulfillmentStatusSpecification (Prelude.Maybe DialogState)+postFulfillmentStatusSpecification_failureNextStep = Lens.lens (\PostFulfillmentStatusSpecification' {failureNextStep} -> failureNextStep) (\s@PostFulfillmentStatusSpecification' {} a -> s {failureNextStep = a} :: PostFulfillmentStatusSpecification)++-- | Undocumented member.+postFulfillmentStatusSpecification_failureResponse :: Lens.Lens' PostFulfillmentStatusSpecification (Prelude.Maybe ResponseSpecification)+postFulfillmentStatusSpecification_failureResponse = Lens.lens (\PostFulfillmentStatusSpecification' {failureResponse} -> failureResponse) (\s@PostFulfillmentStatusSpecification' {} a -> s {failureResponse = a} :: PostFulfillmentStatusSpecification)++-- | A list of conditional branches to evaluate after the fulfillment code+-- hook finishes successfully.+postFulfillmentStatusSpecification_successConditional :: Lens.Lens' PostFulfillmentStatusSpecification (Prelude.Maybe ConditionalSpecification)+postFulfillmentStatusSpecification_successConditional = Lens.lens (\PostFulfillmentStatusSpecification' {successConditional} -> successConditional) (\s@PostFulfillmentStatusSpecification' {} a -> s {successConditional = a} :: PostFulfillmentStatusSpecification)++-- | Specifies the next step in the conversation that Amazon Lex invokes when+-- the fulfillment code hook completes successfully.+postFulfillmentStatusSpecification_successNextStep :: Lens.Lens' PostFulfillmentStatusSpecification (Prelude.Maybe DialogState)+postFulfillmentStatusSpecification_successNextStep = Lens.lens (\PostFulfillmentStatusSpecification' {successNextStep} -> successNextStep) (\s@PostFulfillmentStatusSpecification' {} a -> s {successNextStep = a} :: PostFulfillmentStatusSpecification)++-- | Undocumented member.+postFulfillmentStatusSpecification_successResponse :: Lens.Lens' PostFulfillmentStatusSpecification (Prelude.Maybe ResponseSpecification)+postFulfillmentStatusSpecification_successResponse = Lens.lens (\PostFulfillmentStatusSpecification' {successResponse} -> successResponse) (\s@PostFulfillmentStatusSpecification' {} a -> s {successResponse = a} :: PostFulfillmentStatusSpecification)++-- | A list of conditional branches to evaluate if the fulfillment code hook+-- times out.+postFulfillmentStatusSpecification_timeoutConditional :: Lens.Lens' PostFulfillmentStatusSpecification (Prelude.Maybe ConditionalSpecification)+postFulfillmentStatusSpecification_timeoutConditional = Lens.lens (\PostFulfillmentStatusSpecification' {timeoutConditional} -> timeoutConditional) (\s@PostFulfillmentStatusSpecification' {} a -> s {timeoutConditional = a} :: PostFulfillmentStatusSpecification)++-- | Specifies the next step that the bot runs when the fulfillment code hook+-- times out.+postFulfillmentStatusSpecification_timeoutNextStep :: Lens.Lens' PostFulfillmentStatusSpecification (Prelude.Maybe DialogState)+postFulfillmentStatusSpecification_timeoutNextStep = Lens.lens (\PostFulfillmentStatusSpecification' {timeoutNextStep} -> timeoutNextStep) (\s@PostFulfillmentStatusSpecification' {} a -> s {timeoutNextStep = a} :: PostFulfillmentStatusSpecification)++-- | Undocumented member.+postFulfillmentStatusSpecification_timeoutResponse :: Lens.Lens' PostFulfillmentStatusSpecification (Prelude.Maybe ResponseSpecification)+postFulfillmentStatusSpecification_timeoutResponse = Lens.lens (\PostFulfillmentStatusSpecification' {timeoutResponse} -> timeoutResponse) (\s@PostFulfillmentStatusSpecification' {} a -> s {timeoutResponse = a} :: PostFulfillmentStatusSpecification)++instance+  Data.FromJSON+    PostFulfillmentStatusSpecification+  where+  parseJSON =+    Data.withObject+      "PostFulfillmentStatusSpecification"+      ( \x ->+          PostFulfillmentStatusSpecification'+            Prelude.<$> (x Data..:? "failureConditional")+            Prelude.<*> (x Data..:? "failureNextStep")+            Prelude.<*> (x Data..:? "failureResponse")+            Prelude.<*> (x Data..:? "successConditional")+            Prelude.<*> (x Data..:? "successNextStep")+            Prelude.<*> (x Data..:? "successResponse")+            Prelude.<*> (x Data..:? "timeoutConditional")+            Prelude.<*> (x Data..:? "timeoutNextStep")+            Prelude.<*> (x Data..:? "timeoutResponse")+      )++instance+  Prelude.Hashable+    PostFulfillmentStatusSpecification+  where+  hashWithSalt+    _salt+    PostFulfillmentStatusSpecification' {..} =+      _salt+        `Prelude.hashWithSalt` failureConditional+        `Prelude.hashWithSalt` failureNextStep+        `Prelude.hashWithSalt` failureResponse+        `Prelude.hashWithSalt` successConditional+        `Prelude.hashWithSalt` successNextStep+        `Prelude.hashWithSalt` successResponse+        `Prelude.hashWithSalt` timeoutConditional+        `Prelude.hashWithSalt` timeoutNextStep+        `Prelude.hashWithSalt` timeoutResponse++instance+  Prelude.NFData+    PostFulfillmentStatusSpecification+  where+  rnf PostFulfillmentStatusSpecification' {..} =+    Prelude.rnf failureConditional+      `Prelude.seq` Prelude.rnf failureNextStep+      `Prelude.seq` Prelude.rnf failureResponse+      `Prelude.seq` Prelude.rnf successConditional+      `Prelude.seq` Prelude.rnf successNextStep+      `Prelude.seq` Prelude.rnf successResponse+      `Prelude.seq` Prelude.rnf timeoutConditional+      `Prelude.seq` Prelude.rnf timeoutNextStep+      `Prelude.seq` Prelude.rnf timeoutResponse++instance+  Data.ToJSON+    PostFulfillmentStatusSpecification+  where+  toJSON PostFulfillmentStatusSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("failureConditional" Data..=)+              Prelude.<$> failureConditional,+            ("failureNextStep" Data..=)+              Prelude.<$> failureNextStep,+            ("failureResponse" Data..=)+              Prelude.<$> failureResponse,+            ("successConditional" Data..=)+              Prelude.<$> successConditional,+            ("successNextStep" Data..=)+              Prelude.<$> successNextStep,+            ("successResponse" Data..=)+              Prelude.<$> successResponse,+            ("timeoutConditional" Data..=)+              Prelude.<$> timeoutConditional,+            ("timeoutNextStep" Data..=)+              Prelude.<$> timeoutNextStep,+            ("timeoutResponse" Data..=)+              Prelude.<$> timeoutResponse+          ]+      )
+ gen/Amazonka/LexV2Models/Types/Principal.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.Principal+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.Principal where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The IAM principal that you allowing or denying access to an Amazon Lex+-- action. You must provide a @service@ or an @arn@, but not both in the+-- same statement. For more information, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html AWS JSON policy elements: Principal>+-- .+--+-- /See:/ 'newPrincipal' smart constructor.+data Principal = Principal'+  { -- | The Amazon Resource Name (ARN) of the principal.+    arn :: Prelude.Maybe Prelude.Text,+    -- | The name of the AWS service that should allowed or denied access to an+    -- Amazon Lex action.+    service :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Principal' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'arn', 'principal_arn' - The Amazon Resource Name (ARN) of the principal.+--+-- 'service', 'principal_service' - The name of the AWS service that should allowed or denied access to an+-- Amazon Lex action.+newPrincipal ::+  Principal+newPrincipal =+  Principal'+    { arn = Prelude.Nothing,+      service = Prelude.Nothing+    }++-- | The Amazon Resource Name (ARN) of the principal.+principal_arn :: Lens.Lens' Principal (Prelude.Maybe Prelude.Text)+principal_arn = Lens.lens (\Principal' {arn} -> arn) (\s@Principal' {} a -> s {arn = a} :: Principal)++-- | The name of the AWS service that should allowed or denied access to an+-- Amazon Lex action.+principal_service :: Lens.Lens' Principal (Prelude.Maybe Prelude.Text)+principal_service = Lens.lens (\Principal' {service} -> service) (\s@Principal' {} a -> s {service = a} :: Principal)++instance Prelude.Hashable Principal where+  hashWithSalt _salt Principal' {..} =+    _salt+      `Prelude.hashWithSalt` arn+      `Prelude.hashWithSalt` service++instance Prelude.NFData Principal where+  rnf Principal' {..} =+    Prelude.rnf arn `Prelude.seq` Prelude.rnf service++instance Data.ToJSON Principal where+  toJSON Principal' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("arn" Data..=) Prelude.<$> arn,+            ("service" Data..=) Prelude.<$> service+          ]+      )
+ gen/Amazonka/LexV2Models/Types/PromptAttempt.hs view
@@ -0,0 +1,92 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.PromptAttempt+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.PromptAttempt+  ( PromptAttempt+      ( ..,+        PromptAttempt_Initial,+        PromptAttempt_Retry1,+        PromptAttempt_Retry2,+        PromptAttempt_Retry3,+        PromptAttempt_Retry4,+        PromptAttempt_Retry5+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The attempt name of attempts of a prompt.+newtype PromptAttempt = PromptAttempt'+  { fromPromptAttempt ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern PromptAttempt_Initial :: PromptAttempt+pattern PromptAttempt_Initial = PromptAttempt' "Initial"++pattern PromptAttempt_Retry1 :: PromptAttempt+pattern PromptAttempt_Retry1 = PromptAttempt' "Retry1"++pattern PromptAttempt_Retry2 :: PromptAttempt+pattern PromptAttempt_Retry2 = PromptAttempt' "Retry2"++pattern PromptAttempt_Retry3 :: PromptAttempt+pattern PromptAttempt_Retry3 = PromptAttempt' "Retry3"++pattern PromptAttempt_Retry4 :: PromptAttempt+pattern PromptAttempt_Retry4 = PromptAttempt' "Retry4"++pattern PromptAttempt_Retry5 :: PromptAttempt+pattern PromptAttempt_Retry5 = PromptAttempt' "Retry5"++{-# COMPLETE+  PromptAttempt_Initial,+  PromptAttempt_Retry1,+  PromptAttempt_Retry2,+  PromptAttempt_Retry3,+  PromptAttempt_Retry4,+  PromptAttempt_Retry5,+  PromptAttempt'+  #-}
+ gen/Amazonka/LexV2Models/Types/PromptAttemptSpecification.hs view
@@ -0,0 +1,133 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.PromptAttemptSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.PromptAttemptSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.AllowedInputTypes+import Amazonka.LexV2Models.Types.AudioAndDTMFInputSpecification+import Amazonka.LexV2Models.Types.TextInputSpecification+import qualified Amazonka.Prelude as Prelude++-- | Specifies the settings on a prompt attempt.+--+-- /See:/ 'newPromptAttemptSpecification' smart constructor.+data PromptAttemptSpecification = PromptAttemptSpecification'+  { -- | Indicates whether the user can interrupt a speech prompt attempt from+    -- the bot.+    allowInterrupt :: Prelude.Maybe Prelude.Bool,+    -- | Specifies the settings on audio and DTMF input.+    audioAndDTMFInputSpecification :: Prelude.Maybe AudioAndDTMFInputSpecification,+    -- | Specifies the settings on text input.+    textInputSpecification :: Prelude.Maybe TextInputSpecification,+    -- | Indicates the allowed input types of the prompt attempt.+    allowedInputTypes :: AllowedInputTypes+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PromptAttemptSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowInterrupt', 'promptAttemptSpecification_allowInterrupt' - Indicates whether the user can interrupt a speech prompt attempt from+-- the bot.+--+-- 'audioAndDTMFInputSpecification', 'promptAttemptSpecification_audioAndDTMFInputSpecification' - Specifies the settings on audio and DTMF input.+--+-- 'textInputSpecification', 'promptAttemptSpecification_textInputSpecification' - Specifies the settings on text input.+--+-- 'allowedInputTypes', 'promptAttemptSpecification_allowedInputTypes' - Indicates the allowed input types of the prompt attempt.+newPromptAttemptSpecification ::+  -- | 'allowedInputTypes'+  AllowedInputTypes ->+  PromptAttemptSpecification+newPromptAttemptSpecification pAllowedInputTypes_ =+  PromptAttemptSpecification'+    { allowInterrupt =+        Prelude.Nothing,+      audioAndDTMFInputSpecification =+        Prelude.Nothing,+      textInputSpecification = Prelude.Nothing,+      allowedInputTypes = pAllowedInputTypes_+    }++-- | Indicates whether the user can interrupt a speech prompt attempt from+-- the bot.+promptAttemptSpecification_allowInterrupt :: Lens.Lens' PromptAttemptSpecification (Prelude.Maybe Prelude.Bool)+promptAttemptSpecification_allowInterrupt = Lens.lens (\PromptAttemptSpecification' {allowInterrupt} -> allowInterrupt) (\s@PromptAttemptSpecification' {} a -> s {allowInterrupt = a} :: PromptAttemptSpecification)++-- | Specifies the settings on audio and DTMF input.+promptAttemptSpecification_audioAndDTMFInputSpecification :: Lens.Lens' PromptAttemptSpecification (Prelude.Maybe AudioAndDTMFInputSpecification)+promptAttemptSpecification_audioAndDTMFInputSpecification = Lens.lens (\PromptAttemptSpecification' {audioAndDTMFInputSpecification} -> audioAndDTMFInputSpecification) (\s@PromptAttemptSpecification' {} a -> s {audioAndDTMFInputSpecification = a} :: PromptAttemptSpecification)++-- | Specifies the settings on text input.+promptAttemptSpecification_textInputSpecification :: Lens.Lens' PromptAttemptSpecification (Prelude.Maybe TextInputSpecification)+promptAttemptSpecification_textInputSpecification = Lens.lens (\PromptAttemptSpecification' {textInputSpecification} -> textInputSpecification) (\s@PromptAttemptSpecification' {} a -> s {textInputSpecification = a} :: PromptAttemptSpecification)++-- | Indicates the allowed input types of the prompt attempt.+promptAttemptSpecification_allowedInputTypes :: Lens.Lens' PromptAttemptSpecification AllowedInputTypes+promptAttemptSpecification_allowedInputTypes = Lens.lens (\PromptAttemptSpecification' {allowedInputTypes} -> allowedInputTypes) (\s@PromptAttemptSpecification' {} a -> s {allowedInputTypes = a} :: PromptAttemptSpecification)++instance Data.FromJSON PromptAttemptSpecification where+  parseJSON =+    Data.withObject+      "PromptAttemptSpecification"+      ( \x ->+          PromptAttemptSpecification'+            Prelude.<$> (x Data..:? "allowInterrupt")+            Prelude.<*> (x Data..:? "audioAndDTMFInputSpecification")+            Prelude.<*> (x Data..:? "textInputSpecification")+            Prelude.<*> (x Data..: "allowedInputTypes")+      )++instance Prelude.Hashable PromptAttemptSpecification where+  hashWithSalt _salt PromptAttemptSpecification' {..} =+    _salt+      `Prelude.hashWithSalt` allowInterrupt+      `Prelude.hashWithSalt` audioAndDTMFInputSpecification+      `Prelude.hashWithSalt` textInputSpecification+      `Prelude.hashWithSalt` allowedInputTypes++instance Prelude.NFData PromptAttemptSpecification where+  rnf PromptAttemptSpecification' {..} =+    Prelude.rnf allowInterrupt+      `Prelude.seq` Prelude.rnf audioAndDTMFInputSpecification+      `Prelude.seq` Prelude.rnf textInputSpecification+      `Prelude.seq` Prelude.rnf allowedInputTypes++instance Data.ToJSON PromptAttemptSpecification where+  toJSON PromptAttemptSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("allowInterrupt" Data..=)+              Prelude.<$> allowInterrupt,+            ("audioAndDTMFInputSpecification" Data..=)+              Prelude.<$> audioAndDTMFInputSpecification,+            ("textInputSpecification" Data..=)+              Prelude.<$> textInputSpecification,+            Prelude.Just+              ("allowedInputTypes" Data..= allowedInputTypes)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/PromptSpecification.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.PromptSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.PromptSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.MessageGroup+import Amazonka.LexV2Models.Types.MessageSelectionStrategy+import Amazonka.LexV2Models.Types.PromptAttempt+import Amazonka.LexV2Models.Types.PromptAttemptSpecification+import qualified Amazonka.Prelude as Prelude++-- | Specifies a list of message groups that Amazon Lex sends to a user to+-- elicit a response.+--+-- /See:/ 'newPromptSpecification' smart constructor.+data PromptSpecification = PromptSpecification'+  { -- | Indicates whether the user can interrupt a speech prompt from the bot.+    allowInterrupt :: Prelude.Maybe Prelude.Bool,+    -- | Indicates how a message is selected from a message group among retries.+    messageSelectionStrategy :: Prelude.Maybe MessageSelectionStrategy,+    -- | Specifies the advanced settings on each attempt of the prompt.+    promptAttemptsSpecification :: Prelude.Maybe (Prelude.HashMap PromptAttempt PromptAttemptSpecification),+    -- | A collection of messages that Amazon Lex can send to the user. Amazon+    -- Lex chooses the actual message to send at runtime.+    messageGroups :: Prelude.NonEmpty MessageGroup,+    -- | The maximum number of times the bot tries to elicit a response from the+    -- user using this prompt.+    maxRetries :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PromptSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowInterrupt', 'promptSpecification_allowInterrupt' - Indicates whether the user can interrupt a speech prompt from the bot.+--+-- 'messageSelectionStrategy', 'promptSpecification_messageSelectionStrategy' - Indicates how a message is selected from a message group among retries.+--+-- 'promptAttemptsSpecification', 'promptSpecification_promptAttemptsSpecification' - Specifies the advanced settings on each attempt of the prompt.+--+-- 'messageGroups', 'promptSpecification_messageGroups' - A collection of messages that Amazon Lex can send to the user. Amazon+-- Lex chooses the actual message to send at runtime.+--+-- 'maxRetries', 'promptSpecification_maxRetries' - The maximum number of times the bot tries to elicit a response from the+-- user using this prompt.+newPromptSpecification ::+  -- | 'messageGroups'+  Prelude.NonEmpty MessageGroup ->+  -- | 'maxRetries'+  Prelude.Natural ->+  PromptSpecification+newPromptSpecification pMessageGroups_ pMaxRetries_ =+  PromptSpecification'+    { allowInterrupt =+        Prelude.Nothing,+      messageSelectionStrategy = Prelude.Nothing,+      promptAttemptsSpecification = Prelude.Nothing,+      messageGroups = Lens.coerced Lens.# pMessageGroups_,+      maxRetries = pMaxRetries_+    }++-- | Indicates whether the user can interrupt a speech prompt from the bot.+promptSpecification_allowInterrupt :: Lens.Lens' PromptSpecification (Prelude.Maybe Prelude.Bool)+promptSpecification_allowInterrupt = Lens.lens (\PromptSpecification' {allowInterrupt} -> allowInterrupt) (\s@PromptSpecification' {} a -> s {allowInterrupt = a} :: PromptSpecification)++-- | Indicates how a message is selected from a message group among retries.+promptSpecification_messageSelectionStrategy :: Lens.Lens' PromptSpecification (Prelude.Maybe MessageSelectionStrategy)+promptSpecification_messageSelectionStrategy = Lens.lens (\PromptSpecification' {messageSelectionStrategy} -> messageSelectionStrategy) (\s@PromptSpecification' {} a -> s {messageSelectionStrategy = a} :: PromptSpecification)++-- | Specifies the advanced settings on each attempt of the prompt.+promptSpecification_promptAttemptsSpecification :: Lens.Lens' PromptSpecification (Prelude.Maybe (Prelude.HashMap PromptAttempt PromptAttemptSpecification))+promptSpecification_promptAttemptsSpecification = Lens.lens (\PromptSpecification' {promptAttemptsSpecification} -> promptAttemptsSpecification) (\s@PromptSpecification' {} a -> s {promptAttemptsSpecification = a} :: PromptSpecification) Prelude.. Lens.mapping Lens.coerced++-- | A collection of messages that Amazon Lex can send to the user. Amazon+-- Lex chooses the actual message to send at runtime.+promptSpecification_messageGroups :: Lens.Lens' PromptSpecification (Prelude.NonEmpty MessageGroup)+promptSpecification_messageGroups = Lens.lens (\PromptSpecification' {messageGroups} -> messageGroups) (\s@PromptSpecification' {} a -> s {messageGroups = a} :: PromptSpecification) Prelude.. Lens.coerced++-- | The maximum number of times the bot tries to elicit a response from the+-- user using this prompt.+promptSpecification_maxRetries :: Lens.Lens' PromptSpecification Prelude.Natural+promptSpecification_maxRetries = Lens.lens (\PromptSpecification' {maxRetries} -> maxRetries) (\s@PromptSpecification' {} a -> s {maxRetries = a} :: PromptSpecification)++instance Data.FromJSON PromptSpecification where+  parseJSON =+    Data.withObject+      "PromptSpecification"+      ( \x ->+          PromptSpecification'+            Prelude.<$> (x Data..:? "allowInterrupt")+            Prelude.<*> (x Data..:? "messageSelectionStrategy")+            Prelude.<*> ( x+                            Data..:? "promptAttemptsSpecification"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "messageGroups")+            Prelude.<*> (x Data..: "maxRetries")+      )++instance Prelude.Hashable PromptSpecification where+  hashWithSalt _salt PromptSpecification' {..} =+    _salt+      `Prelude.hashWithSalt` allowInterrupt+      `Prelude.hashWithSalt` messageSelectionStrategy+      `Prelude.hashWithSalt` promptAttemptsSpecification+      `Prelude.hashWithSalt` messageGroups+      `Prelude.hashWithSalt` maxRetries++instance Prelude.NFData PromptSpecification where+  rnf PromptSpecification' {..} =+    Prelude.rnf allowInterrupt+      `Prelude.seq` Prelude.rnf messageSelectionStrategy+      `Prelude.seq` Prelude.rnf promptAttemptsSpecification+      `Prelude.seq` Prelude.rnf messageGroups+      `Prelude.seq` Prelude.rnf maxRetries++instance Data.ToJSON PromptSpecification where+  toJSON PromptSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("allowInterrupt" Data..=)+              Prelude.<$> allowInterrupt,+            ("messageSelectionStrategy" Data..=)+              Prelude.<$> messageSelectionStrategy,+            ("promptAttemptsSpecification" Data..=)+              Prelude.<$> promptAttemptsSpecification,+            Prelude.Just ("messageGroups" Data..= messageGroups),+            Prelude.Just ("maxRetries" Data..= maxRetries)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/RecommendedIntentSummary.hs view
@@ -0,0 +1,103 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.RecommendedIntentSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.RecommendedIntentSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An object that contains a summary of a recommended intent.+--+-- /See:/ 'newRecommendedIntentSummary' smart constructor.+data RecommendedIntentSummary = RecommendedIntentSummary'+  { -- | The unique identifier of a recommended intent associated with the bot+    -- recommendation.+    intentId :: Prelude.Maybe Prelude.Text,+    -- | The name of a recommended intent associated with the bot recommendation.+    intentName :: Prelude.Maybe Prelude.Text,+    -- | The count of sample utterances of a recommended intent that is+    -- associated with a bot recommendation.+    sampleUtterancesCount :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RecommendedIntentSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'intentId', 'recommendedIntentSummary_intentId' - The unique identifier of a recommended intent associated with the bot+-- recommendation.+--+-- 'intentName', 'recommendedIntentSummary_intentName' - The name of a recommended intent associated with the bot recommendation.+--+-- 'sampleUtterancesCount', 'recommendedIntentSummary_sampleUtterancesCount' - The count of sample utterances of a recommended intent that is+-- associated with a bot recommendation.+newRecommendedIntentSummary ::+  RecommendedIntentSummary+newRecommendedIntentSummary =+  RecommendedIntentSummary'+    { intentId =+        Prelude.Nothing,+      intentName = Prelude.Nothing,+      sampleUtterancesCount = Prelude.Nothing+    }++-- | The unique identifier of a recommended intent associated with the bot+-- recommendation.+recommendedIntentSummary_intentId :: Lens.Lens' RecommendedIntentSummary (Prelude.Maybe Prelude.Text)+recommendedIntentSummary_intentId = Lens.lens (\RecommendedIntentSummary' {intentId} -> intentId) (\s@RecommendedIntentSummary' {} a -> s {intentId = a} :: RecommendedIntentSummary)++-- | The name of a recommended intent associated with the bot recommendation.+recommendedIntentSummary_intentName :: Lens.Lens' RecommendedIntentSummary (Prelude.Maybe Prelude.Text)+recommendedIntentSummary_intentName = Lens.lens (\RecommendedIntentSummary' {intentName} -> intentName) (\s@RecommendedIntentSummary' {} a -> s {intentName = a} :: RecommendedIntentSummary)++-- | The count of sample utterances of a recommended intent that is+-- associated with a bot recommendation.+recommendedIntentSummary_sampleUtterancesCount :: Lens.Lens' RecommendedIntentSummary (Prelude.Maybe Prelude.Int)+recommendedIntentSummary_sampleUtterancesCount = Lens.lens (\RecommendedIntentSummary' {sampleUtterancesCount} -> sampleUtterancesCount) (\s@RecommendedIntentSummary' {} a -> s {sampleUtterancesCount = a} :: RecommendedIntentSummary)++instance Data.FromJSON RecommendedIntentSummary where+  parseJSON =+    Data.withObject+      "RecommendedIntentSummary"+      ( \x ->+          RecommendedIntentSummary'+            Prelude.<$> (x Data..:? "intentId")+            Prelude.<*> (x Data..:? "intentName")+            Prelude.<*> (x Data..:? "sampleUtterancesCount")+      )++instance Prelude.Hashable RecommendedIntentSummary where+  hashWithSalt _salt RecommendedIntentSummary' {..} =+    _salt+      `Prelude.hashWithSalt` intentId+      `Prelude.hashWithSalt` intentName+      `Prelude.hashWithSalt` sampleUtterancesCount++instance Prelude.NFData RecommendedIntentSummary where+  rnf RecommendedIntentSummary' {..} =+    Prelude.rnf intentId+      `Prelude.seq` Prelude.rnf intentName+      `Prelude.seq` Prelude.rnf sampleUtterancesCount
+ gen/Amazonka/LexV2Models/Types/RelativeAggregationDuration.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.RelativeAggregationDuration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.RelativeAggregationDuration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.TimeDimension+import qualified Amazonka.Prelude as Prelude++-- | Specifies the time window that utterance statistics are returned for.+-- The time window is always relative to the last time that the that+-- utterances were aggregated. For example, if the+-- @ListAggregatedUtterances@ operation is called at 1600, the time window+-- is set to 1 hour, and the last refresh time was 1530, only utterances+-- made between 1430 and 1530 are returned.+--+-- You can choose the time window that statistics should be returned for.+--+-- -   __Hours__ - You can request utterance statistics for 1, 3, 6, 12, or+--     24 hour time windows. Statistics are refreshed every half hour for 1+--     hour time windows, and hourly for the other time windows.+--+-- -   __Days__ - You can request utterance statistics for 3 days.+--     Statistics are refreshed every 6 hours.+--+-- -   __Weeks__ - You can see statistics for one or two weeks. Statistics+--     are refreshed every 12 hours for one week time windows, and once per+--     day for two week time windows.+--+-- /See:/ 'newRelativeAggregationDuration' smart constructor.+data RelativeAggregationDuration = RelativeAggregationDuration'+  { -- | The type of time period that the @timeValue@ field represents.+    timeDimension :: TimeDimension,+    -- | The period of the time window to gather statistics for. The valid value+    -- depends on the setting of the @timeDimension@ field.+    --+    -- -   @Hours@ - 1\/3\/6\/12\/24+    --+    -- -   @Days@ - 3+    --+    -- -   @Weeks@ - 1\/2+    timeValue :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RelativeAggregationDuration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'timeDimension', 'relativeAggregationDuration_timeDimension' - The type of time period that the @timeValue@ field represents.+--+-- 'timeValue', 'relativeAggregationDuration_timeValue' - The period of the time window to gather statistics for. The valid value+-- depends on the setting of the @timeDimension@ field.+--+-- -   @Hours@ - 1\/3\/6\/12\/24+--+-- -   @Days@ - 3+--+-- -   @Weeks@ - 1\/2+newRelativeAggregationDuration ::+  -- | 'timeDimension'+  TimeDimension ->+  -- | 'timeValue'+  Prelude.Natural ->+  RelativeAggregationDuration+newRelativeAggregationDuration+  pTimeDimension_+  pTimeValue_ =+    RelativeAggregationDuration'+      { timeDimension =+          pTimeDimension_,+        timeValue = pTimeValue_+      }++-- | The type of time period that the @timeValue@ field represents.+relativeAggregationDuration_timeDimension :: Lens.Lens' RelativeAggregationDuration TimeDimension+relativeAggregationDuration_timeDimension = Lens.lens (\RelativeAggregationDuration' {timeDimension} -> timeDimension) (\s@RelativeAggregationDuration' {} a -> s {timeDimension = a} :: RelativeAggregationDuration)++-- | The period of the time window to gather statistics for. The valid value+-- depends on the setting of the @timeDimension@ field.+--+-- -   @Hours@ - 1\/3\/6\/12\/24+--+-- -   @Days@ - 3+--+-- -   @Weeks@ - 1\/2+relativeAggregationDuration_timeValue :: Lens.Lens' RelativeAggregationDuration Prelude.Natural+relativeAggregationDuration_timeValue = Lens.lens (\RelativeAggregationDuration' {timeValue} -> timeValue) (\s@RelativeAggregationDuration' {} a -> s {timeValue = a} :: RelativeAggregationDuration)++instance Data.FromJSON RelativeAggregationDuration where+  parseJSON =+    Data.withObject+      "RelativeAggregationDuration"+      ( \x ->+          RelativeAggregationDuration'+            Prelude.<$> (x Data..: "timeDimension")+            Prelude.<*> (x Data..: "timeValue")+      )++instance Prelude.Hashable RelativeAggregationDuration where+  hashWithSalt _salt RelativeAggregationDuration' {..} =+    _salt+      `Prelude.hashWithSalt` timeDimension+      `Prelude.hashWithSalt` timeValue++instance Prelude.NFData RelativeAggregationDuration where+  rnf RelativeAggregationDuration' {..} =+    Prelude.rnf timeDimension+      `Prelude.seq` Prelude.rnf timeValue++instance Data.ToJSON RelativeAggregationDuration where+  toJSON RelativeAggregationDuration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("timeDimension" Data..= timeDimension),+            Prelude.Just ("timeValue" Data..= timeValue)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/ResponseSpecification.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.ResponseSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.ResponseSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.MessageGroup+import qualified Amazonka.Prelude as Prelude++-- | Specifies a list of message groups that Amazon Lex uses to respond the+-- user input.+--+-- /See:/ 'newResponseSpecification' smart constructor.+data ResponseSpecification = ResponseSpecification'+  { -- | Indicates whether the user can interrupt a speech response from Amazon+    -- Lex.+    allowInterrupt :: Prelude.Maybe Prelude.Bool,+    -- | A collection of responses that Amazon Lex can send to the user. Amazon+    -- Lex chooses the actual response to send at runtime.+    messageGroups :: Prelude.NonEmpty MessageGroup+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResponseSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowInterrupt', 'responseSpecification_allowInterrupt' - Indicates whether the user can interrupt a speech response from Amazon+-- Lex.+--+-- 'messageGroups', 'responseSpecification_messageGroups' - A collection of responses that Amazon Lex can send to the user. Amazon+-- Lex chooses the actual response to send at runtime.+newResponseSpecification ::+  -- | 'messageGroups'+  Prelude.NonEmpty MessageGroup ->+  ResponseSpecification+newResponseSpecification pMessageGroups_ =+  ResponseSpecification'+    { allowInterrupt =+        Prelude.Nothing,+      messageGroups = Lens.coerced Lens.# pMessageGroups_+    }++-- | Indicates whether the user can interrupt a speech response from Amazon+-- Lex.+responseSpecification_allowInterrupt :: Lens.Lens' ResponseSpecification (Prelude.Maybe Prelude.Bool)+responseSpecification_allowInterrupt = Lens.lens (\ResponseSpecification' {allowInterrupt} -> allowInterrupt) (\s@ResponseSpecification' {} a -> s {allowInterrupt = a} :: ResponseSpecification)++-- | A collection of responses that Amazon Lex can send to the user. Amazon+-- Lex chooses the actual response to send at runtime.+responseSpecification_messageGroups :: Lens.Lens' ResponseSpecification (Prelude.NonEmpty MessageGroup)+responseSpecification_messageGroups = Lens.lens (\ResponseSpecification' {messageGroups} -> messageGroups) (\s@ResponseSpecification' {} a -> s {messageGroups = a} :: ResponseSpecification) Prelude.. Lens.coerced++instance Data.FromJSON ResponseSpecification where+  parseJSON =+    Data.withObject+      "ResponseSpecification"+      ( \x ->+          ResponseSpecification'+            Prelude.<$> (x Data..:? "allowInterrupt")+            Prelude.<*> (x Data..: "messageGroups")+      )++instance Prelude.Hashable ResponseSpecification where+  hashWithSalt _salt ResponseSpecification' {..} =+    _salt+      `Prelude.hashWithSalt` allowInterrupt+      `Prelude.hashWithSalt` messageGroups++instance Prelude.NFData ResponseSpecification where+  rnf ResponseSpecification' {..} =+    Prelude.rnf allowInterrupt+      `Prelude.seq` Prelude.rnf messageGroups++instance Data.ToJSON ResponseSpecification where+  toJSON ResponseSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("allowInterrupt" Data..=)+              Prelude.<$> allowInterrupt,+            Prelude.Just+              ("messageGroups" Data..= messageGroups)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/S3BucketLogDestination.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.S3BucketLogDestination+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.S3BucketLogDestination where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies an Amazon S3 bucket for logging audio conversations+--+-- /See:/ 'newS3BucketLogDestination' smart constructor.+data S3BucketLogDestination = S3BucketLogDestination'+  { -- | The Amazon Resource Name (ARN) of an AWS Key Management Service (KMS)+    -- key for encrypting audio log files stored in an S3 bucket.+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an Amazon S3 bucket where audio log+    -- files are stored.+    s3BucketArn :: Prelude.Text,+    -- | The S3 prefix to assign to audio log files.+    logPrefix :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3BucketLogDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'kmsKeyArn', 's3BucketLogDestination_kmsKeyArn' - The Amazon Resource Name (ARN) of an AWS Key Management Service (KMS)+-- key for encrypting audio log files stored in an S3 bucket.+--+-- 's3BucketArn', 's3BucketLogDestination_s3BucketArn' - The Amazon Resource Name (ARN) of an Amazon S3 bucket where audio log+-- files are stored.+--+-- 'logPrefix', 's3BucketLogDestination_logPrefix' - The S3 prefix to assign to audio log files.+newS3BucketLogDestination ::+  -- | 's3BucketArn'+  Prelude.Text ->+  -- | 'logPrefix'+  Prelude.Text ->+  S3BucketLogDestination+newS3BucketLogDestination pS3BucketArn_ pLogPrefix_ =+  S3BucketLogDestination'+    { kmsKeyArn =+        Prelude.Nothing,+      s3BucketArn = pS3BucketArn_,+      logPrefix = pLogPrefix_+    }++-- | The Amazon Resource Name (ARN) of an AWS Key Management Service (KMS)+-- key for encrypting audio log files stored in an S3 bucket.+s3BucketLogDestination_kmsKeyArn :: Lens.Lens' S3BucketLogDestination (Prelude.Maybe Prelude.Text)+s3BucketLogDestination_kmsKeyArn = Lens.lens (\S3BucketLogDestination' {kmsKeyArn} -> kmsKeyArn) (\s@S3BucketLogDestination' {} a -> s {kmsKeyArn = a} :: S3BucketLogDestination)++-- | The Amazon Resource Name (ARN) of an Amazon S3 bucket where audio log+-- files are stored.+s3BucketLogDestination_s3BucketArn :: Lens.Lens' S3BucketLogDestination Prelude.Text+s3BucketLogDestination_s3BucketArn = Lens.lens (\S3BucketLogDestination' {s3BucketArn} -> s3BucketArn) (\s@S3BucketLogDestination' {} a -> s {s3BucketArn = a} :: S3BucketLogDestination)++-- | The S3 prefix to assign to audio log files.+s3BucketLogDestination_logPrefix :: Lens.Lens' S3BucketLogDestination Prelude.Text+s3BucketLogDestination_logPrefix = Lens.lens (\S3BucketLogDestination' {logPrefix} -> logPrefix) (\s@S3BucketLogDestination' {} a -> s {logPrefix = a} :: S3BucketLogDestination)++instance Data.FromJSON S3BucketLogDestination where+  parseJSON =+    Data.withObject+      "S3BucketLogDestination"+      ( \x ->+          S3BucketLogDestination'+            Prelude.<$> (x Data..:? "kmsKeyArn")+            Prelude.<*> (x Data..: "s3BucketArn")+            Prelude.<*> (x Data..: "logPrefix")+      )++instance Prelude.Hashable S3BucketLogDestination where+  hashWithSalt _salt S3BucketLogDestination' {..} =+    _salt+      `Prelude.hashWithSalt` kmsKeyArn+      `Prelude.hashWithSalt` s3BucketArn+      `Prelude.hashWithSalt` logPrefix++instance Prelude.NFData S3BucketLogDestination where+  rnf S3BucketLogDestination' {..} =+    Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf s3BucketArn+      `Prelude.seq` Prelude.rnf logPrefix++instance Data.ToJSON S3BucketLogDestination where+  toJSON S3BucketLogDestination' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("kmsKeyArn" Data..=) Prelude.<$> kmsKeyArn,+            Prelude.Just ("s3BucketArn" Data..= s3BucketArn),+            Prelude.Just ("logPrefix" Data..= logPrefix)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/S3BucketTranscriptSource.hs view
@@ -0,0 +1,175 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.S3BucketTranscriptSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.S3BucketTranscriptSource where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.PathFormat+import Amazonka.LexV2Models.Types.TranscriptFilter+import Amazonka.LexV2Models.Types.TranscriptFormat+import qualified Amazonka.Prelude as Prelude++-- | The object representing the Amazon S3 bucket containing the transcript,+-- as well as the associated metadata.+--+-- /See:/ 'newS3BucketTranscriptSource' smart constructor.+data S3BucketTranscriptSource = S3BucketTranscriptSource'+  { -- | The ARN of the KMS key that customer use to encrypt their Amazon S3+    -- bucket. Only use this field if your bucket is encrypted using a customer+    -- managed KMS key.+    kmsKeyArn :: Prelude.Maybe Prelude.Text,+    -- | The object that contains a path format that will be applied when Amazon+    -- Lex reads the transcript file in the bucket you provide. Specify this+    -- object if you only want Lex to read a subset of files in your Amazon S3+    -- bucket.+    pathFormat :: Prelude.Maybe PathFormat,+    -- | The object that contains the filter which will be applied when Amazon+    -- Lex reads through the Amazon S3 bucket. Specify this object if you want+    -- Amazon Lex to read only a subset of the Amazon S3 bucket based on the+    -- filter you provide.+    transcriptFilter :: Prelude.Maybe TranscriptFilter,+    -- | The name of the bucket containing the transcript and the associated+    -- metadata.+    s3BucketName :: Prelude.Text,+    -- | The format of the transcript content. Currently, Genie only supports the+    -- Amazon Lex transcript format.+    transcriptFormat :: TranscriptFormat+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3BucketTranscriptSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'kmsKeyArn', 's3BucketTranscriptSource_kmsKeyArn' - The ARN of the KMS key that customer use to encrypt their Amazon S3+-- bucket. Only use this field if your bucket is encrypted using a customer+-- managed KMS key.+--+-- 'pathFormat', 's3BucketTranscriptSource_pathFormat' - The object that contains a path format that will be applied when Amazon+-- Lex reads the transcript file in the bucket you provide. Specify this+-- object if you only want Lex to read a subset of files in your Amazon S3+-- bucket.+--+-- 'transcriptFilter', 's3BucketTranscriptSource_transcriptFilter' - The object that contains the filter which will be applied when Amazon+-- Lex reads through the Amazon S3 bucket. Specify this object if you want+-- Amazon Lex to read only a subset of the Amazon S3 bucket based on the+-- filter you provide.+--+-- 's3BucketName', 's3BucketTranscriptSource_s3BucketName' - The name of the bucket containing the transcript and the associated+-- metadata.+--+-- 'transcriptFormat', 's3BucketTranscriptSource_transcriptFormat' - The format of the transcript content. Currently, Genie only supports the+-- Amazon Lex transcript format.+newS3BucketTranscriptSource ::+  -- | 's3BucketName'+  Prelude.Text ->+  -- | 'transcriptFormat'+  TranscriptFormat ->+  S3BucketTranscriptSource+newS3BucketTranscriptSource+  pS3BucketName_+  pTranscriptFormat_ =+    S3BucketTranscriptSource'+      { kmsKeyArn =+          Prelude.Nothing,+        pathFormat = Prelude.Nothing,+        transcriptFilter = Prelude.Nothing,+        s3BucketName = pS3BucketName_,+        transcriptFormat = pTranscriptFormat_+      }++-- | The ARN of the KMS key that customer use to encrypt their Amazon S3+-- bucket. Only use this field if your bucket is encrypted using a customer+-- managed KMS key.+s3BucketTranscriptSource_kmsKeyArn :: Lens.Lens' S3BucketTranscriptSource (Prelude.Maybe Prelude.Text)+s3BucketTranscriptSource_kmsKeyArn = Lens.lens (\S3BucketTranscriptSource' {kmsKeyArn} -> kmsKeyArn) (\s@S3BucketTranscriptSource' {} a -> s {kmsKeyArn = a} :: S3BucketTranscriptSource)++-- | The object that contains a path format that will be applied when Amazon+-- Lex reads the transcript file in the bucket you provide. Specify this+-- object if you only want Lex to read a subset of files in your Amazon S3+-- bucket.+s3BucketTranscriptSource_pathFormat :: Lens.Lens' S3BucketTranscriptSource (Prelude.Maybe PathFormat)+s3BucketTranscriptSource_pathFormat = Lens.lens (\S3BucketTranscriptSource' {pathFormat} -> pathFormat) (\s@S3BucketTranscriptSource' {} a -> s {pathFormat = a} :: S3BucketTranscriptSource)++-- | The object that contains the filter which will be applied when Amazon+-- Lex reads through the Amazon S3 bucket. Specify this object if you want+-- Amazon Lex to read only a subset of the Amazon S3 bucket based on the+-- filter you provide.+s3BucketTranscriptSource_transcriptFilter :: Lens.Lens' S3BucketTranscriptSource (Prelude.Maybe TranscriptFilter)+s3BucketTranscriptSource_transcriptFilter = Lens.lens (\S3BucketTranscriptSource' {transcriptFilter} -> transcriptFilter) (\s@S3BucketTranscriptSource' {} a -> s {transcriptFilter = a} :: S3BucketTranscriptSource)++-- | The name of the bucket containing the transcript and the associated+-- metadata.+s3BucketTranscriptSource_s3BucketName :: Lens.Lens' S3BucketTranscriptSource Prelude.Text+s3BucketTranscriptSource_s3BucketName = Lens.lens (\S3BucketTranscriptSource' {s3BucketName} -> s3BucketName) (\s@S3BucketTranscriptSource' {} a -> s {s3BucketName = a} :: S3BucketTranscriptSource)++-- | The format of the transcript content. Currently, Genie only supports the+-- Amazon Lex transcript format.+s3BucketTranscriptSource_transcriptFormat :: Lens.Lens' S3BucketTranscriptSource TranscriptFormat+s3BucketTranscriptSource_transcriptFormat = Lens.lens (\S3BucketTranscriptSource' {transcriptFormat} -> transcriptFormat) (\s@S3BucketTranscriptSource' {} a -> s {transcriptFormat = a} :: S3BucketTranscriptSource)++instance Data.FromJSON S3BucketTranscriptSource where+  parseJSON =+    Data.withObject+      "S3BucketTranscriptSource"+      ( \x ->+          S3BucketTranscriptSource'+            Prelude.<$> (x Data..:? "kmsKeyArn")+            Prelude.<*> (x Data..:? "pathFormat")+            Prelude.<*> (x Data..:? "transcriptFilter")+            Prelude.<*> (x Data..: "s3BucketName")+            Prelude.<*> (x Data..: "transcriptFormat")+      )++instance Prelude.Hashable S3BucketTranscriptSource where+  hashWithSalt _salt S3BucketTranscriptSource' {..} =+    _salt+      `Prelude.hashWithSalt` kmsKeyArn+      `Prelude.hashWithSalt` pathFormat+      `Prelude.hashWithSalt` transcriptFilter+      `Prelude.hashWithSalt` s3BucketName+      `Prelude.hashWithSalt` transcriptFormat++instance Prelude.NFData S3BucketTranscriptSource where+  rnf S3BucketTranscriptSource' {..} =+    Prelude.rnf kmsKeyArn+      `Prelude.seq` Prelude.rnf pathFormat+      `Prelude.seq` Prelude.rnf transcriptFilter+      `Prelude.seq` Prelude.rnf s3BucketName+      `Prelude.seq` Prelude.rnf transcriptFormat++instance Data.ToJSON S3BucketTranscriptSource where+  toJSON S3BucketTranscriptSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("kmsKeyArn" Data..=) Prelude.<$> kmsKeyArn,+            ("pathFormat" Data..=) Prelude.<$> pathFormat,+            ("transcriptFilter" Data..=)+              Prelude.<$> transcriptFilter,+            Prelude.Just ("s3BucketName" Data..= s3BucketName),+            Prelude.Just+              ("transcriptFormat" Data..= transcriptFormat)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/SSMLMessage.hs view
@@ -0,0 +1,74 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SSMLMessage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SSMLMessage where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Defines a Speech Synthesis Markup Language (SSML) prompt.+--+-- /See:/ 'newSSMLMessage' smart constructor.+data SSMLMessage = SSMLMessage'+  { -- | The SSML text that defines the prompt.+    value :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SSMLMessage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'value', 'sSMLMessage_value' - The SSML text that defines the prompt.+newSSMLMessage ::+  -- | 'value'+  Prelude.Text ->+  SSMLMessage+newSSMLMessage pValue_ =+  SSMLMessage' {value = pValue_}++-- | The SSML text that defines the prompt.+sSMLMessage_value :: Lens.Lens' SSMLMessage Prelude.Text+sSMLMessage_value = Lens.lens (\SSMLMessage' {value} -> value) (\s@SSMLMessage' {} a -> s {value = a} :: SSMLMessage)++instance Data.FromJSON SSMLMessage where+  parseJSON =+    Data.withObject+      "SSMLMessage"+      (\x -> SSMLMessage' Prelude.<$> (x Data..: "value"))++instance Prelude.Hashable SSMLMessage where+  hashWithSalt _salt SSMLMessage' {..} =+    _salt `Prelude.hashWithSalt` value++instance Prelude.NFData SSMLMessage where+  rnf SSMLMessage' {..} = Prelude.rnf value++instance Data.ToJSON SSMLMessage where+  toJSON SSMLMessage' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("value" Data..= value)]+      )
+ gen/Amazonka/LexV2Models/Types/SampleUtterance.hs view
@@ -0,0 +1,80 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SampleUtterance+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SampleUtterance where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A sample utterance that invokes an intent or respond to a slot+-- elicitation prompt.+--+-- /See:/ 'newSampleUtterance' smart constructor.+data SampleUtterance = SampleUtterance'+  { -- | The sample utterance that Amazon Lex uses to build its machine-learning+    -- model to recognize intents.+    utterance :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SampleUtterance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'utterance', 'sampleUtterance_utterance' - The sample utterance that Amazon Lex uses to build its machine-learning+-- model to recognize intents.+newSampleUtterance ::+  -- | 'utterance'+  Prelude.Text ->+  SampleUtterance+newSampleUtterance pUtterance_ =+  SampleUtterance' {utterance = pUtterance_}++-- | The sample utterance that Amazon Lex uses to build its machine-learning+-- model to recognize intents.+sampleUtterance_utterance :: Lens.Lens' SampleUtterance Prelude.Text+sampleUtterance_utterance = Lens.lens (\SampleUtterance' {utterance} -> utterance) (\s@SampleUtterance' {} a -> s {utterance = a} :: SampleUtterance)++instance Data.FromJSON SampleUtterance where+  parseJSON =+    Data.withObject+      "SampleUtterance"+      ( \x ->+          SampleUtterance' Prelude.<$> (x Data..: "utterance")+      )++instance Prelude.Hashable SampleUtterance where+  hashWithSalt _salt SampleUtterance' {..} =+    _salt `Prelude.hashWithSalt` utterance++instance Prelude.NFData SampleUtterance where+  rnf SampleUtterance' {..} = Prelude.rnf utterance++instance Data.ToJSON SampleUtterance where+  toJSON SampleUtterance' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("utterance" Data..= utterance)]+      )
+ gen/Amazonka/LexV2Models/Types/SampleValue.hs view
@@ -0,0 +1,74 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SampleValue+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SampleValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Defines one of the values for a slot type.+--+-- /See:/ 'newSampleValue' smart constructor.+data SampleValue = SampleValue'+  { -- | The value that can be used for a slot type.+    value :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SampleValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'value', 'sampleValue_value' - The value that can be used for a slot type.+newSampleValue ::+  -- | 'value'+  Prelude.Text ->+  SampleValue+newSampleValue pValue_ =+  SampleValue' {value = pValue_}++-- | The value that can be used for a slot type.+sampleValue_value :: Lens.Lens' SampleValue Prelude.Text+sampleValue_value = Lens.lens (\SampleValue' {value} -> value) (\s@SampleValue' {} a -> s {value = a} :: SampleValue)++instance Data.FromJSON SampleValue where+  parseJSON =+    Data.withObject+      "SampleValue"+      (\x -> SampleValue' Prelude.<$> (x Data..: "value"))++instance Prelude.Hashable SampleValue where+  hashWithSalt _salt SampleValue' {..} =+    _salt `Prelude.hashWithSalt` value++instance Prelude.NFData SampleValue where+  rnf SampleValue' {..} = Prelude.rnf value++instance Data.ToJSON SampleValue where+  toJSON SampleValue' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("value" Data..= value)]+      )
+ gen/Amazonka/LexV2Models/Types/SearchOrder.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SearchOrder+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SearchOrder+  ( SearchOrder+      ( ..,+        SearchOrder_Ascending,+        SearchOrder_Descending+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SearchOrder = SearchOrder'+  { fromSearchOrder ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SearchOrder_Ascending :: SearchOrder+pattern SearchOrder_Ascending = SearchOrder' "Ascending"++pattern SearchOrder_Descending :: SearchOrder+pattern SearchOrder_Descending = SearchOrder' "Descending"++{-# COMPLETE+  SearchOrder_Ascending,+  SearchOrder_Descending,+  SearchOrder'+  #-}
+ gen/Amazonka/LexV2Models/Types/SentimentAnalysisSettings.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SentimentAnalysisSettings+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SentimentAnalysisSettings where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Determines whether Amazon Lex will use Amazon Comprehend to detect the+-- sentiment of user utterances.+--+-- /See:/ 'newSentimentAnalysisSettings' smart constructor.+data SentimentAnalysisSettings = SentimentAnalysisSettings'+  { -- | Sets whether Amazon Lex uses Amazon Comprehend to detect the sentiment+    -- of user utterances.+    detectSentiment :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SentimentAnalysisSettings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'detectSentiment', 'sentimentAnalysisSettings_detectSentiment' - Sets whether Amazon Lex uses Amazon Comprehend to detect the sentiment+-- of user utterances.+newSentimentAnalysisSettings ::+  -- | 'detectSentiment'+  Prelude.Bool ->+  SentimentAnalysisSettings+newSentimentAnalysisSettings pDetectSentiment_ =+  SentimentAnalysisSettings'+    { detectSentiment =+        pDetectSentiment_+    }++-- | Sets whether Amazon Lex uses Amazon Comprehend to detect the sentiment+-- of user utterances.+sentimentAnalysisSettings_detectSentiment :: Lens.Lens' SentimentAnalysisSettings Prelude.Bool+sentimentAnalysisSettings_detectSentiment = Lens.lens (\SentimentAnalysisSettings' {detectSentiment} -> detectSentiment) (\s@SentimentAnalysisSettings' {} a -> s {detectSentiment = a} :: SentimentAnalysisSettings)++instance Data.FromJSON SentimentAnalysisSettings where+  parseJSON =+    Data.withObject+      "SentimentAnalysisSettings"+      ( \x ->+          SentimentAnalysisSettings'+            Prelude.<$> (x Data..: "detectSentiment")+      )++instance Prelude.Hashable SentimentAnalysisSettings where+  hashWithSalt _salt SentimentAnalysisSettings' {..} =+    _salt `Prelude.hashWithSalt` detectSentiment++instance Prelude.NFData SentimentAnalysisSettings where+  rnf SentimentAnalysisSettings' {..} =+    Prelude.rnf detectSentiment++instance Data.ToJSON SentimentAnalysisSettings where+  toJSON SentimentAnalysisSettings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("detectSentiment" Data..= detectSentiment)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/SlotCaptureSetting.hs view
@@ -0,0 +1,195 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotCaptureSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotCaptureSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.ConditionalSpecification+import Amazonka.LexV2Models.Types.DialogCodeHookInvocationSetting+import Amazonka.LexV2Models.Types.DialogState+import Amazonka.LexV2Models.Types.ElicitationCodeHookInvocationSetting+import Amazonka.LexV2Models.Types.ResponseSpecification+import qualified Amazonka.Prelude as Prelude++-- | Settings used when Amazon Lex successfully captures a slot value from a+-- user.+--+-- /See:/ 'newSlotCaptureSetting' smart constructor.+data SlotCaptureSetting = SlotCaptureSetting'+  { -- | A list of conditional branches to evaluate after the slot value is+    -- captured.+    captureConditional :: Prelude.Maybe ConditionalSpecification,+    -- | Specifies the next step that the bot runs when the slot value is+    -- captured before the code hook times out.+    captureNextStep :: Prelude.Maybe DialogState,+    captureResponse :: Prelude.Maybe ResponseSpecification,+    -- | Code hook called after Amazon Lex successfully captures a slot value.+    codeHook :: Prelude.Maybe DialogCodeHookInvocationSetting,+    -- | Code hook called when Amazon Lex doesn\'t capture a slot value.+    elicitationCodeHook :: Prelude.Maybe ElicitationCodeHookInvocationSetting,+    -- | A list of conditional branches to evaluate when the slot value isn\'t+    -- captured.+    failureConditional :: Prelude.Maybe ConditionalSpecification,+    -- | Specifies the next step that the bot runs when the slot value code is+    -- not recognized.+    failureNextStep :: Prelude.Maybe DialogState,+    failureResponse :: Prelude.Maybe ResponseSpecification+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotCaptureSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'captureConditional', 'slotCaptureSetting_captureConditional' - A list of conditional branches to evaluate after the slot value is+-- captured.+--+-- 'captureNextStep', 'slotCaptureSetting_captureNextStep' - Specifies the next step that the bot runs when the slot value is+-- captured before the code hook times out.+--+-- 'captureResponse', 'slotCaptureSetting_captureResponse' - Undocumented member.+--+-- 'codeHook', 'slotCaptureSetting_codeHook' - Code hook called after Amazon Lex successfully captures a slot value.+--+-- 'elicitationCodeHook', 'slotCaptureSetting_elicitationCodeHook' - Code hook called when Amazon Lex doesn\'t capture a slot value.+--+-- 'failureConditional', 'slotCaptureSetting_failureConditional' - A list of conditional branches to evaluate when the slot value isn\'t+-- captured.+--+-- 'failureNextStep', 'slotCaptureSetting_failureNextStep' - Specifies the next step that the bot runs when the slot value code is+-- not recognized.+--+-- 'failureResponse', 'slotCaptureSetting_failureResponse' - Undocumented member.+newSlotCaptureSetting ::+  SlotCaptureSetting+newSlotCaptureSetting =+  SlotCaptureSetting'+    { captureConditional =+        Prelude.Nothing,+      captureNextStep = Prelude.Nothing,+      captureResponse = Prelude.Nothing,+      codeHook = Prelude.Nothing,+      elicitationCodeHook = Prelude.Nothing,+      failureConditional = Prelude.Nothing,+      failureNextStep = Prelude.Nothing,+      failureResponse = Prelude.Nothing+    }++-- | A list of conditional branches to evaluate after the slot value is+-- captured.+slotCaptureSetting_captureConditional :: Lens.Lens' SlotCaptureSetting (Prelude.Maybe ConditionalSpecification)+slotCaptureSetting_captureConditional = Lens.lens (\SlotCaptureSetting' {captureConditional} -> captureConditional) (\s@SlotCaptureSetting' {} a -> s {captureConditional = a} :: SlotCaptureSetting)++-- | Specifies the next step that the bot runs when the slot value is+-- captured before the code hook times out.+slotCaptureSetting_captureNextStep :: Lens.Lens' SlotCaptureSetting (Prelude.Maybe DialogState)+slotCaptureSetting_captureNextStep = Lens.lens (\SlotCaptureSetting' {captureNextStep} -> captureNextStep) (\s@SlotCaptureSetting' {} a -> s {captureNextStep = a} :: SlotCaptureSetting)++-- | Undocumented member.+slotCaptureSetting_captureResponse :: Lens.Lens' SlotCaptureSetting (Prelude.Maybe ResponseSpecification)+slotCaptureSetting_captureResponse = Lens.lens (\SlotCaptureSetting' {captureResponse} -> captureResponse) (\s@SlotCaptureSetting' {} a -> s {captureResponse = a} :: SlotCaptureSetting)++-- | Code hook called after Amazon Lex successfully captures a slot value.+slotCaptureSetting_codeHook :: Lens.Lens' SlotCaptureSetting (Prelude.Maybe DialogCodeHookInvocationSetting)+slotCaptureSetting_codeHook = Lens.lens (\SlotCaptureSetting' {codeHook} -> codeHook) (\s@SlotCaptureSetting' {} a -> s {codeHook = a} :: SlotCaptureSetting)++-- | Code hook called when Amazon Lex doesn\'t capture a slot value.+slotCaptureSetting_elicitationCodeHook :: Lens.Lens' SlotCaptureSetting (Prelude.Maybe ElicitationCodeHookInvocationSetting)+slotCaptureSetting_elicitationCodeHook = Lens.lens (\SlotCaptureSetting' {elicitationCodeHook} -> elicitationCodeHook) (\s@SlotCaptureSetting' {} a -> s {elicitationCodeHook = a} :: SlotCaptureSetting)++-- | A list of conditional branches to evaluate when the slot value isn\'t+-- captured.+slotCaptureSetting_failureConditional :: Lens.Lens' SlotCaptureSetting (Prelude.Maybe ConditionalSpecification)+slotCaptureSetting_failureConditional = Lens.lens (\SlotCaptureSetting' {failureConditional} -> failureConditional) (\s@SlotCaptureSetting' {} a -> s {failureConditional = a} :: SlotCaptureSetting)++-- | Specifies the next step that the bot runs when the slot value code is+-- not recognized.+slotCaptureSetting_failureNextStep :: Lens.Lens' SlotCaptureSetting (Prelude.Maybe DialogState)+slotCaptureSetting_failureNextStep = Lens.lens (\SlotCaptureSetting' {failureNextStep} -> failureNextStep) (\s@SlotCaptureSetting' {} a -> s {failureNextStep = a} :: SlotCaptureSetting)++-- | Undocumented member.+slotCaptureSetting_failureResponse :: Lens.Lens' SlotCaptureSetting (Prelude.Maybe ResponseSpecification)+slotCaptureSetting_failureResponse = Lens.lens (\SlotCaptureSetting' {failureResponse} -> failureResponse) (\s@SlotCaptureSetting' {} a -> s {failureResponse = a} :: SlotCaptureSetting)++instance Data.FromJSON SlotCaptureSetting where+  parseJSON =+    Data.withObject+      "SlotCaptureSetting"+      ( \x ->+          SlotCaptureSetting'+            Prelude.<$> (x Data..:? "captureConditional")+            Prelude.<*> (x Data..:? "captureNextStep")+            Prelude.<*> (x Data..:? "captureResponse")+            Prelude.<*> (x Data..:? "codeHook")+            Prelude.<*> (x Data..:? "elicitationCodeHook")+            Prelude.<*> (x Data..:? "failureConditional")+            Prelude.<*> (x Data..:? "failureNextStep")+            Prelude.<*> (x Data..:? "failureResponse")+      )++instance Prelude.Hashable SlotCaptureSetting where+  hashWithSalt _salt SlotCaptureSetting' {..} =+    _salt+      `Prelude.hashWithSalt` captureConditional+      `Prelude.hashWithSalt` captureNextStep+      `Prelude.hashWithSalt` captureResponse+      `Prelude.hashWithSalt` codeHook+      `Prelude.hashWithSalt` elicitationCodeHook+      `Prelude.hashWithSalt` failureConditional+      `Prelude.hashWithSalt` failureNextStep+      `Prelude.hashWithSalt` failureResponse++instance Prelude.NFData SlotCaptureSetting where+  rnf SlotCaptureSetting' {..} =+    Prelude.rnf captureConditional+      `Prelude.seq` Prelude.rnf captureNextStep+      `Prelude.seq` Prelude.rnf captureResponse+      `Prelude.seq` Prelude.rnf codeHook+      `Prelude.seq` Prelude.rnf elicitationCodeHook+      `Prelude.seq` Prelude.rnf failureConditional+      `Prelude.seq` Prelude.rnf failureNextStep+      `Prelude.seq` Prelude.rnf failureResponse++instance Data.ToJSON SlotCaptureSetting where+  toJSON SlotCaptureSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("captureConditional" Data..=)+              Prelude.<$> captureConditional,+            ("captureNextStep" Data..=)+              Prelude.<$> captureNextStep,+            ("captureResponse" Data..=)+              Prelude.<$> captureResponse,+            ("codeHook" Data..=) Prelude.<$> codeHook,+            ("elicitationCodeHook" Data..=)+              Prelude.<$> elicitationCodeHook,+            ("failureConditional" Data..=)+              Prelude.<$> failureConditional,+            ("failureNextStep" Data..=)+              Prelude.<$> failureNextStep,+            ("failureResponse" Data..=)+              Prelude.<$> failureResponse+          ]+      )
+ gen/Amazonka/LexV2Models/Types/SlotConstraint.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotConstraint+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotConstraint+  ( SlotConstraint+      ( ..,+        SlotConstraint_Optional,+        SlotConstraint_Required+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SlotConstraint = SlotConstraint'+  { fromSlotConstraint ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SlotConstraint_Optional :: SlotConstraint+pattern SlotConstraint_Optional = SlotConstraint' "Optional"++pattern SlotConstraint_Required :: SlotConstraint+pattern SlotConstraint_Required = SlotConstraint' "Required"++{-# COMPLETE+  SlotConstraint_Optional,+  SlotConstraint_Required,+  SlotConstraint'+  #-}
+ gen/Amazonka/LexV2Models/Types/SlotDefaultValue.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotDefaultValue+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotDefaultValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies the default value to use when a user doesn\'t provide a value+-- for a slot.+--+-- /See:/ 'newSlotDefaultValue' smart constructor.+data SlotDefaultValue = SlotDefaultValue'+  { -- | The default value to use when a user doesn\'t provide a value for a+    -- slot.+    defaultValue :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotDefaultValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'defaultValue', 'slotDefaultValue_defaultValue' - The default value to use when a user doesn\'t provide a value for a+-- slot.+newSlotDefaultValue ::+  -- | 'defaultValue'+  Prelude.Text ->+  SlotDefaultValue+newSlotDefaultValue pDefaultValue_ =+  SlotDefaultValue' {defaultValue = pDefaultValue_}++-- | The default value to use when a user doesn\'t provide a value for a+-- slot.+slotDefaultValue_defaultValue :: Lens.Lens' SlotDefaultValue Prelude.Text+slotDefaultValue_defaultValue = Lens.lens (\SlotDefaultValue' {defaultValue} -> defaultValue) (\s@SlotDefaultValue' {} a -> s {defaultValue = a} :: SlotDefaultValue)++instance Data.FromJSON SlotDefaultValue where+  parseJSON =+    Data.withObject+      "SlotDefaultValue"+      ( \x ->+          SlotDefaultValue'+            Prelude.<$> (x Data..: "defaultValue")+      )++instance Prelude.Hashable SlotDefaultValue where+  hashWithSalt _salt SlotDefaultValue' {..} =+    _salt `Prelude.hashWithSalt` defaultValue++instance Prelude.NFData SlotDefaultValue where+  rnf SlotDefaultValue' {..} = Prelude.rnf defaultValue++instance Data.ToJSON SlotDefaultValue where+  toJSON SlotDefaultValue' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("defaultValue" Data..= defaultValue)]+      )
+ gen/Amazonka/LexV2Models/Types/SlotDefaultValueSpecification.hs view
@@ -0,0 +1,92 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotDefaultValueSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotDefaultValueSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.SlotDefaultValue+import qualified Amazonka.Prelude as Prelude++-- | Defines a list of values that Amazon Lex should use as the default value+-- for a slot.+--+-- /See:/ 'newSlotDefaultValueSpecification' smart constructor.+data SlotDefaultValueSpecification = SlotDefaultValueSpecification'+  { -- | A list of default values. Amazon Lex chooses the default value to use in+    -- the order that they are presented in the list.+    defaultValueList :: [SlotDefaultValue]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotDefaultValueSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'defaultValueList', 'slotDefaultValueSpecification_defaultValueList' - A list of default values. Amazon Lex chooses the default value to use in+-- the order that they are presented in the list.+newSlotDefaultValueSpecification ::+  SlotDefaultValueSpecification+newSlotDefaultValueSpecification =+  SlotDefaultValueSpecification'+    { defaultValueList =+        Prelude.mempty+    }++-- | A list of default values. Amazon Lex chooses the default value to use in+-- the order that they are presented in the list.+slotDefaultValueSpecification_defaultValueList :: Lens.Lens' SlotDefaultValueSpecification [SlotDefaultValue]+slotDefaultValueSpecification_defaultValueList = Lens.lens (\SlotDefaultValueSpecification' {defaultValueList} -> defaultValueList) (\s@SlotDefaultValueSpecification' {} a -> s {defaultValueList = a} :: SlotDefaultValueSpecification) Prelude.. Lens.coerced++instance Data.FromJSON SlotDefaultValueSpecification where+  parseJSON =+    Data.withObject+      "SlotDefaultValueSpecification"+      ( \x ->+          SlotDefaultValueSpecification'+            Prelude.<$> ( x+                            Data..:? "defaultValueList"+                            Data..!= Prelude.mempty+                        )+      )++instance+  Prelude.Hashable+    SlotDefaultValueSpecification+  where+  hashWithSalt _salt SlotDefaultValueSpecification' {..} =+    _salt `Prelude.hashWithSalt` defaultValueList++instance Prelude.NFData SlotDefaultValueSpecification where+  rnf SlotDefaultValueSpecification' {..} =+    Prelude.rnf defaultValueList++instance Data.ToJSON SlotDefaultValueSpecification where+  toJSON SlotDefaultValueSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("defaultValueList" Data..= defaultValueList)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/SlotFilter.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.SlotFilterName+import Amazonka.LexV2Models.Types.SlotFilterOperator+import qualified Amazonka.Prelude as Prelude++-- | Filters the response from the @ListSlots@ operation.+--+-- /See:/ 'newSlotFilter' smart constructor.+data SlotFilter = SlotFilter'+  { -- | The name of the field to use for filtering.+    name :: SlotFilterName,+    -- | The value to use to filter the response.+    values :: Prelude.NonEmpty Prelude.Text,+    -- | The operator to use for the filter. Specify @EQ@ when the @ListSlots@+    -- operation should return only aliases that equal the specified value.+    -- Specify @CO@ when the @ListSlots@ operation should return aliases that+    -- contain the specified value.+    operator :: SlotFilterOperator+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'slotFilter_name' - The name of the field to use for filtering.+--+-- 'values', 'slotFilter_values' - The value to use to filter the response.+--+-- 'operator', 'slotFilter_operator' - The operator to use for the filter. Specify @EQ@ when the @ListSlots@+-- operation should return only aliases that equal the specified value.+-- Specify @CO@ when the @ListSlots@ operation should return aliases that+-- contain the specified value.+newSlotFilter ::+  -- | 'name'+  SlotFilterName ->+  -- | 'values'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'operator'+  SlotFilterOperator ->+  SlotFilter+newSlotFilter pName_ pValues_ pOperator_ =+  SlotFilter'+    { name = pName_,+      values = Lens.coerced Lens.# pValues_,+      operator = pOperator_+    }++-- | The name of the field to use for filtering.+slotFilter_name :: Lens.Lens' SlotFilter SlotFilterName+slotFilter_name = Lens.lens (\SlotFilter' {name} -> name) (\s@SlotFilter' {} a -> s {name = a} :: SlotFilter)++-- | The value to use to filter the response.+slotFilter_values :: Lens.Lens' SlotFilter (Prelude.NonEmpty Prelude.Text)+slotFilter_values = Lens.lens (\SlotFilter' {values} -> values) (\s@SlotFilter' {} a -> s {values = a} :: SlotFilter) Prelude.. Lens.coerced++-- | The operator to use for the filter. Specify @EQ@ when the @ListSlots@+-- operation should return only aliases that equal the specified value.+-- Specify @CO@ when the @ListSlots@ operation should return aliases that+-- contain the specified value.+slotFilter_operator :: Lens.Lens' SlotFilter SlotFilterOperator+slotFilter_operator = Lens.lens (\SlotFilter' {operator} -> operator) (\s@SlotFilter' {} a -> s {operator = a} :: SlotFilter)++instance Prelude.Hashable SlotFilter where+  hashWithSalt _salt SlotFilter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values+      `Prelude.hashWithSalt` operator++instance Prelude.NFData SlotFilter where+  rnf SlotFilter' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf values+      `Prelude.seq` Prelude.rnf operator++instance Data.ToJSON SlotFilter where+  toJSON SlotFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("name" Data..= name),+            Prelude.Just ("values" Data..= values),+            Prelude.Just ("operator" Data..= operator)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/SlotFilterName.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotFilterName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotFilterName+  ( SlotFilterName+      ( ..,+        SlotFilterName_SlotName+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SlotFilterName = SlotFilterName'+  { fromSlotFilterName ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SlotFilterName_SlotName :: SlotFilterName+pattern SlotFilterName_SlotName = SlotFilterName' "SlotName"++{-# COMPLETE+  SlotFilterName_SlotName,+  SlotFilterName'+  #-}
+ gen/Amazonka/LexV2Models/Types/SlotFilterOperator.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotFilterOperator+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotFilterOperator+  ( SlotFilterOperator+      ( ..,+        SlotFilterOperator_CO,+        SlotFilterOperator_EQ+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SlotFilterOperator = SlotFilterOperator'+  { fromSlotFilterOperator ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SlotFilterOperator_CO :: SlotFilterOperator+pattern SlotFilterOperator_CO = SlotFilterOperator' "CO"++pattern SlotFilterOperator_EQ :: SlotFilterOperator+pattern SlotFilterOperator_EQ = SlotFilterOperator' "EQ"++{-# COMPLETE+  SlotFilterOperator_CO,+  SlotFilterOperator_EQ,+  SlotFilterOperator'+  #-}
+ gen/Amazonka/LexV2Models/Types/SlotPriority.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotPriority+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotPriority where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Sets the priority that Amazon Lex should use when eliciting slot values+-- from a user.+--+-- /See:/ 'newSlotPriority' smart constructor.+data SlotPriority = SlotPriority'+  { -- | The priority that a slot should be elicited.+    priority :: Prelude.Natural,+    -- | The unique identifier of the slot.+    slotId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotPriority' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'priority', 'slotPriority_priority' - The priority that a slot should be elicited.+--+-- 'slotId', 'slotPriority_slotId' - The unique identifier of the slot.+newSlotPriority ::+  -- | 'priority'+  Prelude.Natural ->+  -- | 'slotId'+  Prelude.Text ->+  SlotPriority+newSlotPriority pPriority_ pSlotId_ =+  SlotPriority'+    { priority = pPriority_,+      slotId = pSlotId_+    }++-- | The priority that a slot should be elicited.+slotPriority_priority :: Lens.Lens' SlotPriority Prelude.Natural+slotPriority_priority = Lens.lens (\SlotPriority' {priority} -> priority) (\s@SlotPriority' {} a -> s {priority = a} :: SlotPriority)++-- | The unique identifier of the slot.+slotPriority_slotId :: Lens.Lens' SlotPriority Prelude.Text+slotPriority_slotId = Lens.lens (\SlotPriority' {slotId} -> slotId) (\s@SlotPriority' {} a -> s {slotId = a} :: SlotPriority)++instance Data.FromJSON SlotPriority where+  parseJSON =+    Data.withObject+      "SlotPriority"+      ( \x ->+          SlotPriority'+            Prelude.<$> (x Data..: "priority")+            Prelude.<*> (x Data..: "slotId")+      )++instance Prelude.Hashable SlotPriority where+  hashWithSalt _salt SlotPriority' {..} =+    _salt+      `Prelude.hashWithSalt` priority+      `Prelude.hashWithSalt` slotId++instance Prelude.NFData SlotPriority where+  rnf SlotPriority' {..} =+    Prelude.rnf priority+      `Prelude.seq` Prelude.rnf slotId++instance Data.ToJSON SlotPriority where+  toJSON SlotPriority' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("priority" Data..= priority),+            Prelude.Just ("slotId" Data..= slotId)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/SlotShape.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotShape+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotShape+  ( SlotShape+      ( ..,+        SlotShape_List,+        SlotShape_Scalar+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SlotShape = SlotShape'+  { fromSlotShape ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SlotShape_List :: SlotShape+pattern SlotShape_List = SlotShape' "List"++pattern SlotShape_Scalar :: SlotShape+pattern SlotShape_Scalar = SlotShape' "Scalar"++{-# COMPLETE+  SlotShape_List,+  SlotShape_Scalar,+  SlotShape'+  #-}
+ gen/Amazonka/LexV2Models/Types/SlotSortAttribute.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotSortAttribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotSortAttribute+  ( SlotSortAttribute+      ( ..,+        SlotSortAttribute_LastUpdatedDateTime,+        SlotSortAttribute_SlotName+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SlotSortAttribute = SlotSortAttribute'+  { fromSlotSortAttribute ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SlotSortAttribute_LastUpdatedDateTime :: SlotSortAttribute+pattern SlotSortAttribute_LastUpdatedDateTime = SlotSortAttribute' "LastUpdatedDateTime"++pattern SlotSortAttribute_SlotName :: SlotSortAttribute+pattern SlotSortAttribute_SlotName = SlotSortAttribute' "SlotName"++{-# COMPLETE+  SlotSortAttribute_LastUpdatedDateTime,+  SlotSortAttribute_SlotName,+  SlotSortAttribute'+  #-}
+ gen/Amazonka/LexV2Models/Types/SlotSortBy.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotSortBy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotSortBy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.SlotSortAttribute+import Amazonka.LexV2Models.Types.SortOrder+import qualified Amazonka.Prelude as Prelude++-- | Specifies attributes for sorting a list of bots.+--+-- /See:/ 'newSlotSortBy' smart constructor.+data SlotSortBy = SlotSortBy'+  { -- | The attribute to use to sort the list.+    attribute :: SlotSortAttribute,+    -- | The order to sort the list. You can choose ascending or descending.+    order :: SortOrder+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotSortBy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attribute', 'slotSortBy_attribute' - The attribute to use to sort the list.+--+-- 'order', 'slotSortBy_order' - The order to sort the list. You can choose ascending or descending.+newSlotSortBy ::+  -- | 'attribute'+  SlotSortAttribute ->+  -- | 'order'+  SortOrder ->+  SlotSortBy+newSlotSortBy pAttribute_ pOrder_ =+  SlotSortBy'+    { attribute = pAttribute_,+      order = pOrder_+    }++-- | The attribute to use to sort the list.+slotSortBy_attribute :: Lens.Lens' SlotSortBy SlotSortAttribute+slotSortBy_attribute = Lens.lens (\SlotSortBy' {attribute} -> attribute) (\s@SlotSortBy' {} a -> s {attribute = a} :: SlotSortBy)++-- | The order to sort the list. You can choose ascending or descending.+slotSortBy_order :: Lens.Lens' SlotSortBy SortOrder+slotSortBy_order = Lens.lens (\SlotSortBy' {order} -> order) (\s@SlotSortBy' {} a -> s {order = a} :: SlotSortBy)++instance Prelude.Hashable SlotSortBy where+  hashWithSalt _salt SlotSortBy' {..} =+    _salt+      `Prelude.hashWithSalt` attribute+      `Prelude.hashWithSalt` order++instance Prelude.NFData SlotSortBy where+  rnf SlotSortBy' {..} =+    Prelude.rnf attribute+      `Prelude.seq` Prelude.rnf order++instance Data.ToJSON SlotSortBy where+  toJSON SlotSortBy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("attribute" Data..= attribute),+            Prelude.Just ("order" Data..= order)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/SlotSummary.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.PromptSpecification+import Amazonka.LexV2Models.Types.SlotConstraint+import qualified Amazonka.Prelude as Prelude++-- | Summary information about a slot, a value that the bot elicits from the+-- user.+--+-- /See:/ 'newSlotSummary' smart constructor.+data SlotSummary = SlotSummary'+  { -- | The description of the slot.+    description :: Prelude.Maybe Prelude.Text,+    -- | The timestamp of the last date and time that the slot was updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | Whether the slot is required or optional. An intent is complete when all+    -- required slots are filled.+    slotConstraint :: Prelude.Maybe SlotConstraint,+    -- | The unique identifier of the slot.+    slotId :: Prelude.Maybe Prelude.Text,+    -- | The name given to the slot.+    slotName :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the slot type that defines the values for the+    -- slot.+    slotTypeId :: Prelude.Maybe Prelude.Text,+    -- | Prompts that are sent to the user to elicit a value for the slot.+    valueElicitationPromptSpecification :: Prelude.Maybe PromptSpecification+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'slotSummary_description' - The description of the slot.+--+-- 'lastUpdatedDateTime', 'slotSummary_lastUpdatedDateTime' - The timestamp of the last date and time that the slot was updated.+--+-- 'slotConstraint', 'slotSummary_slotConstraint' - Whether the slot is required or optional. An intent is complete when all+-- required slots are filled.+--+-- 'slotId', 'slotSummary_slotId' - The unique identifier of the slot.+--+-- 'slotName', 'slotSummary_slotName' - The name given to the slot.+--+-- 'slotTypeId', 'slotSummary_slotTypeId' - The unique identifier for the slot type that defines the values for the+-- slot.+--+-- 'valueElicitationPromptSpecification', 'slotSummary_valueElicitationPromptSpecification' - Prompts that are sent to the user to elicit a value for the slot.+newSlotSummary ::+  SlotSummary+newSlotSummary =+  SlotSummary'+    { description = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      slotConstraint = Prelude.Nothing,+      slotId = Prelude.Nothing,+      slotName = Prelude.Nothing,+      slotTypeId = Prelude.Nothing,+      valueElicitationPromptSpecification =+        Prelude.Nothing+    }++-- | The description of the slot.+slotSummary_description :: Lens.Lens' SlotSummary (Prelude.Maybe Prelude.Text)+slotSummary_description = Lens.lens (\SlotSummary' {description} -> description) (\s@SlotSummary' {} a -> s {description = a} :: SlotSummary)++-- | The timestamp of the last date and time that the slot was updated.+slotSummary_lastUpdatedDateTime :: Lens.Lens' SlotSummary (Prelude.Maybe Prelude.UTCTime)+slotSummary_lastUpdatedDateTime = Lens.lens (\SlotSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@SlotSummary' {} a -> s {lastUpdatedDateTime = a} :: SlotSummary) Prelude.. Lens.mapping Data._Time++-- | Whether the slot is required or optional. An intent is complete when all+-- required slots are filled.+slotSummary_slotConstraint :: Lens.Lens' SlotSummary (Prelude.Maybe SlotConstraint)+slotSummary_slotConstraint = Lens.lens (\SlotSummary' {slotConstraint} -> slotConstraint) (\s@SlotSummary' {} a -> s {slotConstraint = a} :: SlotSummary)++-- | The unique identifier of the slot.+slotSummary_slotId :: Lens.Lens' SlotSummary (Prelude.Maybe Prelude.Text)+slotSummary_slotId = Lens.lens (\SlotSummary' {slotId} -> slotId) (\s@SlotSummary' {} a -> s {slotId = a} :: SlotSummary)++-- | The name given to the slot.+slotSummary_slotName :: Lens.Lens' SlotSummary (Prelude.Maybe Prelude.Text)+slotSummary_slotName = Lens.lens (\SlotSummary' {slotName} -> slotName) (\s@SlotSummary' {} a -> s {slotName = a} :: SlotSummary)++-- | The unique identifier for the slot type that defines the values for the+-- slot.+slotSummary_slotTypeId :: Lens.Lens' SlotSummary (Prelude.Maybe Prelude.Text)+slotSummary_slotTypeId = Lens.lens (\SlotSummary' {slotTypeId} -> slotTypeId) (\s@SlotSummary' {} a -> s {slotTypeId = a} :: SlotSummary)++-- | Prompts that are sent to the user to elicit a value for the slot.+slotSummary_valueElicitationPromptSpecification :: Lens.Lens' SlotSummary (Prelude.Maybe PromptSpecification)+slotSummary_valueElicitationPromptSpecification = Lens.lens (\SlotSummary' {valueElicitationPromptSpecification} -> valueElicitationPromptSpecification) (\s@SlotSummary' {} a -> s {valueElicitationPromptSpecification = a} :: SlotSummary)++instance Data.FromJSON SlotSummary where+  parseJSON =+    Data.withObject+      "SlotSummary"+      ( \x ->+          SlotSummary'+            Prelude.<$> (x Data..:? "description")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "slotConstraint")+            Prelude.<*> (x Data..:? "slotId")+            Prelude.<*> (x Data..:? "slotName")+            Prelude.<*> (x Data..:? "slotTypeId")+            Prelude.<*> (x Data..:? "valueElicitationPromptSpecification")+      )++instance Prelude.Hashable SlotSummary where+  hashWithSalt _salt SlotSummary' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` slotConstraint+      `Prelude.hashWithSalt` slotId+      `Prelude.hashWithSalt` slotName+      `Prelude.hashWithSalt` slotTypeId+      `Prelude.hashWithSalt` valueElicitationPromptSpecification++instance Prelude.NFData SlotSummary where+  rnf SlotSummary' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf slotConstraint+      `Prelude.seq` Prelude.rnf slotId+      `Prelude.seq` Prelude.rnf slotName+      `Prelude.seq` Prelude.rnf slotTypeId+      `Prelude.seq` Prelude.rnf valueElicitationPromptSpecification
+ gen/Amazonka/LexV2Models/Types/SlotTypeCategory.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotTypeCategory+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotTypeCategory+  ( SlotTypeCategory+      ( ..,+        SlotTypeCategory_Composite,+        SlotTypeCategory_Custom,+        SlotTypeCategory_Extended,+        SlotTypeCategory_ExternalGrammar+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SlotTypeCategory = SlotTypeCategory'+  { fromSlotTypeCategory ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SlotTypeCategory_Composite :: SlotTypeCategory+pattern SlotTypeCategory_Composite = SlotTypeCategory' "Composite"++pattern SlotTypeCategory_Custom :: SlotTypeCategory+pattern SlotTypeCategory_Custom = SlotTypeCategory' "Custom"++pattern SlotTypeCategory_Extended :: SlotTypeCategory+pattern SlotTypeCategory_Extended = SlotTypeCategory' "Extended"++pattern SlotTypeCategory_ExternalGrammar :: SlotTypeCategory+pattern SlotTypeCategory_ExternalGrammar = SlotTypeCategory' "ExternalGrammar"++{-# COMPLETE+  SlotTypeCategory_Composite,+  SlotTypeCategory_Custom,+  SlotTypeCategory_Extended,+  SlotTypeCategory_ExternalGrammar,+  SlotTypeCategory'+  #-}
+ gen/Amazonka/LexV2Models/Types/SlotTypeFilter.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotTypeFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotTypeFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.SlotTypeFilterName+import Amazonka.LexV2Models.Types.SlotTypeFilterOperator+import qualified Amazonka.Prelude as Prelude++-- | Filters the response from the @ListSlotTypes@ operation.+--+-- /See:/ 'newSlotTypeFilter' smart constructor.+data SlotTypeFilter = SlotTypeFilter'+  { -- | The name of the field to use for filtering.+    name :: SlotTypeFilterName,+    -- | The value to use to filter the response.+    values :: Prelude.NonEmpty Prelude.Text,+    -- | The operator to use for the filter. Specify @EQ@ when the+    -- @ListSlotTypes@ operation should return only aliases that equal the+    -- specified value. Specify @CO@ when the @ListSlotTypes@ operation should+    -- return aliases that contain the specified value.+    operator :: SlotTypeFilterOperator+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotTypeFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'slotTypeFilter_name' - The name of the field to use for filtering.+--+-- 'values', 'slotTypeFilter_values' - The value to use to filter the response.+--+-- 'operator', 'slotTypeFilter_operator' - The operator to use for the filter. Specify @EQ@ when the+-- @ListSlotTypes@ operation should return only aliases that equal the+-- specified value. Specify @CO@ when the @ListSlotTypes@ operation should+-- return aliases that contain the specified value.+newSlotTypeFilter ::+  -- | 'name'+  SlotTypeFilterName ->+  -- | 'values'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'operator'+  SlotTypeFilterOperator ->+  SlotTypeFilter+newSlotTypeFilter pName_ pValues_ pOperator_ =+  SlotTypeFilter'+    { name = pName_,+      values = Lens.coerced Lens.# pValues_,+      operator = pOperator_+    }++-- | The name of the field to use for filtering.+slotTypeFilter_name :: Lens.Lens' SlotTypeFilter SlotTypeFilterName+slotTypeFilter_name = Lens.lens (\SlotTypeFilter' {name} -> name) (\s@SlotTypeFilter' {} a -> s {name = a} :: SlotTypeFilter)++-- | The value to use to filter the response.+slotTypeFilter_values :: Lens.Lens' SlotTypeFilter (Prelude.NonEmpty Prelude.Text)+slotTypeFilter_values = Lens.lens (\SlotTypeFilter' {values} -> values) (\s@SlotTypeFilter' {} a -> s {values = a} :: SlotTypeFilter) Prelude.. Lens.coerced++-- | The operator to use for the filter. Specify @EQ@ when the+-- @ListSlotTypes@ operation should return only aliases that equal the+-- specified value. Specify @CO@ when the @ListSlotTypes@ operation should+-- return aliases that contain the specified value.+slotTypeFilter_operator :: Lens.Lens' SlotTypeFilter SlotTypeFilterOperator+slotTypeFilter_operator = Lens.lens (\SlotTypeFilter' {operator} -> operator) (\s@SlotTypeFilter' {} a -> s {operator = a} :: SlotTypeFilter)++instance Prelude.Hashable SlotTypeFilter where+  hashWithSalt _salt SlotTypeFilter' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` values+      `Prelude.hashWithSalt` operator++instance Prelude.NFData SlotTypeFilter where+  rnf SlotTypeFilter' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf values+      `Prelude.seq` Prelude.rnf operator++instance Data.ToJSON SlotTypeFilter where+  toJSON SlotTypeFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("name" Data..= name),+            Prelude.Just ("values" Data..= values),+            Prelude.Just ("operator" Data..= operator)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/SlotTypeFilterName.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotTypeFilterName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotTypeFilterName+  ( SlotTypeFilterName+      ( ..,+        SlotTypeFilterName_ExternalSourceType,+        SlotTypeFilterName_SlotTypeName+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SlotTypeFilterName = SlotTypeFilterName'+  { fromSlotTypeFilterName ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SlotTypeFilterName_ExternalSourceType :: SlotTypeFilterName+pattern SlotTypeFilterName_ExternalSourceType = SlotTypeFilterName' "ExternalSourceType"++pattern SlotTypeFilterName_SlotTypeName :: SlotTypeFilterName+pattern SlotTypeFilterName_SlotTypeName = SlotTypeFilterName' "SlotTypeName"++{-# COMPLETE+  SlotTypeFilterName_ExternalSourceType,+  SlotTypeFilterName_SlotTypeName,+  SlotTypeFilterName'+  #-}
+ gen/Amazonka/LexV2Models/Types/SlotTypeFilterOperator.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotTypeFilterOperator+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotTypeFilterOperator+  ( SlotTypeFilterOperator+      ( ..,+        SlotTypeFilterOperator_CO,+        SlotTypeFilterOperator_EQ+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SlotTypeFilterOperator = SlotTypeFilterOperator'+  { fromSlotTypeFilterOperator ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SlotTypeFilterOperator_CO :: SlotTypeFilterOperator+pattern SlotTypeFilterOperator_CO = SlotTypeFilterOperator' "CO"++pattern SlotTypeFilterOperator_EQ :: SlotTypeFilterOperator+pattern SlotTypeFilterOperator_EQ = SlotTypeFilterOperator' "EQ"++{-# COMPLETE+  SlotTypeFilterOperator_CO,+  SlotTypeFilterOperator_EQ,+  SlotTypeFilterOperator'+  #-}
+ gen/Amazonka/LexV2Models/Types/SlotTypeSortAttribute.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotTypeSortAttribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotTypeSortAttribute+  ( SlotTypeSortAttribute+      ( ..,+        SlotTypeSortAttribute_LastUpdatedDateTime,+        SlotTypeSortAttribute_SlotTypeName+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SlotTypeSortAttribute = SlotTypeSortAttribute'+  { fromSlotTypeSortAttribute ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SlotTypeSortAttribute_LastUpdatedDateTime :: SlotTypeSortAttribute+pattern SlotTypeSortAttribute_LastUpdatedDateTime = SlotTypeSortAttribute' "LastUpdatedDateTime"++pattern SlotTypeSortAttribute_SlotTypeName :: SlotTypeSortAttribute+pattern SlotTypeSortAttribute_SlotTypeName = SlotTypeSortAttribute' "SlotTypeName"++{-# COMPLETE+  SlotTypeSortAttribute_LastUpdatedDateTime,+  SlotTypeSortAttribute_SlotTypeName,+  SlotTypeSortAttribute'+  #-}
+ gen/Amazonka/LexV2Models/Types/SlotTypeSortBy.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotTypeSortBy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotTypeSortBy where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.SlotTypeSortAttribute+import Amazonka.LexV2Models.Types.SortOrder+import qualified Amazonka.Prelude as Prelude++-- | Specifies attributes for sorting a list of slot types.+--+-- /See:/ 'newSlotTypeSortBy' smart constructor.+data SlotTypeSortBy = SlotTypeSortBy'+  { -- | The attribute to use to sort the list of slot types.+    attribute :: SlotTypeSortAttribute,+    -- | The order to sort the list. You can say ascending or descending.+    order :: SortOrder+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotTypeSortBy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attribute', 'slotTypeSortBy_attribute' - The attribute to use to sort the list of slot types.+--+-- 'order', 'slotTypeSortBy_order' - The order to sort the list. You can say ascending or descending.+newSlotTypeSortBy ::+  -- | 'attribute'+  SlotTypeSortAttribute ->+  -- | 'order'+  SortOrder ->+  SlotTypeSortBy+newSlotTypeSortBy pAttribute_ pOrder_ =+  SlotTypeSortBy'+    { attribute = pAttribute_,+      order = pOrder_+    }++-- | The attribute to use to sort the list of slot types.+slotTypeSortBy_attribute :: Lens.Lens' SlotTypeSortBy SlotTypeSortAttribute+slotTypeSortBy_attribute = Lens.lens (\SlotTypeSortBy' {attribute} -> attribute) (\s@SlotTypeSortBy' {} a -> s {attribute = a} :: SlotTypeSortBy)++-- | The order to sort the list. You can say ascending or descending.+slotTypeSortBy_order :: Lens.Lens' SlotTypeSortBy SortOrder+slotTypeSortBy_order = Lens.lens (\SlotTypeSortBy' {order} -> order) (\s@SlotTypeSortBy' {} a -> s {order = a} :: SlotTypeSortBy)++instance Prelude.Hashable SlotTypeSortBy where+  hashWithSalt _salt SlotTypeSortBy' {..} =+    _salt+      `Prelude.hashWithSalt` attribute+      `Prelude.hashWithSalt` order++instance Prelude.NFData SlotTypeSortBy where+  rnf SlotTypeSortBy' {..} =+    Prelude.rnf attribute+      `Prelude.seq` Prelude.rnf order++instance Data.ToJSON SlotTypeSortBy where+  toJSON SlotTypeSortBy' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("attribute" Data..= attribute),+            Prelude.Just ("order" Data..= order)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/SlotTypeStatistics.hs view
@@ -0,0 +1,77 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotTypeStatistics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotTypeStatistics where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The object that contains the statistical summary of the recommended slot+-- type associated with the bot recommendation.+--+-- /See:/ 'newSlotTypeStatistics' smart constructor.+data SlotTypeStatistics = SlotTypeStatistics'+  { -- | The number of recommended slot types associated with the bot+    -- recommendation.+    discoveredSlotTypeCount :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotTypeStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'discoveredSlotTypeCount', 'slotTypeStatistics_discoveredSlotTypeCount' - The number of recommended slot types associated with the bot+-- recommendation.+newSlotTypeStatistics ::+  SlotTypeStatistics+newSlotTypeStatistics =+  SlotTypeStatistics'+    { discoveredSlotTypeCount =+        Prelude.Nothing+    }++-- | The number of recommended slot types associated with the bot+-- recommendation.+slotTypeStatistics_discoveredSlotTypeCount :: Lens.Lens' SlotTypeStatistics (Prelude.Maybe Prelude.Int)+slotTypeStatistics_discoveredSlotTypeCount = Lens.lens (\SlotTypeStatistics' {discoveredSlotTypeCount} -> discoveredSlotTypeCount) (\s@SlotTypeStatistics' {} a -> s {discoveredSlotTypeCount = a} :: SlotTypeStatistics)++instance Data.FromJSON SlotTypeStatistics where+  parseJSON =+    Data.withObject+      "SlotTypeStatistics"+      ( \x ->+          SlotTypeStatistics'+            Prelude.<$> (x Data..:? "discoveredSlotTypeCount")+      )++instance Prelude.Hashable SlotTypeStatistics where+  hashWithSalt _salt SlotTypeStatistics' {..} =+    _salt+      `Prelude.hashWithSalt` discoveredSlotTypeCount++instance Prelude.NFData SlotTypeStatistics where+  rnf SlotTypeStatistics' {..} =+    Prelude.rnf discoveredSlotTypeCount
+ gen/Amazonka/LexV2Models/Types/SlotTypeSummary.hs view
@@ -0,0 +1,172 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotTypeSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotTypeSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.SlotTypeCategory+import qualified Amazonka.Prelude as Prelude++-- | Provides summary information about a slot type.+--+-- /See:/ 'newSlotTypeSummary' smart constructor.+data SlotTypeSummary = SlotTypeSummary'+  { -- | The description of the slot type.+    description :: Prelude.Maybe Prelude.Text,+    -- | A timestamp of the date and time that the slot type was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | If the slot type is derived from a built-on slot type, the name of the+    -- parent slot type.+    parentSlotTypeSignature :: Prelude.Maybe Prelude.Text,+    -- | Indicates the type of the slot type.+    --+    -- -   @Custom@ - A slot type that you created using custom values. For+    --     more information, see+    --     <https://docs.aws.amazon.com/lexv2/latest/dg/custom-slot-types.html Creating custom slot types>.+    --+    -- -   @Extended@ - A slot type created by extending the+    --     AMAZON.AlphaNumeric built-in slot type. For more information, see+    --     <https://docs.aws.amazon.com/lexv2/latest/dg/built-in-slot-alphanumerice.html AMAZON.AlphaNumeric>.+    --+    -- -   @ExternalGrammar@ - A slot type using a custom GRXML grammar to+    --     define values. For more information, see+    --     <https://docs.aws.amazon.com/lexv2/latest/dg/building-grxml.html Using a custom grammar slot type>.+    slotTypeCategory :: Prelude.Maybe SlotTypeCategory,+    -- | The unique identifier assigned to the slot type.+    slotTypeId :: Prelude.Maybe Prelude.Text,+    -- | The name of the slot type.+    slotTypeName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotTypeSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'slotTypeSummary_description' - The description of the slot type.+--+-- 'lastUpdatedDateTime', 'slotTypeSummary_lastUpdatedDateTime' - A timestamp of the date and time that the slot type was last updated.+--+-- 'parentSlotTypeSignature', 'slotTypeSummary_parentSlotTypeSignature' - If the slot type is derived from a built-on slot type, the name of the+-- parent slot type.+--+-- 'slotTypeCategory', 'slotTypeSummary_slotTypeCategory' - Indicates the type of the slot type.+--+-- -   @Custom@ - A slot type that you created using custom values. For+--     more information, see+--     <https://docs.aws.amazon.com/lexv2/latest/dg/custom-slot-types.html Creating custom slot types>.+--+-- -   @Extended@ - A slot type created by extending the+--     AMAZON.AlphaNumeric built-in slot type. For more information, see+--     <https://docs.aws.amazon.com/lexv2/latest/dg/built-in-slot-alphanumerice.html AMAZON.AlphaNumeric>.+--+-- -   @ExternalGrammar@ - A slot type using a custom GRXML grammar to+--     define values. For more information, see+--     <https://docs.aws.amazon.com/lexv2/latest/dg/building-grxml.html Using a custom grammar slot type>.+--+-- 'slotTypeId', 'slotTypeSummary_slotTypeId' - The unique identifier assigned to the slot type.+--+-- 'slotTypeName', 'slotTypeSummary_slotTypeName' - The name of the slot type.+newSlotTypeSummary ::+  SlotTypeSummary+newSlotTypeSummary =+  SlotTypeSummary'+    { description = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      parentSlotTypeSignature = Prelude.Nothing,+      slotTypeCategory = Prelude.Nothing,+      slotTypeId = Prelude.Nothing,+      slotTypeName = Prelude.Nothing+    }++-- | The description of the slot type.+slotTypeSummary_description :: Lens.Lens' SlotTypeSummary (Prelude.Maybe Prelude.Text)+slotTypeSummary_description = Lens.lens (\SlotTypeSummary' {description} -> description) (\s@SlotTypeSummary' {} a -> s {description = a} :: SlotTypeSummary)++-- | A timestamp of the date and time that the slot type was last updated.+slotTypeSummary_lastUpdatedDateTime :: Lens.Lens' SlotTypeSummary (Prelude.Maybe Prelude.UTCTime)+slotTypeSummary_lastUpdatedDateTime = Lens.lens (\SlotTypeSummary' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@SlotTypeSummary' {} a -> s {lastUpdatedDateTime = a} :: SlotTypeSummary) Prelude.. Lens.mapping Data._Time++-- | If the slot type is derived from a built-on slot type, the name of the+-- parent slot type.+slotTypeSummary_parentSlotTypeSignature :: Lens.Lens' SlotTypeSummary (Prelude.Maybe Prelude.Text)+slotTypeSummary_parentSlotTypeSignature = Lens.lens (\SlotTypeSummary' {parentSlotTypeSignature} -> parentSlotTypeSignature) (\s@SlotTypeSummary' {} a -> s {parentSlotTypeSignature = a} :: SlotTypeSummary)++-- | Indicates the type of the slot type.+--+-- -   @Custom@ - A slot type that you created using custom values. For+--     more information, see+--     <https://docs.aws.amazon.com/lexv2/latest/dg/custom-slot-types.html Creating custom slot types>.+--+-- -   @Extended@ - A slot type created by extending the+--     AMAZON.AlphaNumeric built-in slot type. For more information, see+--     <https://docs.aws.amazon.com/lexv2/latest/dg/built-in-slot-alphanumerice.html AMAZON.AlphaNumeric>.+--+-- -   @ExternalGrammar@ - A slot type using a custom GRXML grammar to+--     define values. For more information, see+--     <https://docs.aws.amazon.com/lexv2/latest/dg/building-grxml.html Using a custom grammar slot type>.+slotTypeSummary_slotTypeCategory :: Lens.Lens' SlotTypeSummary (Prelude.Maybe SlotTypeCategory)+slotTypeSummary_slotTypeCategory = Lens.lens (\SlotTypeSummary' {slotTypeCategory} -> slotTypeCategory) (\s@SlotTypeSummary' {} a -> s {slotTypeCategory = a} :: SlotTypeSummary)++-- | The unique identifier assigned to the slot type.+slotTypeSummary_slotTypeId :: Lens.Lens' SlotTypeSummary (Prelude.Maybe Prelude.Text)+slotTypeSummary_slotTypeId = Lens.lens (\SlotTypeSummary' {slotTypeId} -> slotTypeId) (\s@SlotTypeSummary' {} a -> s {slotTypeId = a} :: SlotTypeSummary)++-- | The name of the slot type.+slotTypeSummary_slotTypeName :: Lens.Lens' SlotTypeSummary (Prelude.Maybe Prelude.Text)+slotTypeSummary_slotTypeName = Lens.lens (\SlotTypeSummary' {slotTypeName} -> slotTypeName) (\s@SlotTypeSummary' {} a -> s {slotTypeName = a} :: SlotTypeSummary)++instance Data.FromJSON SlotTypeSummary where+  parseJSON =+    Data.withObject+      "SlotTypeSummary"+      ( \x ->+          SlotTypeSummary'+            Prelude.<$> (x Data..:? "description")+            Prelude.<*> (x Data..:? "lastUpdatedDateTime")+            Prelude.<*> (x Data..:? "parentSlotTypeSignature")+            Prelude.<*> (x Data..:? "slotTypeCategory")+            Prelude.<*> (x Data..:? "slotTypeId")+            Prelude.<*> (x Data..:? "slotTypeName")+      )++instance Prelude.Hashable SlotTypeSummary where+  hashWithSalt _salt SlotTypeSummary' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` lastUpdatedDateTime+      `Prelude.hashWithSalt` parentSlotTypeSignature+      `Prelude.hashWithSalt` slotTypeCategory+      `Prelude.hashWithSalt` slotTypeId+      `Prelude.hashWithSalt` slotTypeName++instance Prelude.NFData SlotTypeSummary where+  rnf SlotTypeSummary' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf parentSlotTypeSignature+      `Prelude.seq` Prelude.rnf slotTypeCategory+      `Prelude.seq` Prelude.rnf slotTypeId+      `Prelude.seq` Prelude.rnf slotTypeName
+ gen/Amazonka/LexV2Models/Types/SlotTypeValue.hs view
@@ -0,0 +1,95 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotTypeValue+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotTypeValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.SampleValue+import qualified Amazonka.Prelude as Prelude++-- | Each slot type can have a set of values. Each @SlotTypeValue@ represents+-- a value that the slot type can take.+--+-- /See:/ 'newSlotTypeValue' smart constructor.+data SlotTypeValue = SlotTypeValue'+  { -- | The value of the slot type entry.+    sampleValue :: Prelude.Maybe SampleValue,+    -- | Additional values related to the slot type entry.+    synonyms :: Prelude.Maybe (Prelude.NonEmpty SampleValue)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotTypeValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sampleValue', 'slotTypeValue_sampleValue' - The value of the slot type entry.+--+-- 'synonyms', 'slotTypeValue_synonyms' - Additional values related to the slot type entry.+newSlotTypeValue ::+  SlotTypeValue+newSlotTypeValue =+  SlotTypeValue'+    { sampleValue = Prelude.Nothing,+      synonyms = Prelude.Nothing+    }++-- | The value of the slot type entry.+slotTypeValue_sampleValue :: Lens.Lens' SlotTypeValue (Prelude.Maybe SampleValue)+slotTypeValue_sampleValue = Lens.lens (\SlotTypeValue' {sampleValue} -> sampleValue) (\s@SlotTypeValue' {} a -> s {sampleValue = a} :: SlotTypeValue)++-- | Additional values related to the slot type entry.+slotTypeValue_synonyms :: Lens.Lens' SlotTypeValue (Prelude.Maybe (Prelude.NonEmpty SampleValue))+slotTypeValue_synonyms = Lens.lens (\SlotTypeValue' {synonyms} -> synonyms) (\s@SlotTypeValue' {} a -> s {synonyms = a} :: SlotTypeValue) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON SlotTypeValue where+  parseJSON =+    Data.withObject+      "SlotTypeValue"+      ( \x ->+          SlotTypeValue'+            Prelude.<$> (x Data..:? "sampleValue")+            Prelude.<*> (x Data..:? "synonyms")+      )++instance Prelude.Hashable SlotTypeValue where+  hashWithSalt _salt SlotTypeValue' {..} =+    _salt+      `Prelude.hashWithSalt` sampleValue+      `Prelude.hashWithSalt` synonyms++instance Prelude.NFData SlotTypeValue where+  rnf SlotTypeValue' {..} =+    Prelude.rnf sampleValue+      `Prelude.seq` Prelude.rnf synonyms++instance Data.ToJSON SlotTypeValue where+  toJSON SlotTypeValue' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("sampleValue" Data..=) Prelude.<$> sampleValue,+            ("synonyms" Data..=) Prelude.<$> synonyms+          ]+      )
+ gen/Amazonka/LexV2Models/Types/SlotValue.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotValue+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The value to set in a slot.+--+-- /See:/ 'newSlotValue' smart constructor.+data SlotValue = SlotValue'+  { -- | The value that Amazon Lex determines for the slot. The actual value+    -- depends on the setting of the value selection strategy for the bot. You+    -- can choose to use the value entered by the user, or you can have Amazon+    -- Lex choose the first value in the @resolvedValues@ list.+    interpretedValue :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'interpretedValue', 'slotValue_interpretedValue' - The value that Amazon Lex determines for the slot. The actual value+-- depends on the setting of the value selection strategy for the bot. You+-- can choose to use the value entered by the user, or you can have Amazon+-- Lex choose the first value in the @resolvedValues@ list.+newSlotValue ::+  SlotValue+newSlotValue =+  SlotValue' {interpretedValue = Prelude.Nothing}++-- | The value that Amazon Lex determines for the slot. The actual value+-- depends on the setting of the value selection strategy for the bot. You+-- can choose to use the value entered by the user, or you can have Amazon+-- Lex choose the first value in the @resolvedValues@ list.+slotValue_interpretedValue :: Lens.Lens' SlotValue (Prelude.Maybe Prelude.Text)+slotValue_interpretedValue = Lens.lens (\SlotValue' {interpretedValue} -> interpretedValue) (\s@SlotValue' {} a -> s {interpretedValue = a} :: SlotValue)++instance Data.FromJSON SlotValue where+  parseJSON =+    Data.withObject+      "SlotValue"+      ( \x ->+          SlotValue'+            Prelude.<$> (x Data..:? "interpretedValue")+      )++instance Prelude.Hashable SlotValue where+  hashWithSalt _salt SlotValue' {..} =+    _salt `Prelude.hashWithSalt` interpretedValue++instance Prelude.NFData SlotValue where+  rnf SlotValue' {..} = Prelude.rnf interpretedValue++instance Data.ToJSON SlotValue where+  toJSON SlotValue' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("interpretedValue" Data..=)+              Prelude.<$> interpretedValue+          ]+      )
+ gen/Amazonka/LexV2Models/Types/SlotValueElicitationSetting.hs view
@@ -0,0 +1,181 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotValueElicitationSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotValueElicitationSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.PromptSpecification+import Amazonka.LexV2Models.Types.SampleUtterance+import Amazonka.LexV2Models.Types.SlotCaptureSetting+import Amazonka.LexV2Models.Types.SlotConstraint+import Amazonka.LexV2Models.Types.SlotDefaultValueSpecification+import Amazonka.LexV2Models.Types.WaitAndContinueSpecification+import qualified Amazonka.Prelude as Prelude++-- | Specifies the elicitation setting details for constituent sub slots of a+-- composite slot.+--+-- /See:/ 'newSlotValueElicitationSetting' smart constructor.+data SlotValueElicitationSetting = SlotValueElicitationSetting'+  { -- | A list of default values for a slot. Default values are used when Amazon+    -- Lex hasn\'t determined a value for a slot. You can specify default+    -- values from context variables, session attributes, and defined values.+    defaultValueSpecification :: Prelude.Maybe SlotDefaultValueSpecification,+    -- | The prompt that Amazon Lex uses to elicit the slot value from the user.+    promptSpecification :: Prelude.Maybe PromptSpecification,+    -- | If you know a specific pattern that users might respond to an Amazon Lex+    -- request for a slot value, you can provide those utterances to improve+    -- accuracy. This is optional. In most cases, Amazon Lex is capable of+    -- understanding user utterances.+    sampleUtterances :: Prelude.Maybe [SampleUtterance],+    -- | Specifies the settings that Amazon Lex uses when a slot value is+    -- successfully entered by a user.+    slotCaptureSetting :: Prelude.Maybe SlotCaptureSetting,+    waitAndContinueSpecification :: Prelude.Maybe WaitAndContinueSpecification,+    -- | Specifies whether the slot is required or optional.+    slotConstraint :: SlotConstraint+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotValueElicitationSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'defaultValueSpecification', 'slotValueElicitationSetting_defaultValueSpecification' - A list of default values for a slot. Default values are used when Amazon+-- Lex hasn\'t determined a value for a slot. You can specify default+-- values from context variables, session attributes, and defined values.+--+-- 'promptSpecification', 'slotValueElicitationSetting_promptSpecification' - The prompt that Amazon Lex uses to elicit the slot value from the user.+--+-- 'sampleUtterances', 'slotValueElicitationSetting_sampleUtterances' - If you know a specific pattern that users might respond to an Amazon Lex+-- request for a slot value, you can provide those utterances to improve+-- accuracy. This is optional. In most cases, Amazon Lex is capable of+-- understanding user utterances.+--+-- 'slotCaptureSetting', 'slotValueElicitationSetting_slotCaptureSetting' - Specifies the settings that Amazon Lex uses when a slot value is+-- successfully entered by a user.+--+-- 'waitAndContinueSpecification', 'slotValueElicitationSetting_waitAndContinueSpecification' - Undocumented member.+--+-- 'slotConstraint', 'slotValueElicitationSetting_slotConstraint' - Specifies whether the slot is required or optional.+newSlotValueElicitationSetting ::+  -- | 'slotConstraint'+  SlotConstraint ->+  SlotValueElicitationSetting+newSlotValueElicitationSetting pSlotConstraint_ =+  SlotValueElicitationSetting'+    { defaultValueSpecification =+        Prelude.Nothing,+      promptSpecification = Prelude.Nothing,+      sampleUtterances = Prelude.Nothing,+      slotCaptureSetting = Prelude.Nothing,+      waitAndContinueSpecification = Prelude.Nothing,+      slotConstraint = pSlotConstraint_+    }++-- | A list of default values for a slot. Default values are used when Amazon+-- Lex hasn\'t determined a value for a slot. You can specify default+-- values from context variables, session attributes, and defined values.+slotValueElicitationSetting_defaultValueSpecification :: Lens.Lens' SlotValueElicitationSetting (Prelude.Maybe SlotDefaultValueSpecification)+slotValueElicitationSetting_defaultValueSpecification = Lens.lens (\SlotValueElicitationSetting' {defaultValueSpecification} -> defaultValueSpecification) (\s@SlotValueElicitationSetting' {} a -> s {defaultValueSpecification = a} :: SlotValueElicitationSetting)++-- | The prompt that Amazon Lex uses to elicit the slot value from the user.+slotValueElicitationSetting_promptSpecification :: Lens.Lens' SlotValueElicitationSetting (Prelude.Maybe PromptSpecification)+slotValueElicitationSetting_promptSpecification = Lens.lens (\SlotValueElicitationSetting' {promptSpecification} -> promptSpecification) (\s@SlotValueElicitationSetting' {} a -> s {promptSpecification = a} :: SlotValueElicitationSetting)++-- | If you know a specific pattern that users might respond to an Amazon Lex+-- request for a slot value, you can provide those utterances to improve+-- accuracy. This is optional. In most cases, Amazon Lex is capable of+-- understanding user utterances.+slotValueElicitationSetting_sampleUtterances :: Lens.Lens' SlotValueElicitationSetting (Prelude.Maybe [SampleUtterance])+slotValueElicitationSetting_sampleUtterances = Lens.lens (\SlotValueElicitationSetting' {sampleUtterances} -> sampleUtterances) (\s@SlotValueElicitationSetting' {} a -> s {sampleUtterances = a} :: SlotValueElicitationSetting) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the settings that Amazon Lex uses when a slot value is+-- successfully entered by a user.+slotValueElicitationSetting_slotCaptureSetting :: Lens.Lens' SlotValueElicitationSetting (Prelude.Maybe SlotCaptureSetting)+slotValueElicitationSetting_slotCaptureSetting = Lens.lens (\SlotValueElicitationSetting' {slotCaptureSetting} -> slotCaptureSetting) (\s@SlotValueElicitationSetting' {} a -> s {slotCaptureSetting = a} :: SlotValueElicitationSetting)++-- | Undocumented member.+slotValueElicitationSetting_waitAndContinueSpecification :: Lens.Lens' SlotValueElicitationSetting (Prelude.Maybe WaitAndContinueSpecification)+slotValueElicitationSetting_waitAndContinueSpecification = Lens.lens (\SlotValueElicitationSetting' {waitAndContinueSpecification} -> waitAndContinueSpecification) (\s@SlotValueElicitationSetting' {} a -> s {waitAndContinueSpecification = a} :: SlotValueElicitationSetting)++-- | Specifies whether the slot is required or optional.+slotValueElicitationSetting_slotConstraint :: Lens.Lens' SlotValueElicitationSetting SlotConstraint+slotValueElicitationSetting_slotConstraint = Lens.lens (\SlotValueElicitationSetting' {slotConstraint} -> slotConstraint) (\s@SlotValueElicitationSetting' {} a -> s {slotConstraint = a} :: SlotValueElicitationSetting)++instance Data.FromJSON SlotValueElicitationSetting where+  parseJSON =+    Data.withObject+      "SlotValueElicitationSetting"+      ( \x ->+          SlotValueElicitationSetting'+            Prelude.<$> (x Data..:? "defaultValueSpecification")+            Prelude.<*> (x Data..:? "promptSpecification")+            Prelude.<*> ( x+                            Data..:? "sampleUtterances"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "slotCaptureSetting")+            Prelude.<*> (x Data..:? "waitAndContinueSpecification")+            Prelude.<*> (x Data..: "slotConstraint")+      )++instance Prelude.Hashable SlotValueElicitationSetting where+  hashWithSalt _salt SlotValueElicitationSetting' {..} =+    _salt+      `Prelude.hashWithSalt` defaultValueSpecification+      `Prelude.hashWithSalt` promptSpecification+      `Prelude.hashWithSalt` sampleUtterances+      `Prelude.hashWithSalt` slotCaptureSetting+      `Prelude.hashWithSalt` waitAndContinueSpecification+      `Prelude.hashWithSalt` slotConstraint++instance Prelude.NFData SlotValueElicitationSetting where+  rnf SlotValueElicitationSetting' {..} =+    Prelude.rnf defaultValueSpecification+      `Prelude.seq` Prelude.rnf promptSpecification+      `Prelude.seq` Prelude.rnf sampleUtterances+      `Prelude.seq` Prelude.rnf slotCaptureSetting+      `Prelude.seq` Prelude.rnf waitAndContinueSpecification+      `Prelude.seq` Prelude.rnf slotConstraint++instance Data.ToJSON SlotValueElicitationSetting where+  toJSON SlotValueElicitationSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("defaultValueSpecification" Data..=)+              Prelude.<$> defaultValueSpecification,+            ("promptSpecification" Data..=)+              Prelude.<$> promptSpecification,+            ("sampleUtterances" Data..=)+              Prelude.<$> sampleUtterances,+            ("slotCaptureSetting" Data..=)+              Prelude.<$> slotCaptureSetting,+            ("waitAndContinueSpecification" Data..=)+              Prelude.<$> waitAndContinueSpecification,+            Prelude.Just+              ("slotConstraint" Data..= slotConstraint)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/SlotValueOverride.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotValueOverride+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotValueOverride where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.SlotShape+import Amazonka.LexV2Models.Types.SlotValue+import qualified Amazonka.Prelude as Prelude++-- | The slot values that Amazon Lex uses when it sets slot values in a+-- dialog step.+--+-- /See:/ 'newSlotValueOverride' smart constructor.+data SlotValueOverride = SlotValueOverride'+  { -- | When the shape value is @List@, it indicates that the @values@ field+    -- contains a list of slot values. When the value is @Scalar@, it indicates+    -- that the @value@ field contains a single value.+    shape :: Prelude.Maybe SlotShape,+    -- | The current value of the slot.+    value :: Prelude.Maybe SlotValue,+    -- | A list of one or more values that the user provided for the slot. For+    -- example, for a slot that elicits pizza toppings, the values might be+    -- \"pepperoni\" and \"pineapple.\"+    values :: Prelude.Maybe [SlotValueOverride]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotValueOverride' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'shape', 'slotValueOverride_shape' - When the shape value is @List@, it indicates that the @values@ field+-- contains a list of slot values. When the value is @Scalar@, it indicates+-- that the @value@ field contains a single value.+--+-- 'value', 'slotValueOverride_value' - The current value of the slot.+--+-- 'values', 'slotValueOverride_values' - A list of one or more values that the user provided for the slot. For+-- example, for a slot that elicits pizza toppings, the values might be+-- \"pepperoni\" and \"pineapple.\"+newSlotValueOverride ::+  SlotValueOverride+newSlotValueOverride =+  SlotValueOverride'+    { shape = Prelude.Nothing,+      value = Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | When the shape value is @List@, it indicates that the @values@ field+-- contains a list of slot values. When the value is @Scalar@, it indicates+-- that the @value@ field contains a single value.+slotValueOverride_shape :: Lens.Lens' SlotValueOverride (Prelude.Maybe SlotShape)+slotValueOverride_shape = Lens.lens (\SlotValueOverride' {shape} -> shape) (\s@SlotValueOverride' {} a -> s {shape = a} :: SlotValueOverride)++-- | The current value of the slot.+slotValueOverride_value :: Lens.Lens' SlotValueOverride (Prelude.Maybe SlotValue)+slotValueOverride_value = Lens.lens (\SlotValueOverride' {value} -> value) (\s@SlotValueOverride' {} a -> s {value = a} :: SlotValueOverride)++-- | A list of one or more values that the user provided for the slot. For+-- example, for a slot that elicits pizza toppings, the values might be+-- \"pepperoni\" and \"pineapple.\"+slotValueOverride_values :: Lens.Lens' SlotValueOverride (Prelude.Maybe [SlotValueOverride])+slotValueOverride_values = Lens.lens (\SlotValueOverride' {values} -> values) (\s@SlotValueOverride' {} a -> s {values = a} :: SlotValueOverride) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON SlotValueOverride where+  parseJSON =+    Data.withObject+      "SlotValueOverride"+      ( \x ->+          SlotValueOverride'+            Prelude.<$> (x Data..:? "shape")+            Prelude.<*> (x Data..:? "value")+            Prelude.<*> (x Data..:? "values" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable SlotValueOverride where+  hashWithSalt _salt SlotValueOverride' {..} =+    _salt+      `Prelude.hashWithSalt` shape+      `Prelude.hashWithSalt` value+      `Prelude.hashWithSalt` values++instance Prelude.NFData SlotValueOverride where+  rnf SlotValueOverride' {..} =+    Prelude.rnf shape+      `Prelude.seq` Prelude.rnf value+      `Prelude.seq` Prelude.rnf values++instance Data.ToJSON SlotValueOverride where+  toJSON SlotValueOverride' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("shape" Data..=) Prelude.<$> shape,+            ("value" Data..=) Prelude.<$> value,+            ("values" Data..=) Prelude.<$> values+          ]+      )
+ gen/Amazonka/LexV2Models/Types/SlotValueRegexFilter.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotValueRegexFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotValueRegexFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Provides a regular expression used to validate the value of a slot.+--+-- /See:/ 'newSlotValueRegexFilter' smart constructor.+data SlotValueRegexFilter = SlotValueRegexFilter'+  { -- | A regular expression used to validate the value of a slot.+    --+    -- Use a standard regular expression. Amazon Lex supports the following+    -- characters in the regular expression:+    --+    -- -   A-Z, a-z+    --+    -- -   0-9+    --+    -- -   Unicode characters (\"\\ u\<Unicode>\")+    --+    -- Represent Unicode characters with four digits, for example \"\\u0041\"+    -- or \"\\u005A\".+    --+    -- The following regular expression operators are not supported:+    --+    -- -   Infinite repeaters: *, +, or {x,} with no upper bound.+    --+    -- -   Wild card (.)+    pattern' :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotValueRegexFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'pattern'', 'slotValueRegexFilter_pattern' - A regular expression used to validate the value of a slot.+--+-- Use a standard regular expression. Amazon Lex supports the following+-- characters in the regular expression:+--+-- -   A-Z, a-z+--+-- -   0-9+--+-- -   Unicode characters (\"\\ u\<Unicode>\")+--+-- Represent Unicode characters with four digits, for example \"\\u0041\"+-- or \"\\u005A\".+--+-- The following regular expression operators are not supported:+--+-- -   Infinite repeaters: *, +, or {x,} with no upper bound.+--+-- -   Wild card (.)+newSlotValueRegexFilter ::+  -- | 'pattern''+  Prelude.Text ->+  SlotValueRegexFilter+newSlotValueRegexFilter pPattern_ =+  SlotValueRegexFilter' {pattern' = pPattern_}++-- | A regular expression used to validate the value of a slot.+--+-- Use a standard regular expression. Amazon Lex supports the following+-- characters in the regular expression:+--+-- -   A-Z, a-z+--+-- -   0-9+--+-- -   Unicode characters (\"\\ u\<Unicode>\")+--+-- Represent Unicode characters with four digits, for example \"\\u0041\"+-- or \"\\u005A\".+--+-- The following regular expression operators are not supported:+--+-- -   Infinite repeaters: *, +, or {x,} with no upper bound.+--+-- -   Wild card (.)+slotValueRegexFilter_pattern :: Lens.Lens' SlotValueRegexFilter Prelude.Text+slotValueRegexFilter_pattern = Lens.lens (\SlotValueRegexFilter' {pattern'} -> pattern') (\s@SlotValueRegexFilter' {} a -> s {pattern' = a} :: SlotValueRegexFilter)++instance Data.FromJSON SlotValueRegexFilter where+  parseJSON =+    Data.withObject+      "SlotValueRegexFilter"+      ( \x ->+          SlotValueRegexFilter'+            Prelude.<$> (x Data..: "pattern")+      )++instance Prelude.Hashable SlotValueRegexFilter where+  hashWithSalt _salt SlotValueRegexFilter' {..} =+    _salt `Prelude.hashWithSalt` pattern'++instance Prelude.NFData SlotValueRegexFilter where+  rnf SlotValueRegexFilter' {..} = Prelude.rnf pattern'++instance Data.ToJSON SlotValueRegexFilter where+  toJSON SlotValueRegexFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("pattern" Data..= pattern')]+      )
+ gen/Amazonka/LexV2Models/Types/SlotValueResolutionStrategy.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotValueResolutionStrategy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotValueResolutionStrategy+  ( SlotValueResolutionStrategy+      ( ..,+        SlotValueResolutionStrategy_Concatenation,+        SlotValueResolutionStrategy_OriginalValue,+        SlotValueResolutionStrategy_TopResolution+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SlotValueResolutionStrategy = SlotValueResolutionStrategy'+  { fromSlotValueResolutionStrategy ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SlotValueResolutionStrategy_Concatenation :: SlotValueResolutionStrategy+pattern SlotValueResolutionStrategy_Concatenation = SlotValueResolutionStrategy' "Concatenation"++pattern SlotValueResolutionStrategy_OriginalValue :: SlotValueResolutionStrategy+pattern SlotValueResolutionStrategy_OriginalValue = SlotValueResolutionStrategy' "OriginalValue"++pattern SlotValueResolutionStrategy_TopResolution :: SlotValueResolutionStrategy+pattern SlotValueResolutionStrategy_TopResolution = SlotValueResolutionStrategy' "TopResolution"++{-# COMPLETE+  SlotValueResolutionStrategy_Concatenation,+  SlotValueResolutionStrategy_OriginalValue,+  SlotValueResolutionStrategy_TopResolution,+  SlotValueResolutionStrategy'+  #-}
+ gen/Amazonka/LexV2Models/Types/SlotValueSelectionSetting.hs view
@@ -0,0 +1,150 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SlotValueSelectionSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SlotValueSelectionSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.AdvancedRecognitionSetting+import Amazonka.LexV2Models.Types.SlotValueRegexFilter+import Amazonka.LexV2Models.Types.SlotValueResolutionStrategy+import qualified Amazonka.Prelude as Prelude++-- | Contains settings used by Amazon Lex to select a slot value.+--+-- /See:/ 'newSlotValueSelectionSetting' smart constructor.+data SlotValueSelectionSetting = SlotValueSelectionSetting'+  { -- | Provides settings that enable advanced recognition settings for slot+    -- values.+    advancedRecognitionSetting :: Prelude.Maybe AdvancedRecognitionSetting,+    -- | A regular expression used to validate the value of a slot.+    regexFilter :: Prelude.Maybe SlotValueRegexFilter,+    -- | Determines the slot resolution strategy that Amazon Lex uses to return+    -- slot type values. The field can be set to one of the following values:+    --+    -- -   OriginalValue - Returns the value entered by the user, if the user+    --     value is similar to the slot value.+    --+    -- -   TopResolution - If there is a resolution list for the slot, return+    --     the first value in the resolution list as the slot type value. If+    --     there is no resolution list, null is returned.+    --+    -- If you don\'t specify the valueSelectionStrategy, the default is+    -- OriginalValue.+    resolutionStrategy :: SlotValueResolutionStrategy+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlotValueSelectionSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'advancedRecognitionSetting', 'slotValueSelectionSetting_advancedRecognitionSetting' - Provides settings that enable advanced recognition settings for slot+-- values.+--+-- 'regexFilter', 'slotValueSelectionSetting_regexFilter' - A regular expression used to validate the value of a slot.+--+-- 'resolutionStrategy', 'slotValueSelectionSetting_resolutionStrategy' - Determines the slot resolution strategy that Amazon Lex uses to return+-- slot type values. The field can be set to one of the following values:+--+-- -   OriginalValue - Returns the value entered by the user, if the user+--     value is similar to the slot value.+--+-- -   TopResolution - If there is a resolution list for the slot, return+--     the first value in the resolution list as the slot type value. If+--     there is no resolution list, null is returned.+--+-- If you don\'t specify the valueSelectionStrategy, the default is+-- OriginalValue.+newSlotValueSelectionSetting ::+  -- | 'resolutionStrategy'+  SlotValueResolutionStrategy ->+  SlotValueSelectionSetting+newSlotValueSelectionSetting pResolutionStrategy_ =+  SlotValueSelectionSetting'+    { advancedRecognitionSetting =+        Prelude.Nothing,+      regexFilter = Prelude.Nothing,+      resolutionStrategy = pResolutionStrategy_+    }++-- | Provides settings that enable advanced recognition settings for slot+-- values.+slotValueSelectionSetting_advancedRecognitionSetting :: Lens.Lens' SlotValueSelectionSetting (Prelude.Maybe AdvancedRecognitionSetting)+slotValueSelectionSetting_advancedRecognitionSetting = Lens.lens (\SlotValueSelectionSetting' {advancedRecognitionSetting} -> advancedRecognitionSetting) (\s@SlotValueSelectionSetting' {} a -> s {advancedRecognitionSetting = a} :: SlotValueSelectionSetting)++-- | A regular expression used to validate the value of a slot.+slotValueSelectionSetting_regexFilter :: Lens.Lens' SlotValueSelectionSetting (Prelude.Maybe SlotValueRegexFilter)+slotValueSelectionSetting_regexFilter = Lens.lens (\SlotValueSelectionSetting' {regexFilter} -> regexFilter) (\s@SlotValueSelectionSetting' {} a -> s {regexFilter = a} :: SlotValueSelectionSetting)++-- | Determines the slot resolution strategy that Amazon Lex uses to return+-- slot type values. The field can be set to one of the following values:+--+-- -   OriginalValue - Returns the value entered by the user, if the user+--     value is similar to the slot value.+--+-- -   TopResolution - If there is a resolution list for the slot, return+--     the first value in the resolution list as the slot type value. If+--     there is no resolution list, null is returned.+--+-- If you don\'t specify the valueSelectionStrategy, the default is+-- OriginalValue.+slotValueSelectionSetting_resolutionStrategy :: Lens.Lens' SlotValueSelectionSetting SlotValueResolutionStrategy+slotValueSelectionSetting_resolutionStrategy = Lens.lens (\SlotValueSelectionSetting' {resolutionStrategy} -> resolutionStrategy) (\s@SlotValueSelectionSetting' {} a -> s {resolutionStrategy = a} :: SlotValueSelectionSetting)++instance Data.FromJSON SlotValueSelectionSetting where+  parseJSON =+    Data.withObject+      "SlotValueSelectionSetting"+      ( \x ->+          SlotValueSelectionSetting'+            Prelude.<$> (x Data..:? "advancedRecognitionSetting")+            Prelude.<*> (x Data..:? "regexFilter")+            Prelude.<*> (x Data..: "resolutionStrategy")+      )++instance Prelude.Hashable SlotValueSelectionSetting where+  hashWithSalt _salt SlotValueSelectionSetting' {..} =+    _salt+      `Prelude.hashWithSalt` advancedRecognitionSetting+      `Prelude.hashWithSalt` regexFilter+      `Prelude.hashWithSalt` resolutionStrategy++instance Prelude.NFData SlotValueSelectionSetting where+  rnf SlotValueSelectionSetting' {..} =+    Prelude.rnf advancedRecognitionSetting+      `Prelude.seq` Prelude.rnf regexFilter+      `Prelude.seq` Prelude.rnf resolutionStrategy++instance Data.ToJSON SlotValueSelectionSetting where+  toJSON SlotValueSelectionSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("advancedRecognitionSetting" Data..=)+              Prelude.<$> advancedRecognitionSetting,+            ("regexFilter" Data..=) Prelude.<$> regexFilter,+            Prelude.Just+              ("resolutionStrategy" Data..= resolutionStrategy)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/SortOrder.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SortOrder+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SortOrder+  ( SortOrder+      ( ..,+        SortOrder_Ascending,+        SortOrder_Descending+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SortOrder = SortOrder'+  { fromSortOrder ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SortOrder_Ascending :: SortOrder+pattern SortOrder_Ascending = SortOrder' "Ascending"++pattern SortOrder_Descending :: SortOrder+pattern SortOrder_Descending = SortOrder' "Descending"++{-# COMPLETE+  SortOrder_Ascending,+  SortOrder_Descending,+  SortOrder'+  #-}
+ gen/Amazonka/LexV2Models/Types/Specifications.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.Specifications+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.Specifications where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.SubSlotValueElicitationSetting+import qualified Amazonka.Prelude as Prelude++-- | Subslot specifications.+--+-- /See:/ 'newSpecifications' smart constructor.+data Specifications = Specifications'+  { -- | The unique identifier assigned to the slot type.+    slotTypeId :: Prelude.Text,+    -- | Specifies the elicitation setting details for constituent sub slots of a+    -- composite slot.+    valueElicitationSetting :: SubSlotValueElicitationSetting+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Specifications' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'slotTypeId', 'specifications_slotTypeId' - The unique identifier assigned to the slot type.+--+-- 'valueElicitationSetting', 'specifications_valueElicitationSetting' - Specifies the elicitation setting details for constituent sub slots of a+-- composite slot.+newSpecifications ::+  -- | 'slotTypeId'+  Prelude.Text ->+  -- | 'valueElicitationSetting'+  SubSlotValueElicitationSetting ->+  Specifications+newSpecifications+  pSlotTypeId_+  pValueElicitationSetting_ =+    Specifications'+      { slotTypeId = pSlotTypeId_,+        valueElicitationSetting = pValueElicitationSetting_+      }++-- | The unique identifier assigned to the slot type.+specifications_slotTypeId :: Lens.Lens' Specifications Prelude.Text+specifications_slotTypeId = Lens.lens (\Specifications' {slotTypeId} -> slotTypeId) (\s@Specifications' {} a -> s {slotTypeId = a} :: Specifications)++-- | Specifies the elicitation setting details for constituent sub slots of a+-- composite slot.+specifications_valueElicitationSetting :: Lens.Lens' Specifications SubSlotValueElicitationSetting+specifications_valueElicitationSetting = Lens.lens (\Specifications' {valueElicitationSetting} -> valueElicitationSetting) (\s@Specifications' {} a -> s {valueElicitationSetting = a} :: Specifications)++instance Data.FromJSON Specifications where+  parseJSON =+    Data.withObject+      "Specifications"+      ( \x ->+          Specifications'+            Prelude.<$> (x Data..: "slotTypeId")+            Prelude.<*> (x Data..: "valueElicitationSetting")+      )++instance Prelude.Hashable Specifications where+  hashWithSalt _salt Specifications' {..} =+    _salt+      `Prelude.hashWithSalt` slotTypeId+      `Prelude.hashWithSalt` valueElicitationSetting++instance Prelude.NFData Specifications where+  rnf Specifications' {..} =+    Prelude.rnf slotTypeId+      `Prelude.seq` Prelude.rnf valueElicitationSetting++instance Data.ToJSON Specifications where+  toJSON Specifications' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("slotTypeId" Data..= slotTypeId),+            Prelude.Just+              ( "valueElicitationSetting"+                  Data..= valueElicitationSetting+              )+          ]+      )
+ gen/Amazonka/LexV2Models/Types/StillWaitingResponseSpecification.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.StillWaitingResponseSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.StillWaitingResponseSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.MessageGroup+import qualified Amazonka.Prelude as Prelude++-- | Defines the messages that Amazon Lex sends to a user to remind them that+-- the bot is waiting for a response.+--+-- /See:/ 'newStillWaitingResponseSpecification' smart constructor.+data StillWaitingResponseSpecification = StillWaitingResponseSpecification'+  { -- | Indicates that the user can interrupt the response by speaking while the+    -- message is being played.+    allowInterrupt :: Prelude.Maybe Prelude.Bool,+    -- | One or more message groups, each containing one or more messages, that+    -- define the prompts that Amazon Lex sends to the user.+    messageGroups :: Prelude.NonEmpty MessageGroup,+    -- | How often a message should be sent to the user. Minimum of 1 second,+    -- maximum of 5 minutes.+    frequencyInSeconds :: Prelude.Natural,+    -- | If Amazon Lex waits longer than this length of time for a response, it+    -- will stop sending messages.+    timeoutInSeconds :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StillWaitingResponseSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowInterrupt', 'stillWaitingResponseSpecification_allowInterrupt' - Indicates that the user can interrupt the response by speaking while the+-- message is being played.+--+-- 'messageGroups', 'stillWaitingResponseSpecification_messageGroups' - One or more message groups, each containing one or more messages, that+-- define the prompts that Amazon Lex sends to the user.+--+-- 'frequencyInSeconds', 'stillWaitingResponseSpecification_frequencyInSeconds' - How often a message should be sent to the user. Minimum of 1 second,+-- maximum of 5 minutes.+--+-- 'timeoutInSeconds', 'stillWaitingResponseSpecification_timeoutInSeconds' - If Amazon Lex waits longer than this length of time for a response, it+-- will stop sending messages.+newStillWaitingResponseSpecification ::+  -- | 'messageGroups'+  Prelude.NonEmpty MessageGroup ->+  -- | 'frequencyInSeconds'+  Prelude.Natural ->+  -- | 'timeoutInSeconds'+  Prelude.Natural ->+  StillWaitingResponseSpecification+newStillWaitingResponseSpecification+  pMessageGroups_+  pFrequencyInSeconds_+  pTimeoutInSeconds_ =+    StillWaitingResponseSpecification'+      { allowInterrupt =+          Prelude.Nothing,+        messageGroups =+          Lens.coerced Lens.# pMessageGroups_,+        frequencyInSeconds =+          pFrequencyInSeconds_,+        timeoutInSeconds = pTimeoutInSeconds_+      }++-- | Indicates that the user can interrupt the response by speaking while the+-- message is being played.+stillWaitingResponseSpecification_allowInterrupt :: Lens.Lens' StillWaitingResponseSpecification (Prelude.Maybe Prelude.Bool)+stillWaitingResponseSpecification_allowInterrupt = Lens.lens (\StillWaitingResponseSpecification' {allowInterrupt} -> allowInterrupt) (\s@StillWaitingResponseSpecification' {} a -> s {allowInterrupt = a} :: StillWaitingResponseSpecification)++-- | One or more message groups, each containing one or more messages, that+-- define the prompts that Amazon Lex sends to the user.+stillWaitingResponseSpecification_messageGroups :: Lens.Lens' StillWaitingResponseSpecification (Prelude.NonEmpty MessageGroup)+stillWaitingResponseSpecification_messageGroups = Lens.lens (\StillWaitingResponseSpecification' {messageGroups} -> messageGroups) (\s@StillWaitingResponseSpecification' {} a -> s {messageGroups = a} :: StillWaitingResponseSpecification) Prelude.. Lens.coerced++-- | How often a message should be sent to the user. Minimum of 1 second,+-- maximum of 5 minutes.+stillWaitingResponseSpecification_frequencyInSeconds :: Lens.Lens' StillWaitingResponseSpecification Prelude.Natural+stillWaitingResponseSpecification_frequencyInSeconds = Lens.lens (\StillWaitingResponseSpecification' {frequencyInSeconds} -> frequencyInSeconds) (\s@StillWaitingResponseSpecification' {} a -> s {frequencyInSeconds = a} :: StillWaitingResponseSpecification)++-- | If Amazon Lex waits longer than this length of time for a response, it+-- will stop sending messages.+stillWaitingResponseSpecification_timeoutInSeconds :: Lens.Lens' StillWaitingResponseSpecification Prelude.Natural+stillWaitingResponseSpecification_timeoutInSeconds = Lens.lens (\StillWaitingResponseSpecification' {timeoutInSeconds} -> timeoutInSeconds) (\s@StillWaitingResponseSpecification' {} a -> s {timeoutInSeconds = a} :: StillWaitingResponseSpecification)++instance+  Data.FromJSON+    StillWaitingResponseSpecification+  where+  parseJSON =+    Data.withObject+      "StillWaitingResponseSpecification"+      ( \x ->+          StillWaitingResponseSpecification'+            Prelude.<$> (x Data..:? "allowInterrupt")+            Prelude.<*> (x Data..: "messageGroups")+            Prelude.<*> (x Data..: "frequencyInSeconds")+            Prelude.<*> (x Data..: "timeoutInSeconds")+      )++instance+  Prelude.Hashable+    StillWaitingResponseSpecification+  where+  hashWithSalt+    _salt+    StillWaitingResponseSpecification' {..} =+      _salt+        `Prelude.hashWithSalt` allowInterrupt+        `Prelude.hashWithSalt` messageGroups+        `Prelude.hashWithSalt` frequencyInSeconds+        `Prelude.hashWithSalt` timeoutInSeconds++instance+  Prelude.NFData+    StillWaitingResponseSpecification+  where+  rnf StillWaitingResponseSpecification' {..} =+    Prelude.rnf allowInterrupt+      `Prelude.seq` Prelude.rnf messageGroups+      `Prelude.seq` Prelude.rnf frequencyInSeconds+      `Prelude.seq` Prelude.rnf timeoutInSeconds++instance+  Data.ToJSON+    StillWaitingResponseSpecification+  where+  toJSON StillWaitingResponseSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("allowInterrupt" Data..=)+              Prelude.<$> allowInterrupt,+            Prelude.Just ("messageGroups" Data..= messageGroups),+            Prelude.Just+              ("frequencyInSeconds" Data..= frequencyInSeconds),+            Prelude.Just+              ("timeoutInSeconds" Data..= timeoutInSeconds)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/SubSlotSetting.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SubSlotSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SubSlotSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.Specifications+import qualified Amazonka.Prelude as Prelude++-- | Specifications for the constituent sub slots and the expression for the+-- composite slot.+--+-- /See:/ 'newSubSlotSetting' smart constructor.+data SubSlotSetting = SubSlotSetting'+  { -- | The expression text for defining the constituent sub slots in the+    -- composite slot using logical AND and OR operators.+    expression :: Prelude.Maybe Prelude.Text,+    -- | Specifications for the constituent sub slots of a composite slot.+    slotSpecifications :: Prelude.Maybe (Prelude.HashMap Prelude.Text Specifications)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SubSlotSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'expression', 'subSlotSetting_expression' - The expression text for defining the constituent sub slots in the+-- composite slot using logical AND and OR operators.+--+-- 'slotSpecifications', 'subSlotSetting_slotSpecifications' - Specifications for the constituent sub slots of a composite slot.+newSubSlotSetting ::+  SubSlotSetting+newSubSlotSetting =+  SubSlotSetting'+    { expression = Prelude.Nothing,+      slotSpecifications = Prelude.Nothing+    }++-- | The expression text for defining the constituent sub slots in the+-- composite slot using logical AND and OR operators.+subSlotSetting_expression :: Lens.Lens' SubSlotSetting (Prelude.Maybe Prelude.Text)+subSlotSetting_expression = Lens.lens (\SubSlotSetting' {expression} -> expression) (\s@SubSlotSetting' {} a -> s {expression = a} :: SubSlotSetting)++-- | Specifications for the constituent sub slots of a composite slot.+subSlotSetting_slotSpecifications :: Lens.Lens' SubSlotSetting (Prelude.Maybe (Prelude.HashMap Prelude.Text Specifications))+subSlotSetting_slotSpecifications = Lens.lens (\SubSlotSetting' {slotSpecifications} -> slotSpecifications) (\s@SubSlotSetting' {} a -> s {slotSpecifications = a} :: SubSlotSetting) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON SubSlotSetting where+  parseJSON =+    Data.withObject+      "SubSlotSetting"+      ( \x ->+          SubSlotSetting'+            Prelude.<$> (x Data..:? "expression")+            Prelude.<*> ( x+                            Data..:? "slotSpecifications"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable SubSlotSetting where+  hashWithSalt _salt SubSlotSetting' {..} =+    _salt+      `Prelude.hashWithSalt` expression+      `Prelude.hashWithSalt` slotSpecifications++instance Prelude.NFData SubSlotSetting where+  rnf SubSlotSetting' {..} =+    Prelude.rnf expression+      `Prelude.seq` Prelude.rnf slotSpecifications++instance Data.ToJSON SubSlotSetting where+  toJSON SubSlotSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("expression" Data..=) Prelude.<$> expression,+            ("slotSpecifications" Data..=)+              Prelude.<$> slotSpecifications+          ]+      )
+ gen/Amazonka/LexV2Models/Types/SubSlotTypeComposition.hs view
@@ -0,0 +1,100 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SubSlotTypeComposition+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SubSlotTypeComposition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Subslot type composition.+--+-- /See:/ 'newSubSlotTypeComposition' smart constructor.+data SubSlotTypeComposition = SubSlotTypeComposition'+  { -- | Name of a constituent sub slot inside a composite slot.+    name :: Prelude.Text,+    -- | The unique identifier assigned to a slot type. This refers to either a+    -- built-in slot type or the unique slotTypeId of a custom slot type.+    slotTypeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SubSlotTypeComposition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'name', 'subSlotTypeComposition_name' - Name of a constituent sub slot inside a composite slot.+--+-- 'slotTypeId', 'subSlotTypeComposition_slotTypeId' - The unique identifier assigned to a slot type. This refers to either a+-- built-in slot type or the unique slotTypeId of a custom slot type.+newSubSlotTypeComposition ::+  -- | 'name'+  Prelude.Text ->+  -- | 'slotTypeId'+  Prelude.Text ->+  SubSlotTypeComposition+newSubSlotTypeComposition pName_ pSlotTypeId_ =+  SubSlotTypeComposition'+    { name = pName_,+      slotTypeId = pSlotTypeId_+    }++-- | Name of a constituent sub slot inside a composite slot.+subSlotTypeComposition_name :: Lens.Lens' SubSlotTypeComposition Prelude.Text+subSlotTypeComposition_name = Lens.lens (\SubSlotTypeComposition' {name} -> name) (\s@SubSlotTypeComposition' {} a -> s {name = a} :: SubSlotTypeComposition)++-- | The unique identifier assigned to a slot type. This refers to either a+-- built-in slot type or the unique slotTypeId of a custom slot type.+subSlotTypeComposition_slotTypeId :: Lens.Lens' SubSlotTypeComposition Prelude.Text+subSlotTypeComposition_slotTypeId = Lens.lens (\SubSlotTypeComposition' {slotTypeId} -> slotTypeId) (\s@SubSlotTypeComposition' {} a -> s {slotTypeId = a} :: SubSlotTypeComposition)++instance Data.FromJSON SubSlotTypeComposition where+  parseJSON =+    Data.withObject+      "SubSlotTypeComposition"+      ( \x ->+          SubSlotTypeComposition'+            Prelude.<$> (x Data..: "name")+            Prelude.<*> (x Data..: "slotTypeId")+      )++instance Prelude.Hashable SubSlotTypeComposition where+  hashWithSalt _salt SubSlotTypeComposition' {..} =+    _salt+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` slotTypeId++instance Prelude.NFData SubSlotTypeComposition where+  rnf SubSlotTypeComposition' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf slotTypeId++instance Data.ToJSON SubSlotTypeComposition where+  toJSON SubSlotTypeComposition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("name" Data..= name),+            Prelude.Just ("slotTypeId" Data..= slotTypeId)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/SubSlotValueElicitationSetting.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.SubSlotValueElicitationSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.SubSlotValueElicitationSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.PromptSpecification+import Amazonka.LexV2Models.Types.SampleUtterance+import Amazonka.LexV2Models.Types.SlotDefaultValueSpecification+import Amazonka.LexV2Models.Types.WaitAndContinueSpecification+import qualified Amazonka.Prelude as Prelude++-- | Subslot elicitation settings.+--+-- @DefaultValueSpecification@ is a list of default values for a+-- constituent sub slot in a composite slot. Default values are used when+-- Amazon Lex hasn\'t determined a value for a slot. You can specify+-- default values from context variables, session attributes, and defined+-- values. This is similar to @DefaultValueSpecification@ for slots.+--+-- @PromptSpecification@ is the prompt that Amazon Lex uses to elicit the+-- sub slot value from the user. This is similar to @PromptSpecification@+-- for slots.+--+-- /See:/ 'newSubSlotValueElicitationSetting' smart constructor.+data SubSlotValueElicitationSetting = SubSlotValueElicitationSetting'+  { defaultValueSpecification :: Prelude.Maybe SlotDefaultValueSpecification,+    -- | If you know a specific pattern that users might respond to an Amazon Lex+    -- request for a sub slot value, you can provide those utterances to+    -- improve accuracy. This is optional. In most cases Amazon Lex is capable+    -- of understanding user utterances. This is similar to @SampleUtterances@+    -- for slots.+    sampleUtterances :: Prelude.Maybe [SampleUtterance],+    waitAndContinueSpecification :: Prelude.Maybe WaitAndContinueSpecification,+    promptSpecification :: PromptSpecification+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SubSlotValueElicitationSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'defaultValueSpecification', 'subSlotValueElicitationSetting_defaultValueSpecification' - Undocumented member.+--+-- 'sampleUtterances', 'subSlotValueElicitationSetting_sampleUtterances' - If you know a specific pattern that users might respond to an Amazon Lex+-- request for a sub slot value, you can provide those utterances to+-- improve accuracy. This is optional. In most cases Amazon Lex is capable+-- of understanding user utterances. This is similar to @SampleUtterances@+-- for slots.+--+-- 'waitAndContinueSpecification', 'subSlotValueElicitationSetting_waitAndContinueSpecification' - Undocumented member.+--+-- 'promptSpecification', 'subSlotValueElicitationSetting_promptSpecification' - Undocumented member.+newSubSlotValueElicitationSetting ::+  -- | 'promptSpecification'+  PromptSpecification ->+  SubSlotValueElicitationSetting+newSubSlotValueElicitationSetting+  pPromptSpecification_ =+    SubSlotValueElicitationSetting'+      { defaultValueSpecification =+          Prelude.Nothing,+        sampleUtterances = Prelude.Nothing,+        waitAndContinueSpecification =+          Prelude.Nothing,+        promptSpecification = pPromptSpecification_+      }++-- | Undocumented member.+subSlotValueElicitationSetting_defaultValueSpecification :: Lens.Lens' SubSlotValueElicitationSetting (Prelude.Maybe SlotDefaultValueSpecification)+subSlotValueElicitationSetting_defaultValueSpecification = Lens.lens (\SubSlotValueElicitationSetting' {defaultValueSpecification} -> defaultValueSpecification) (\s@SubSlotValueElicitationSetting' {} a -> s {defaultValueSpecification = a} :: SubSlotValueElicitationSetting)++-- | If you know a specific pattern that users might respond to an Amazon Lex+-- request for a sub slot value, you can provide those utterances to+-- improve accuracy. This is optional. In most cases Amazon Lex is capable+-- of understanding user utterances. This is similar to @SampleUtterances@+-- for slots.+subSlotValueElicitationSetting_sampleUtterances :: Lens.Lens' SubSlotValueElicitationSetting (Prelude.Maybe [SampleUtterance])+subSlotValueElicitationSetting_sampleUtterances = Lens.lens (\SubSlotValueElicitationSetting' {sampleUtterances} -> sampleUtterances) (\s@SubSlotValueElicitationSetting' {} a -> s {sampleUtterances = a} :: SubSlotValueElicitationSetting) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+subSlotValueElicitationSetting_waitAndContinueSpecification :: Lens.Lens' SubSlotValueElicitationSetting (Prelude.Maybe WaitAndContinueSpecification)+subSlotValueElicitationSetting_waitAndContinueSpecification = Lens.lens (\SubSlotValueElicitationSetting' {waitAndContinueSpecification} -> waitAndContinueSpecification) (\s@SubSlotValueElicitationSetting' {} a -> s {waitAndContinueSpecification = a} :: SubSlotValueElicitationSetting)++-- | Undocumented member.+subSlotValueElicitationSetting_promptSpecification :: Lens.Lens' SubSlotValueElicitationSetting PromptSpecification+subSlotValueElicitationSetting_promptSpecification = Lens.lens (\SubSlotValueElicitationSetting' {promptSpecification} -> promptSpecification) (\s@SubSlotValueElicitationSetting' {} a -> s {promptSpecification = a} :: SubSlotValueElicitationSetting)++instance Data.FromJSON SubSlotValueElicitationSetting where+  parseJSON =+    Data.withObject+      "SubSlotValueElicitationSetting"+      ( \x ->+          SubSlotValueElicitationSetting'+            Prelude.<$> (x Data..:? "defaultValueSpecification")+            Prelude.<*> ( x+                            Data..:? "sampleUtterances"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "waitAndContinueSpecification")+            Prelude.<*> (x Data..: "promptSpecification")+      )++instance+  Prelude.Hashable+    SubSlotValueElicitationSetting+  where+  hashWithSalt+    _salt+    SubSlotValueElicitationSetting' {..} =+      _salt+        `Prelude.hashWithSalt` defaultValueSpecification+        `Prelude.hashWithSalt` sampleUtterances+        `Prelude.hashWithSalt` waitAndContinueSpecification+        `Prelude.hashWithSalt` promptSpecification++instance+  Prelude.NFData+    SubSlotValueElicitationSetting+  where+  rnf SubSlotValueElicitationSetting' {..} =+    Prelude.rnf defaultValueSpecification+      `Prelude.seq` Prelude.rnf sampleUtterances+      `Prelude.seq` Prelude.rnf waitAndContinueSpecification+      `Prelude.seq` Prelude.rnf promptSpecification++instance Data.ToJSON SubSlotValueElicitationSetting where+  toJSON SubSlotValueElicitationSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("defaultValueSpecification" Data..=)+              Prelude.<$> defaultValueSpecification,+            ("sampleUtterances" Data..=)+              Prelude.<$> sampleUtterances,+            ("waitAndContinueSpecification" Data..=)+              Prelude.<$> waitAndContinueSpecification,+            Prelude.Just+              ("promptSpecification" Data..= promptSpecification)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/TextInputSpecification.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.TextInputSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.TextInputSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specifies the text input specifications.+--+-- /See:/ 'newTextInputSpecification' smart constructor.+data TextInputSpecification = TextInputSpecification'+  { -- | Time for which a bot waits before re-prompting a customer for text+    -- input.+    startTimeoutMs :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TextInputSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'startTimeoutMs', 'textInputSpecification_startTimeoutMs' - Time for which a bot waits before re-prompting a customer for text+-- input.+newTextInputSpecification ::+  -- | 'startTimeoutMs'+  Prelude.Natural ->+  TextInputSpecification+newTextInputSpecification pStartTimeoutMs_ =+  TextInputSpecification'+    { startTimeoutMs =+        pStartTimeoutMs_+    }++-- | Time for which a bot waits before re-prompting a customer for text+-- input.+textInputSpecification_startTimeoutMs :: Lens.Lens' TextInputSpecification Prelude.Natural+textInputSpecification_startTimeoutMs = Lens.lens (\TextInputSpecification' {startTimeoutMs} -> startTimeoutMs) (\s@TextInputSpecification' {} a -> s {startTimeoutMs = a} :: TextInputSpecification)++instance Data.FromJSON TextInputSpecification where+  parseJSON =+    Data.withObject+      "TextInputSpecification"+      ( \x ->+          TextInputSpecification'+            Prelude.<$> (x Data..: "startTimeoutMs")+      )++instance Prelude.Hashable TextInputSpecification where+  hashWithSalt _salt TextInputSpecification' {..} =+    _salt `Prelude.hashWithSalt` startTimeoutMs++instance Prelude.NFData TextInputSpecification where+  rnf TextInputSpecification' {..} =+    Prelude.rnf startTimeoutMs++instance Data.ToJSON TextInputSpecification where+  toJSON TextInputSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("startTimeoutMs" Data..= startTimeoutMs)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/TextLogDestination.hs view
@@ -0,0 +1,82 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.TextLogDestination+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.TextLogDestination where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.CloudWatchLogGroupLogDestination+import qualified Amazonka.Prelude as Prelude++-- | Defines the Amazon CloudWatch Logs destination log group for+-- conversation text logs.+--+-- /See:/ 'newTextLogDestination' smart constructor.+data TextLogDestination = TextLogDestination'+  { -- | Defines the Amazon CloudWatch Logs log group where text and metadata+    -- logs are delivered.+    cloudWatch :: CloudWatchLogGroupLogDestination+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TextLogDestination' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cloudWatch', 'textLogDestination_cloudWatch' - Defines the Amazon CloudWatch Logs log group where text and metadata+-- logs are delivered.+newTextLogDestination ::+  -- | 'cloudWatch'+  CloudWatchLogGroupLogDestination ->+  TextLogDestination+newTextLogDestination pCloudWatch_ =+  TextLogDestination' {cloudWatch = pCloudWatch_}++-- | Defines the Amazon CloudWatch Logs log group where text and metadata+-- logs are delivered.+textLogDestination_cloudWatch :: Lens.Lens' TextLogDestination CloudWatchLogGroupLogDestination+textLogDestination_cloudWatch = Lens.lens (\TextLogDestination' {cloudWatch} -> cloudWatch) (\s@TextLogDestination' {} a -> s {cloudWatch = a} :: TextLogDestination)++instance Data.FromJSON TextLogDestination where+  parseJSON =+    Data.withObject+      "TextLogDestination"+      ( \x ->+          TextLogDestination'+            Prelude.<$> (x Data..: "cloudWatch")+      )++instance Prelude.Hashable TextLogDestination where+  hashWithSalt _salt TextLogDestination' {..} =+    _salt `Prelude.hashWithSalt` cloudWatch++instance Prelude.NFData TextLogDestination where+  rnf TextLogDestination' {..} = Prelude.rnf cloudWatch++instance Data.ToJSON TextLogDestination where+  toJSON TextLogDestination' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("cloudWatch" Data..= cloudWatch)]+      )
+ gen/Amazonka/LexV2Models/Types/TextLogSetting.hs view
@@ -0,0 +1,97 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.TextLogSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.TextLogSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.TextLogDestination+import qualified Amazonka.Prelude as Prelude++-- | Defines settings to enable text conversation logs.+--+-- /See:/ 'newTextLogSetting' smart constructor.+data TextLogSetting = TextLogSetting'+  { -- | Determines whether conversation logs should be stored for an alias.+    enabled :: Prelude.Bool,+    destination :: TextLogDestination+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TextLogSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'enabled', 'textLogSetting_enabled' - Determines whether conversation logs should be stored for an alias.+--+-- 'destination', 'textLogSetting_destination' - Undocumented member.+newTextLogSetting ::+  -- | 'enabled'+  Prelude.Bool ->+  -- | 'destination'+  TextLogDestination ->+  TextLogSetting+newTextLogSetting pEnabled_ pDestination_ =+  TextLogSetting'+    { enabled = pEnabled_,+      destination = pDestination_+    }++-- | Determines whether conversation logs should be stored for an alias.+textLogSetting_enabled :: Lens.Lens' TextLogSetting Prelude.Bool+textLogSetting_enabled = Lens.lens (\TextLogSetting' {enabled} -> enabled) (\s@TextLogSetting' {} a -> s {enabled = a} :: TextLogSetting)++-- | Undocumented member.+textLogSetting_destination :: Lens.Lens' TextLogSetting TextLogDestination+textLogSetting_destination = Lens.lens (\TextLogSetting' {destination} -> destination) (\s@TextLogSetting' {} a -> s {destination = a} :: TextLogSetting)++instance Data.FromJSON TextLogSetting where+  parseJSON =+    Data.withObject+      "TextLogSetting"+      ( \x ->+          TextLogSetting'+            Prelude.<$> (x Data..: "enabled")+            Prelude.<*> (x Data..: "destination")+      )++instance Prelude.Hashable TextLogSetting where+  hashWithSalt _salt TextLogSetting' {..} =+    _salt+      `Prelude.hashWithSalt` enabled+      `Prelude.hashWithSalt` destination++instance Prelude.NFData TextLogSetting where+  rnf TextLogSetting' {..} =+    Prelude.rnf enabled+      `Prelude.seq` Prelude.rnf destination++instance Data.ToJSON TextLogSetting where+  toJSON TextLogSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("enabled" Data..= enabled),+            Prelude.Just ("destination" Data..= destination)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/TimeDimension.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.TimeDimension+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.TimeDimension+  ( TimeDimension+      ( ..,+        TimeDimension_Days,+        TimeDimension_Hours,+        TimeDimension_Weeks+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TimeDimension = TimeDimension'+  { fromTimeDimension ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern TimeDimension_Days :: TimeDimension+pattern TimeDimension_Days = TimeDimension' "Days"++pattern TimeDimension_Hours :: TimeDimension+pattern TimeDimension_Hours = TimeDimension' "Hours"++pattern TimeDimension_Weeks :: TimeDimension+pattern TimeDimension_Weeks = TimeDimension' "Weeks"++{-# COMPLETE+  TimeDimension_Days,+  TimeDimension_Hours,+  TimeDimension_Weeks,+  TimeDimension'+  #-}
+ gen/Amazonka/LexV2Models/Types/TranscriptFilter.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.TranscriptFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.TranscriptFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.LexTranscriptFilter+import qualified Amazonka.Prelude as Prelude++-- | The object representing the filter that Amazon Lex will use to select+-- the appropriate transcript.+--+-- /See:/ 'newTranscriptFilter' smart constructor.+data TranscriptFilter = TranscriptFilter'+  { -- | The object representing the filter that Amazon Lex will use to select+    -- the appropriate transcript when the transcript format is the Amazon Lex+    -- format.+    lexTranscriptFilter :: Prelude.Maybe LexTranscriptFilter+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TranscriptFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'lexTranscriptFilter', 'transcriptFilter_lexTranscriptFilter' - The object representing the filter that Amazon Lex will use to select+-- the appropriate transcript when the transcript format is the Amazon Lex+-- format.+newTranscriptFilter ::+  TranscriptFilter+newTranscriptFilter =+  TranscriptFilter'+    { lexTranscriptFilter =+        Prelude.Nothing+    }++-- | The object representing the filter that Amazon Lex will use to select+-- the appropriate transcript when the transcript format is the Amazon Lex+-- format.+transcriptFilter_lexTranscriptFilter :: Lens.Lens' TranscriptFilter (Prelude.Maybe LexTranscriptFilter)+transcriptFilter_lexTranscriptFilter = Lens.lens (\TranscriptFilter' {lexTranscriptFilter} -> lexTranscriptFilter) (\s@TranscriptFilter' {} a -> s {lexTranscriptFilter = a} :: TranscriptFilter)++instance Data.FromJSON TranscriptFilter where+  parseJSON =+    Data.withObject+      "TranscriptFilter"+      ( \x ->+          TranscriptFilter'+            Prelude.<$> (x Data..:? "lexTranscriptFilter")+      )++instance Prelude.Hashable TranscriptFilter where+  hashWithSalt _salt TranscriptFilter' {..} =+    _salt `Prelude.hashWithSalt` lexTranscriptFilter++instance Prelude.NFData TranscriptFilter where+  rnf TranscriptFilter' {..} =+    Prelude.rnf lexTranscriptFilter++instance Data.ToJSON TranscriptFilter where+  toJSON TranscriptFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("lexTranscriptFilter" Data..=)+              Prelude.<$> lexTranscriptFilter+          ]+      )
+ gen/Amazonka/LexV2Models/Types/TranscriptFormat.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.TranscriptFormat+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.TranscriptFormat+  ( TranscriptFormat+      ( ..,+        TranscriptFormat_Lex+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TranscriptFormat = TranscriptFormat'+  { fromTranscriptFormat ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern TranscriptFormat_Lex :: TranscriptFormat+pattern TranscriptFormat_Lex = TranscriptFormat' "Lex"++{-# COMPLETE+  TranscriptFormat_Lex,+  TranscriptFormat'+  #-}
+ gen/Amazonka/LexV2Models/Types/TranscriptSourceSetting.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.TranscriptSourceSetting+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.TranscriptSourceSetting where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.S3BucketTranscriptSource+import qualified Amazonka.Prelude as Prelude++-- | Indicates the setting of the location where the transcript is stored.+--+-- /See:/ 'newTranscriptSourceSetting' smart constructor.+data TranscriptSourceSetting = TranscriptSourceSetting'+  { -- | Indicates the setting of the Amazon S3 bucket where the transcript is+    -- stored.+    s3BucketTranscriptSource :: Prelude.Maybe S3BucketTranscriptSource+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TranscriptSourceSetting' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3BucketTranscriptSource', 'transcriptSourceSetting_s3BucketTranscriptSource' - Indicates the setting of the Amazon S3 bucket where the transcript is+-- stored.+newTranscriptSourceSetting ::+  TranscriptSourceSetting+newTranscriptSourceSetting =+  TranscriptSourceSetting'+    { s3BucketTranscriptSource =+        Prelude.Nothing+    }++-- | Indicates the setting of the Amazon S3 bucket where the transcript is+-- stored.+transcriptSourceSetting_s3BucketTranscriptSource :: Lens.Lens' TranscriptSourceSetting (Prelude.Maybe S3BucketTranscriptSource)+transcriptSourceSetting_s3BucketTranscriptSource = Lens.lens (\TranscriptSourceSetting' {s3BucketTranscriptSource} -> s3BucketTranscriptSource) (\s@TranscriptSourceSetting' {} a -> s {s3BucketTranscriptSource = a} :: TranscriptSourceSetting)++instance Data.FromJSON TranscriptSourceSetting where+  parseJSON =+    Data.withObject+      "TranscriptSourceSetting"+      ( \x ->+          TranscriptSourceSetting'+            Prelude.<$> (x Data..:? "s3BucketTranscriptSource")+      )++instance Prelude.Hashable TranscriptSourceSetting where+  hashWithSalt _salt TranscriptSourceSetting' {..} =+    _salt+      `Prelude.hashWithSalt` s3BucketTranscriptSource++instance Prelude.NFData TranscriptSourceSetting where+  rnf TranscriptSourceSetting' {..} =+    Prelude.rnf s3BucketTranscriptSource++instance Data.ToJSON TranscriptSourceSetting where+  toJSON TranscriptSourceSetting' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("s3BucketTranscriptSource" Data..=)+              Prelude.<$> s3BucketTranscriptSource+          ]+      )
+ gen/Amazonka/LexV2Models/Types/UtteranceAggregationDuration.hs view
@@ -0,0 +1,92 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.UtteranceAggregationDuration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.UtteranceAggregationDuration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.RelativeAggregationDuration+import qualified Amazonka.Prelude as Prelude++-- | Provides parameters for setting the time window and duration for+-- aggregating utterance data.+--+-- /See:/ 'newUtteranceAggregationDuration' smart constructor.+data UtteranceAggregationDuration = UtteranceAggregationDuration'+  { -- | The desired time window for aggregating utterances.+    relativeAggregationDuration :: RelativeAggregationDuration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UtteranceAggregationDuration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'relativeAggregationDuration', 'utteranceAggregationDuration_relativeAggregationDuration' - The desired time window for aggregating utterances.+newUtteranceAggregationDuration ::+  -- | 'relativeAggregationDuration'+  RelativeAggregationDuration ->+  UtteranceAggregationDuration+newUtteranceAggregationDuration+  pRelativeAggregationDuration_ =+    UtteranceAggregationDuration'+      { relativeAggregationDuration =+          pRelativeAggregationDuration_+      }++-- | The desired time window for aggregating utterances.+utteranceAggregationDuration_relativeAggregationDuration :: Lens.Lens' UtteranceAggregationDuration RelativeAggregationDuration+utteranceAggregationDuration_relativeAggregationDuration = Lens.lens (\UtteranceAggregationDuration' {relativeAggregationDuration} -> relativeAggregationDuration) (\s@UtteranceAggregationDuration' {} a -> s {relativeAggregationDuration = a} :: UtteranceAggregationDuration)++instance Data.FromJSON UtteranceAggregationDuration where+  parseJSON =+    Data.withObject+      "UtteranceAggregationDuration"+      ( \x ->+          UtteranceAggregationDuration'+            Prelude.<$> (x Data..: "relativeAggregationDuration")+      )++instance+  Prelude.Hashable+    UtteranceAggregationDuration+  where+  hashWithSalt _salt UtteranceAggregationDuration' {..} =+    _salt+      `Prelude.hashWithSalt` relativeAggregationDuration++instance Prelude.NFData UtteranceAggregationDuration where+  rnf UtteranceAggregationDuration' {..} =+    Prelude.rnf relativeAggregationDuration++instance Data.ToJSON UtteranceAggregationDuration where+  toJSON UtteranceAggregationDuration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "relativeAggregationDuration"+                  Data..= relativeAggregationDuration+              )+          ]+      )
+ gen/Amazonka/LexV2Models/Types/VoiceEngine.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.VoiceEngine+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.VoiceEngine+  ( VoiceEngine+      ( ..,+        VoiceEngine_Neural,+        VoiceEngine_Standard+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype VoiceEngine = VoiceEngine'+  { fromVoiceEngine ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern VoiceEngine_Neural :: VoiceEngine+pattern VoiceEngine_Neural = VoiceEngine' "neural"++pattern VoiceEngine_Standard :: VoiceEngine+pattern VoiceEngine_Standard = VoiceEngine' "standard"++{-# COMPLETE+  VoiceEngine_Neural,+  VoiceEngine_Standard,+  VoiceEngine'+  #-}
+ gen/Amazonka/LexV2Models/Types/VoiceSettings.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.VoiceSettings+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.VoiceSettings where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.VoiceEngine+import qualified Amazonka.Prelude as Prelude++-- | Defines settings for using an Amazon Polly voice to communicate with a+-- user.+--+-- /See:/ 'newVoiceSettings' smart constructor.+data VoiceSettings = VoiceSettings'+  { -- | Indicates the type of Amazon Polly voice that Amazon Lex should use for+    -- voice interaction with the user. For more information, see the+    -- <https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-Engine engine parameter of the SynthesizeSpeech operation>+    -- in the /Amazon Polly developer guide/.+    --+    -- If you do not specify a value, the default is @standard@.+    engine :: Prelude.Maybe VoiceEngine,+    -- | The identifier of the Amazon Polly voice to use.+    voiceId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'VoiceSettings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'engine', 'voiceSettings_engine' - Indicates the type of Amazon Polly voice that Amazon Lex should use for+-- voice interaction with the user. For more information, see the+-- <https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-Engine engine parameter of the SynthesizeSpeech operation>+-- in the /Amazon Polly developer guide/.+--+-- If you do not specify a value, the default is @standard@.+--+-- 'voiceId', 'voiceSettings_voiceId' - The identifier of the Amazon Polly voice to use.+newVoiceSettings ::+  -- | 'voiceId'+  Prelude.Text ->+  VoiceSettings+newVoiceSettings pVoiceId_ =+  VoiceSettings'+    { engine = Prelude.Nothing,+      voiceId = pVoiceId_+    }++-- | Indicates the type of Amazon Polly voice that Amazon Lex should use for+-- voice interaction with the user. For more information, see the+-- <https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-Engine engine parameter of the SynthesizeSpeech operation>+-- in the /Amazon Polly developer guide/.+--+-- If you do not specify a value, the default is @standard@.+voiceSettings_engine :: Lens.Lens' VoiceSettings (Prelude.Maybe VoiceEngine)+voiceSettings_engine = Lens.lens (\VoiceSettings' {engine} -> engine) (\s@VoiceSettings' {} a -> s {engine = a} :: VoiceSettings)++-- | The identifier of the Amazon Polly voice to use.+voiceSettings_voiceId :: Lens.Lens' VoiceSettings Prelude.Text+voiceSettings_voiceId = Lens.lens (\VoiceSettings' {voiceId} -> voiceId) (\s@VoiceSettings' {} a -> s {voiceId = a} :: VoiceSettings)++instance Data.FromJSON VoiceSettings where+  parseJSON =+    Data.withObject+      "VoiceSettings"+      ( \x ->+          VoiceSettings'+            Prelude.<$> (x Data..:? "engine")+            Prelude.<*> (x Data..: "voiceId")+      )++instance Prelude.Hashable VoiceSettings where+  hashWithSalt _salt VoiceSettings' {..} =+    _salt+      `Prelude.hashWithSalt` engine+      `Prelude.hashWithSalt` voiceId++instance Prelude.NFData VoiceSettings where+  rnf VoiceSettings' {..} =+    Prelude.rnf engine+      `Prelude.seq` Prelude.rnf voiceId++instance Data.ToJSON VoiceSettings where+  toJSON VoiceSettings' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("engine" Data..=) Prelude.<$> engine,+            Prelude.Just ("voiceId" Data..= voiceId)+          ]+      )
+ gen/Amazonka/LexV2Models/Types/WaitAndContinueSpecification.hs view
@@ -0,0 +1,150 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Types.WaitAndContinueSpecification+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Types.WaitAndContinueSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types.ResponseSpecification+import Amazonka.LexV2Models.Types.StillWaitingResponseSpecification+import qualified Amazonka.Prelude as Prelude++-- | Specifies the prompts that Amazon Lex uses while a bot is waiting for+-- customer input.+--+-- /See:/ 'newWaitAndContinueSpecification' smart constructor.+data WaitAndContinueSpecification = WaitAndContinueSpecification'+  { -- | Specifies whether the bot will wait for a user to respond. When this+    -- field is false, wait and continue responses for a slot aren\'t used. If+    -- the @active@ field isn\'t specified, the default is true.+    active :: Prelude.Maybe Prelude.Bool,+    -- | A response that Amazon Lex sends periodically to the user to indicate+    -- that the bot is still waiting for input from the user.+    stillWaitingResponse :: Prelude.Maybe StillWaitingResponseSpecification,+    -- | The response that Amazon Lex sends to indicate that the bot is waiting+    -- for the conversation to continue.+    waitingResponse :: ResponseSpecification,+    -- | The response that Amazon Lex sends to indicate that the bot is ready to+    -- continue the conversation.+    continueResponse :: ResponseSpecification+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WaitAndContinueSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'active', 'waitAndContinueSpecification_active' - Specifies whether the bot will wait for a user to respond. When this+-- field is false, wait and continue responses for a slot aren\'t used. If+-- the @active@ field isn\'t specified, the default is true.+--+-- 'stillWaitingResponse', 'waitAndContinueSpecification_stillWaitingResponse' - A response that Amazon Lex sends periodically to the user to indicate+-- that the bot is still waiting for input from the user.+--+-- 'waitingResponse', 'waitAndContinueSpecification_waitingResponse' - The response that Amazon Lex sends to indicate that the bot is waiting+-- for the conversation to continue.+--+-- 'continueResponse', 'waitAndContinueSpecification_continueResponse' - The response that Amazon Lex sends to indicate that the bot is ready to+-- continue the conversation.+newWaitAndContinueSpecification ::+  -- | 'waitingResponse'+  ResponseSpecification ->+  -- | 'continueResponse'+  ResponseSpecification ->+  WaitAndContinueSpecification+newWaitAndContinueSpecification+  pWaitingResponse_+  pContinueResponse_ =+    WaitAndContinueSpecification'+      { active =+          Prelude.Nothing,+        stillWaitingResponse = Prelude.Nothing,+        waitingResponse = pWaitingResponse_,+        continueResponse = pContinueResponse_+      }++-- | Specifies whether the bot will wait for a user to respond. When this+-- field is false, wait and continue responses for a slot aren\'t used. If+-- the @active@ field isn\'t specified, the default is true.+waitAndContinueSpecification_active :: Lens.Lens' WaitAndContinueSpecification (Prelude.Maybe Prelude.Bool)+waitAndContinueSpecification_active = Lens.lens (\WaitAndContinueSpecification' {active} -> active) (\s@WaitAndContinueSpecification' {} a -> s {active = a} :: WaitAndContinueSpecification)++-- | A response that Amazon Lex sends periodically to the user to indicate+-- that the bot is still waiting for input from the user.+waitAndContinueSpecification_stillWaitingResponse :: Lens.Lens' WaitAndContinueSpecification (Prelude.Maybe StillWaitingResponseSpecification)+waitAndContinueSpecification_stillWaitingResponse = Lens.lens (\WaitAndContinueSpecification' {stillWaitingResponse} -> stillWaitingResponse) (\s@WaitAndContinueSpecification' {} a -> s {stillWaitingResponse = a} :: WaitAndContinueSpecification)++-- | The response that Amazon Lex sends to indicate that the bot is waiting+-- for the conversation to continue.+waitAndContinueSpecification_waitingResponse :: Lens.Lens' WaitAndContinueSpecification ResponseSpecification+waitAndContinueSpecification_waitingResponse = Lens.lens (\WaitAndContinueSpecification' {waitingResponse} -> waitingResponse) (\s@WaitAndContinueSpecification' {} a -> s {waitingResponse = a} :: WaitAndContinueSpecification)++-- | The response that Amazon Lex sends to indicate that the bot is ready to+-- continue the conversation.+waitAndContinueSpecification_continueResponse :: Lens.Lens' WaitAndContinueSpecification ResponseSpecification+waitAndContinueSpecification_continueResponse = Lens.lens (\WaitAndContinueSpecification' {continueResponse} -> continueResponse) (\s@WaitAndContinueSpecification' {} a -> s {continueResponse = a} :: WaitAndContinueSpecification)++instance Data.FromJSON WaitAndContinueSpecification where+  parseJSON =+    Data.withObject+      "WaitAndContinueSpecification"+      ( \x ->+          WaitAndContinueSpecification'+            Prelude.<$> (x Data..:? "active")+            Prelude.<*> (x Data..:? "stillWaitingResponse")+            Prelude.<*> (x Data..: "waitingResponse")+            Prelude.<*> (x Data..: "continueResponse")+      )++instance+  Prelude.Hashable+    WaitAndContinueSpecification+  where+  hashWithSalt _salt WaitAndContinueSpecification' {..} =+    _salt+      `Prelude.hashWithSalt` active+      `Prelude.hashWithSalt` stillWaitingResponse+      `Prelude.hashWithSalt` waitingResponse+      `Prelude.hashWithSalt` continueResponse++instance Prelude.NFData WaitAndContinueSpecification where+  rnf WaitAndContinueSpecification' {..} =+    Prelude.rnf active+      `Prelude.seq` Prelude.rnf stillWaitingResponse+      `Prelude.seq` Prelude.rnf waitingResponse+      `Prelude.seq` Prelude.rnf continueResponse++instance Data.ToJSON WaitAndContinueSpecification where+  toJSON WaitAndContinueSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("active" Data..=) Prelude.<$> active,+            ("stillWaitingResponse" Data..=)+              Prelude.<$> stillWaitingResponse,+            Prelude.Just+              ("waitingResponse" Data..= waitingResponse),+            Prelude.Just+              ("continueResponse" Data..= continueResponse)+          ]+      )
+ gen/Amazonka/LexV2Models/UntagResource.hs view
@@ -0,0 +1,164 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.UntagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes tags from a bot, bot alias, or bot channel.+module Amazonka.LexV2Models.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceARN,+    untagResource_tagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,++    -- * Response Lenses+    untagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | The Amazon Resource Name (ARN) of the resource to remove the tags from.+    resourceARN :: Prelude.Text,+    -- | A list of tag keys to remove from the resource. If a tag key does not+    -- exist on the resource, it is ignored.+    tagKeys :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceARN', 'untagResource_resourceARN' - The Amazon Resource Name (ARN) of the resource to remove the tags from.+--+-- 'tagKeys', 'untagResource_tagKeys' - A list of tag keys to remove from the resource. If a tag key does not+-- exist on the resource, it is ignored.+newUntagResource ::+  -- | 'resourceARN'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceARN_ =+  UntagResource'+    { resourceARN = pResourceARN_,+      tagKeys = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the resource to remove the tags from.+untagResource_resourceARN :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceARN = Lens.lens (\UntagResource' {resourceARN} -> resourceARN) (\s@UntagResource' {} a -> s {resourceARN = a} :: UntagResource)++-- | A list of tag keys to remove from the resource. If a tag key does not+-- exist on the resource, it is ignored.+untagResource_tagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_tagKeys = Lens.lens (\UntagResource' {tagKeys} -> tagKeys) (\s@UntagResource' {} a -> s {tagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.delete (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UntagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceARN+      `Prelude.hashWithSalt` tagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceARN+      `Prelude.seq` Prelude.rnf tagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToPath UntagResource where+  toPath UntagResource' {..} =+    Prelude.mconcat ["/tags/", Data.toBS resourceARN]++instance Data.ToQuery UntagResource where+  toQuery UntagResource' {..} =+    Prelude.mconcat+      ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+  UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+  rnf UntagResourceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/UpdateBot.hs view
@@ -0,0 +1,394 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.UpdateBot+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the configuration of an existing bot.+module Amazonka.LexV2Models.UpdateBot+  ( -- * Creating a Request+    UpdateBot (..),+    newUpdateBot,++    -- * Request Lenses+    updateBot_description,+    updateBot_botId,+    updateBot_botName,+    updateBot_roleArn,+    updateBot_dataPrivacy,+    updateBot_idleSessionTTLInSeconds,++    -- * Destructuring the Response+    UpdateBotResponse (..),+    newUpdateBotResponse,++    -- * Response Lenses+    updateBotResponse_botId,+    updateBotResponse_botName,+    updateBotResponse_botStatus,+    updateBotResponse_creationDateTime,+    updateBotResponse_dataPrivacy,+    updateBotResponse_description,+    updateBotResponse_idleSessionTTLInSeconds,+    updateBotResponse_lastUpdatedDateTime,+    updateBotResponse_roleArn,+    updateBotResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateBot' smart constructor.+data UpdateBot = UpdateBot'+  { -- | A description of the bot.+    description :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the bot to update. This identifier is returned+    -- by the+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/API_CreateBot.html CreateBot>+    -- operation.+    botId :: Prelude.Text,+    -- | The new name of the bot. The name must be unique in the account that+    -- creates the bot.+    botName :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an IAM role that has permissions to+    -- access the bot.+    roleArn :: Prelude.Text,+    -- | Provides information on additional privacy protections Amazon Lex should+    -- use with the bot\'s data.+    dataPrivacy :: DataPrivacy,+    -- | The time, in seconds, that Amazon Lex should keep information about a+    -- user\'s conversation with the bot.+    --+    -- A user interaction remains active for the amount of time specified. If+    -- no conversation occurs during this time, the session expires and Amazon+    -- Lex deletes any data provided before the timeout.+    --+    -- You can specify between 60 (1 minute) and 86,400 (24 hours) seconds.+    idleSessionTTLInSeconds :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateBot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updateBot_description' - A description of the bot.+--+-- 'botId', 'updateBot_botId' - The unique identifier of the bot to update. This identifier is returned+-- by the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_CreateBot.html CreateBot>+-- operation.+--+-- 'botName', 'updateBot_botName' - The new name of the bot. The name must be unique in the account that+-- creates the bot.+--+-- 'roleArn', 'updateBot_roleArn' - The Amazon Resource Name (ARN) of an IAM role that has permissions to+-- access the bot.+--+-- 'dataPrivacy', 'updateBot_dataPrivacy' - Provides information on additional privacy protections Amazon Lex should+-- use with the bot\'s data.+--+-- 'idleSessionTTLInSeconds', 'updateBot_idleSessionTTLInSeconds' - The time, in seconds, that Amazon Lex should keep information about a+-- user\'s conversation with the bot.+--+-- A user interaction remains active for the amount of time specified. If+-- no conversation occurs during this time, the session expires and Amazon+-- Lex deletes any data provided before the timeout.+--+-- You can specify between 60 (1 minute) and 86,400 (24 hours) seconds.+newUpdateBot ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botName'+  Prelude.Text ->+  -- | 'roleArn'+  Prelude.Text ->+  -- | 'dataPrivacy'+  DataPrivacy ->+  -- | 'idleSessionTTLInSeconds'+  Prelude.Natural ->+  UpdateBot+newUpdateBot+  pBotId_+  pBotName_+  pRoleArn_+  pDataPrivacy_+  pIdleSessionTTLInSeconds_ =+    UpdateBot'+      { description = Prelude.Nothing,+        botId = pBotId_,+        botName = pBotName_,+        roleArn = pRoleArn_,+        dataPrivacy = pDataPrivacy_,+        idleSessionTTLInSeconds = pIdleSessionTTLInSeconds_+      }++-- | A description of the bot.+updateBot_description :: Lens.Lens' UpdateBot (Prelude.Maybe Prelude.Text)+updateBot_description = Lens.lens (\UpdateBot' {description} -> description) (\s@UpdateBot' {} a -> s {description = a} :: UpdateBot)++-- | The unique identifier of the bot to update. This identifier is returned+-- by the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_CreateBot.html CreateBot>+-- operation.+updateBot_botId :: Lens.Lens' UpdateBot Prelude.Text+updateBot_botId = Lens.lens (\UpdateBot' {botId} -> botId) (\s@UpdateBot' {} a -> s {botId = a} :: UpdateBot)++-- | The new name of the bot. The name must be unique in the account that+-- creates the bot.+updateBot_botName :: Lens.Lens' UpdateBot Prelude.Text+updateBot_botName = Lens.lens (\UpdateBot' {botName} -> botName) (\s@UpdateBot' {} a -> s {botName = a} :: UpdateBot)++-- | The Amazon Resource Name (ARN) of an IAM role that has permissions to+-- access the bot.+updateBot_roleArn :: Lens.Lens' UpdateBot Prelude.Text+updateBot_roleArn = Lens.lens (\UpdateBot' {roleArn} -> roleArn) (\s@UpdateBot' {} a -> s {roleArn = a} :: UpdateBot)++-- | Provides information on additional privacy protections Amazon Lex should+-- use with the bot\'s data.+updateBot_dataPrivacy :: Lens.Lens' UpdateBot DataPrivacy+updateBot_dataPrivacy = Lens.lens (\UpdateBot' {dataPrivacy} -> dataPrivacy) (\s@UpdateBot' {} a -> s {dataPrivacy = a} :: UpdateBot)++-- | The time, in seconds, that Amazon Lex should keep information about a+-- user\'s conversation with the bot.+--+-- A user interaction remains active for the amount of time specified. If+-- no conversation occurs during this time, the session expires and Amazon+-- Lex deletes any data provided before the timeout.+--+-- You can specify between 60 (1 minute) and 86,400 (24 hours) seconds.+updateBot_idleSessionTTLInSeconds :: Lens.Lens' UpdateBot Prelude.Natural+updateBot_idleSessionTTLInSeconds = Lens.lens (\UpdateBot' {idleSessionTTLInSeconds} -> idleSessionTTLInSeconds) (\s@UpdateBot' {} a -> s {idleSessionTTLInSeconds = a} :: UpdateBot)++instance Core.AWSRequest UpdateBot where+  type AWSResponse UpdateBot = UpdateBotResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateBotResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botName")+            Prelude.<*> (x Data..?> "botStatus")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "dataPrivacy")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "idleSessionTTLInSeconds")+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "roleArn")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateBot where+  hashWithSalt _salt UpdateBot' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botName+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` dataPrivacy+      `Prelude.hashWithSalt` idleSessionTTLInSeconds++instance Prelude.NFData UpdateBot where+  rnf UpdateBot' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botName+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf dataPrivacy+      `Prelude.seq` Prelude.rnf idleSessionTTLInSeconds++instance Data.ToHeaders UpdateBot where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateBot where+  toJSON UpdateBot' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            Prelude.Just ("botName" Data..= botName),+            Prelude.Just ("roleArn" Data..= roleArn),+            Prelude.Just ("dataPrivacy" Data..= dataPrivacy),+            Prelude.Just+              ( "idleSessionTTLInSeconds"+                  Data..= idleSessionTTLInSeconds+              )+          ]+      )++instance Data.ToPath UpdateBot where+  toPath UpdateBot' {..} =+    Prelude.mconcat ["/bots/", Data.toBS botId, "/"]++instance Data.ToQuery UpdateBot where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateBotResponse' smart constructor.+data UpdateBotResponse = UpdateBotResponse'+  { -- | The unique identifier of the bot that was updated.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The name of the bot after the update.+    botName :: Prelude.Maybe Prelude.Text,+    -- | Shows the current status of the bot. The bot is first in the @Creating@+    -- status. Once the bot is read for use, it changes to the @Available@+    -- status. After the bot is created, you can use the @DRAFT@ version of the+    -- bot.+    botStatus :: Prelude.Maybe BotStatus,+    -- | A timestamp of the date and time that the bot was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The data privacy settings for the bot after the update.+    dataPrivacy :: Prelude.Maybe DataPrivacy,+    -- | The description of the bot after the update.+    description :: Prelude.Maybe Prelude.Text,+    -- | The session timeout, in seconds, for the bot after the update.+    idleSessionTTLInSeconds :: Prelude.Maybe Prelude.Natural,+    -- | A timestamp of the date and time that the bot was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The Amazon Resource Name (ARN) of the IAM role used by the bot after the+    -- update.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateBotResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'updateBotResponse_botId' - The unique identifier of the bot that was updated.+--+-- 'botName', 'updateBotResponse_botName' - The name of the bot after the update.+--+-- 'botStatus', 'updateBotResponse_botStatus' - Shows the current status of the bot. The bot is first in the @Creating@+-- status. Once the bot is read for use, it changes to the @Available@+-- status. After the bot is created, you can use the @DRAFT@ version of the+-- bot.+--+-- 'creationDateTime', 'updateBotResponse_creationDateTime' - A timestamp of the date and time that the bot was created.+--+-- 'dataPrivacy', 'updateBotResponse_dataPrivacy' - The data privacy settings for the bot after the update.+--+-- 'description', 'updateBotResponse_description' - The description of the bot after the update.+--+-- 'idleSessionTTLInSeconds', 'updateBotResponse_idleSessionTTLInSeconds' - The session timeout, in seconds, for the bot after the update.+--+-- 'lastUpdatedDateTime', 'updateBotResponse_lastUpdatedDateTime' - A timestamp of the date and time that the bot was last updated.+--+-- 'roleArn', 'updateBotResponse_roleArn' - The Amazon Resource Name (ARN) of the IAM role used by the bot after the+-- update.+--+-- 'httpStatus', 'updateBotResponse_httpStatus' - The response's http status code.+newUpdateBotResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateBotResponse+newUpdateBotResponse pHttpStatus_ =+  UpdateBotResponse'+    { botId = Prelude.Nothing,+      botName = Prelude.Nothing,+      botStatus = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      dataPrivacy = Prelude.Nothing,+      description = Prelude.Nothing,+      idleSessionTTLInSeconds = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the bot that was updated.+updateBotResponse_botId :: Lens.Lens' UpdateBotResponse (Prelude.Maybe Prelude.Text)+updateBotResponse_botId = Lens.lens (\UpdateBotResponse' {botId} -> botId) (\s@UpdateBotResponse' {} a -> s {botId = a} :: UpdateBotResponse)++-- | The name of the bot after the update.+updateBotResponse_botName :: Lens.Lens' UpdateBotResponse (Prelude.Maybe Prelude.Text)+updateBotResponse_botName = Lens.lens (\UpdateBotResponse' {botName} -> botName) (\s@UpdateBotResponse' {} a -> s {botName = a} :: UpdateBotResponse)++-- | Shows the current status of the bot. The bot is first in the @Creating@+-- status. Once the bot is read for use, it changes to the @Available@+-- status. After the bot is created, you can use the @DRAFT@ version of the+-- bot.+updateBotResponse_botStatus :: Lens.Lens' UpdateBotResponse (Prelude.Maybe BotStatus)+updateBotResponse_botStatus = Lens.lens (\UpdateBotResponse' {botStatus} -> botStatus) (\s@UpdateBotResponse' {} a -> s {botStatus = a} :: UpdateBotResponse)++-- | A timestamp of the date and time that the bot was created.+updateBotResponse_creationDateTime :: Lens.Lens' UpdateBotResponse (Prelude.Maybe Prelude.UTCTime)+updateBotResponse_creationDateTime = Lens.lens (\UpdateBotResponse' {creationDateTime} -> creationDateTime) (\s@UpdateBotResponse' {} a -> s {creationDateTime = a} :: UpdateBotResponse) Prelude.. Lens.mapping Data._Time++-- | The data privacy settings for the bot after the update.+updateBotResponse_dataPrivacy :: Lens.Lens' UpdateBotResponse (Prelude.Maybe DataPrivacy)+updateBotResponse_dataPrivacy = Lens.lens (\UpdateBotResponse' {dataPrivacy} -> dataPrivacy) (\s@UpdateBotResponse' {} a -> s {dataPrivacy = a} :: UpdateBotResponse)++-- | The description of the bot after the update.+updateBotResponse_description :: Lens.Lens' UpdateBotResponse (Prelude.Maybe Prelude.Text)+updateBotResponse_description = Lens.lens (\UpdateBotResponse' {description} -> description) (\s@UpdateBotResponse' {} a -> s {description = a} :: UpdateBotResponse)++-- | The session timeout, in seconds, for the bot after the update.+updateBotResponse_idleSessionTTLInSeconds :: Lens.Lens' UpdateBotResponse (Prelude.Maybe Prelude.Natural)+updateBotResponse_idleSessionTTLInSeconds = Lens.lens (\UpdateBotResponse' {idleSessionTTLInSeconds} -> idleSessionTTLInSeconds) (\s@UpdateBotResponse' {} a -> s {idleSessionTTLInSeconds = a} :: UpdateBotResponse)++-- | A timestamp of the date and time that the bot was last updated.+updateBotResponse_lastUpdatedDateTime :: Lens.Lens' UpdateBotResponse (Prelude.Maybe Prelude.UTCTime)+updateBotResponse_lastUpdatedDateTime = Lens.lens (\UpdateBotResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@UpdateBotResponse' {} a -> s {lastUpdatedDateTime = a} :: UpdateBotResponse) Prelude.. Lens.mapping Data._Time++-- | The Amazon Resource Name (ARN) of the IAM role used by the bot after the+-- update.+updateBotResponse_roleArn :: Lens.Lens' UpdateBotResponse (Prelude.Maybe Prelude.Text)+updateBotResponse_roleArn = Lens.lens (\UpdateBotResponse' {roleArn} -> roleArn) (\s@UpdateBotResponse' {} a -> s {roleArn = a} :: UpdateBotResponse)++-- | The response's http status code.+updateBotResponse_httpStatus :: Lens.Lens' UpdateBotResponse Prelude.Int+updateBotResponse_httpStatus = Lens.lens (\UpdateBotResponse' {httpStatus} -> httpStatus) (\s@UpdateBotResponse' {} a -> s {httpStatus = a} :: UpdateBotResponse)++instance Prelude.NFData UpdateBotResponse where+  rnf UpdateBotResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botName+      `Prelude.seq` Prelude.rnf botStatus+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf dataPrivacy+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf idleSessionTTLInSeconds+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/UpdateBotAlias.hs view
@@ -0,0 +1,403 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.UpdateBotAlias+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the configuration of an existing bot alias.+module Amazonka.LexV2Models.UpdateBotAlias+  ( -- * Creating a Request+    UpdateBotAlias (..),+    newUpdateBotAlias,++    -- * Request Lenses+    updateBotAlias_botAliasLocaleSettings,+    updateBotAlias_botVersion,+    updateBotAlias_conversationLogSettings,+    updateBotAlias_description,+    updateBotAlias_sentimentAnalysisSettings,+    updateBotAlias_botAliasId,+    updateBotAlias_botAliasName,+    updateBotAlias_botId,++    -- * Destructuring the Response+    UpdateBotAliasResponse (..),+    newUpdateBotAliasResponse,++    -- * Response Lenses+    updateBotAliasResponse_botAliasId,+    updateBotAliasResponse_botAliasLocaleSettings,+    updateBotAliasResponse_botAliasName,+    updateBotAliasResponse_botAliasStatus,+    updateBotAliasResponse_botId,+    updateBotAliasResponse_botVersion,+    updateBotAliasResponse_conversationLogSettings,+    updateBotAliasResponse_creationDateTime,+    updateBotAliasResponse_description,+    updateBotAliasResponse_lastUpdatedDateTime,+    updateBotAliasResponse_sentimentAnalysisSettings,+    updateBotAliasResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateBotAlias' smart constructor.+data UpdateBotAlias = UpdateBotAlias'+  { -- | The new Lambda functions to use in each locale for the bot alias.+    botAliasLocaleSettings :: Prelude.Maybe (Prelude.HashMap Prelude.Text BotAliasLocaleSettings),+    -- | The new bot version to assign to the bot alias.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The new settings for storing conversation logs in Amazon CloudWatch Logs+    -- and Amazon S3 buckets.+    conversationLogSettings :: Prelude.Maybe ConversationLogSettings,+    -- | The new description to assign to the bot alias.+    description :: Prelude.Maybe Prelude.Text,+    sentimentAnalysisSettings :: Prelude.Maybe SentimentAnalysisSettings,+    -- | The unique identifier of the bot alias.+    botAliasId :: Prelude.Text,+    -- | The new name to assign to the bot alias.+    botAliasName :: Prelude.Text,+    -- | The identifier of the bot with the updated alias.+    botId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateBotAlias' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botAliasLocaleSettings', 'updateBotAlias_botAliasLocaleSettings' - The new Lambda functions to use in each locale for the bot alias.+--+-- 'botVersion', 'updateBotAlias_botVersion' - The new bot version to assign to the bot alias.+--+-- 'conversationLogSettings', 'updateBotAlias_conversationLogSettings' - The new settings for storing conversation logs in Amazon CloudWatch Logs+-- and Amazon S3 buckets.+--+-- 'description', 'updateBotAlias_description' - The new description to assign to the bot alias.+--+-- 'sentimentAnalysisSettings', 'updateBotAlias_sentimentAnalysisSettings' - Undocumented member.+--+-- 'botAliasId', 'updateBotAlias_botAliasId' - The unique identifier of the bot alias.+--+-- 'botAliasName', 'updateBotAlias_botAliasName' - The new name to assign to the bot alias.+--+-- 'botId', 'updateBotAlias_botId' - The identifier of the bot with the updated alias.+newUpdateBotAlias ::+  -- | 'botAliasId'+  Prelude.Text ->+  -- | 'botAliasName'+  Prelude.Text ->+  -- | 'botId'+  Prelude.Text ->+  UpdateBotAlias+newUpdateBotAlias pBotAliasId_ pBotAliasName_ pBotId_ =+  UpdateBotAlias'+    { botAliasLocaleSettings =+        Prelude.Nothing,+      botVersion = Prelude.Nothing,+      conversationLogSettings = Prelude.Nothing,+      description = Prelude.Nothing,+      sentimentAnalysisSettings = Prelude.Nothing,+      botAliasId = pBotAliasId_,+      botAliasName = pBotAliasName_,+      botId = pBotId_+    }++-- | The new Lambda functions to use in each locale for the bot alias.+updateBotAlias_botAliasLocaleSettings :: Lens.Lens' UpdateBotAlias (Prelude.Maybe (Prelude.HashMap Prelude.Text BotAliasLocaleSettings))+updateBotAlias_botAliasLocaleSettings = Lens.lens (\UpdateBotAlias' {botAliasLocaleSettings} -> botAliasLocaleSettings) (\s@UpdateBotAlias' {} a -> s {botAliasLocaleSettings = a} :: UpdateBotAlias) Prelude.. Lens.mapping Lens.coerced++-- | The new bot version to assign to the bot alias.+updateBotAlias_botVersion :: Lens.Lens' UpdateBotAlias (Prelude.Maybe Prelude.Text)+updateBotAlias_botVersion = Lens.lens (\UpdateBotAlias' {botVersion} -> botVersion) (\s@UpdateBotAlias' {} a -> s {botVersion = a} :: UpdateBotAlias)++-- | The new settings for storing conversation logs in Amazon CloudWatch Logs+-- and Amazon S3 buckets.+updateBotAlias_conversationLogSettings :: Lens.Lens' UpdateBotAlias (Prelude.Maybe ConversationLogSettings)+updateBotAlias_conversationLogSettings = Lens.lens (\UpdateBotAlias' {conversationLogSettings} -> conversationLogSettings) (\s@UpdateBotAlias' {} a -> s {conversationLogSettings = a} :: UpdateBotAlias)++-- | The new description to assign to the bot alias.+updateBotAlias_description :: Lens.Lens' UpdateBotAlias (Prelude.Maybe Prelude.Text)+updateBotAlias_description = Lens.lens (\UpdateBotAlias' {description} -> description) (\s@UpdateBotAlias' {} a -> s {description = a} :: UpdateBotAlias)++-- | Undocumented member.+updateBotAlias_sentimentAnalysisSettings :: Lens.Lens' UpdateBotAlias (Prelude.Maybe SentimentAnalysisSettings)+updateBotAlias_sentimentAnalysisSettings = Lens.lens (\UpdateBotAlias' {sentimentAnalysisSettings} -> sentimentAnalysisSettings) (\s@UpdateBotAlias' {} a -> s {sentimentAnalysisSettings = a} :: UpdateBotAlias)++-- | The unique identifier of the bot alias.+updateBotAlias_botAliasId :: Lens.Lens' UpdateBotAlias Prelude.Text+updateBotAlias_botAliasId = Lens.lens (\UpdateBotAlias' {botAliasId} -> botAliasId) (\s@UpdateBotAlias' {} a -> s {botAliasId = a} :: UpdateBotAlias)++-- | The new name to assign to the bot alias.+updateBotAlias_botAliasName :: Lens.Lens' UpdateBotAlias Prelude.Text+updateBotAlias_botAliasName = Lens.lens (\UpdateBotAlias' {botAliasName} -> botAliasName) (\s@UpdateBotAlias' {} a -> s {botAliasName = a} :: UpdateBotAlias)++-- | The identifier of the bot with the updated alias.+updateBotAlias_botId :: Lens.Lens' UpdateBotAlias Prelude.Text+updateBotAlias_botId = Lens.lens (\UpdateBotAlias' {botId} -> botId) (\s@UpdateBotAlias' {} a -> s {botId = a} :: UpdateBotAlias)++instance Core.AWSRequest UpdateBotAlias where+  type+    AWSResponse UpdateBotAlias =+      UpdateBotAliasResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateBotAliasResponse'+            Prelude.<$> (x Data..?> "botAliasId")+            Prelude.<*> ( x+                            Data..?> "botAliasLocaleSettings"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "botAliasName")+            Prelude.<*> (x Data..?> "botAliasStatus")+            Prelude.<*> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "conversationLogSettings")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "sentimentAnalysisSettings")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateBotAlias where+  hashWithSalt _salt UpdateBotAlias' {..} =+    _salt+      `Prelude.hashWithSalt` botAliasLocaleSettings+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` conversationLogSettings+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` sentimentAnalysisSettings+      `Prelude.hashWithSalt` botAliasId+      `Prelude.hashWithSalt` botAliasName+      `Prelude.hashWithSalt` botId++instance Prelude.NFData UpdateBotAlias where+  rnf UpdateBotAlias' {..} =+    Prelude.rnf botAliasLocaleSettings+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf conversationLogSettings+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf sentimentAnalysisSettings+      `Prelude.seq` Prelude.rnf botAliasId+      `Prelude.seq` Prelude.rnf botAliasName+      `Prelude.seq` Prelude.rnf botId++instance Data.ToHeaders UpdateBotAlias where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateBotAlias where+  toJSON UpdateBotAlias' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("botAliasLocaleSettings" Data..=)+              Prelude.<$> botAliasLocaleSettings,+            ("botVersion" Data..=) Prelude.<$> botVersion,+            ("conversationLogSettings" Data..=)+              Prelude.<$> conversationLogSettings,+            ("description" Data..=) Prelude.<$> description,+            ("sentimentAnalysisSettings" Data..=)+              Prelude.<$> sentimentAnalysisSettings,+            Prelude.Just ("botAliasName" Data..= botAliasName)+          ]+      )++instance Data.ToPath UpdateBotAlias where+  toPath UpdateBotAlias' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botaliases/",+        Data.toBS botAliasId,+        "/"+      ]++instance Data.ToQuery UpdateBotAlias where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateBotAliasResponse' smart constructor.+data UpdateBotAliasResponse = UpdateBotAliasResponse'+  { -- | The identifier of the updated bot alias.+    botAliasId :: Prelude.Maybe Prelude.Text,+    -- | The updated Lambda functions to use in each locale for the bot alias.+    botAliasLocaleSettings :: Prelude.Maybe (Prelude.HashMap Prelude.Text BotAliasLocaleSettings),+    -- | The updated name of the bot alias.+    botAliasName :: Prelude.Maybe Prelude.Text,+    -- | The current status of the bot alias. When the status is @Available@ the+    -- alias is ready for use.+    botAliasStatus :: Prelude.Maybe BotAliasStatus,+    -- | The identifier of the bot with the updated alias.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The updated version of the bot that the alias points to.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The updated settings for storing conversation logs in Amazon CloudWatch+    -- Logs and Amazon S3 buckets.+    conversationLogSettings :: Prelude.Maybe ConversationLogSettings,+    -- | A timestamp of the date and time that the bot was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The updated description of the bot alias.+    description :: Prelude.Maybe Prelude.Text,+    -- | A timestamp of the date and time that the bot was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    sentimentAnalysisSettings :: Prelude.Maybe SentimentAnalysisSettings,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateBotAliasResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botAliasId', 'updateBotAliasResponse_botAliasId' - The identifier of the updated bot alias.+--+-- 'botAliasLocaleSettings', 'updateBotAliasResponse_botAliasLocaleSettings' - The updated Lambda functions to use in each locale for the bot alias.+--+-- 'botAliasName', 'updateBotAliasResponse_botAliasName' - The updated name of the bot alias.+--+-- 'botAliasStatus', 'updateBotAliasResponse_botAliasStatus' - The current status of the bot alias. When the status is @Available@ the+-- alias is ready for use.+--+-- 'botId', 'updateBotAliasResponse_botId' - The identifier of the bot with the updated alias.+--+-- 'botVersion', 'updateBotAliasResponse_botVersion' - The updated version of the bot that the alias points to.+--+-- 'conversationLogSettings', 'updateBotAliasResponse_conversationLogSettings' - The updated settings for storing conversation logs in Amazon CloudWatch+-- Logs and Amazon S3 buckets.+--+-- 'creationDateTime', 'updateBotAliasResponse_creationDateTime' - A timestamp of the date and time that the bot was created.+--+-- 'description', 'updateBotAliasResponse_description' - The updated description of the bot alias.+--+-- 'lastUpdatedDateTime', 'updateBotAliasResponse_lastUpdatedDateTime' - A timestamp of the date and time that the bot was last updated.+--+-- 'sentimentAnalysisSettings', 'updateBotAliasResponse_sentimentAnalysisSettings' - Undocumented member.+--+-- 'httpStatus', 'updateBotAliasResponse_httpStatus' - The response's http status code.+newUpdateBotAliasResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateBotAliasResponse+newUpdateBotAliasResponse pHttpStatus_ =+  UpdateBotAliasResponse'+    { botAliasId =+        Prelude.Nothing,+      botAliasLocaleSettings = Prelude.Nothing,+      botAliasName = Prelude.Nothing,+      botAliasStatus = Prelude.Nothing,+      botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      conversationLogSettings = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      sentimentAnalysisSettings = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the updated bot alias.+updateBotAliasResponse_botAliasId :: Lens.Lens' UpdateBotAliasResponse (Prelude.Maybe Prelude.Text)+updateBotAliasResponse_botAliasId = Lens.lens (\UpdateBotAliasResponse' {botAliasId} -> botAliasId) (\s@UpdateBotAliasResponse' {} a -> s {botAliasId = a} :: UpdateBotAliasResponse)++-- | The updated Lambda functions to use in each locale for the bot alias.+updateBotAliasResponse_botAliasLocaleSettings :: Lens.Lens' UpdateBotAliasResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text BotAliasLocaleSettings))+updateBotAliasResponse_botAliasLocaleSettings = Lens.lens (\UpdateBotAliasResponse' {botAliasLocaleSettings} -> botAliasLocaleSettings) (\s@UpdateBotAliasResponse' {} a -> s {botAliasLocaleSettings = a} :: UpdateBotAliasResponse) Prelude.. Lens.mapping Lens.coerced++-- | The updated name of the bot alias.+updateBotAliasResponse_botAliasName :: Lens.Lens' UpdateBotAliasResponse (Prelude.Maybe Prelude.Text)+updateBotAliasResponse_botAliasName = Lens.lens (\UpdateBotAliasResponse' {botAliasName} -> botAliasName) (\s@UpdateBotAliasResponse' {} a -> s {botAliasName = a} :: UpdateBotAliasResponse)++-- | The current status of the bot alias. When the status is @Available@ the+-- alias is ready for use.+updateBotAliasResponse_botAliasStatus :: Lens.Lens' UpdateBotAliasResponse (Prelude.Maybe BotAliasStatus)+updateBotAliasResponse_botAliasStatus = Lens.lens (\UpdateBotAliasResponse' {botAliasStatus} -> botAliasStatus) (\s@UpdateBotAliasResponse' {} a -> s {botAliasStatus = a} :: UpdateBotAliasResponse)++-- | The identifier of the bot with the updated alias.+updateBotAliasResponse_botId :: Lens.Lens' UpdateBotAliasResponse (Prelude.Maybe Prelude.Text)+updateBotAliasResponse_botId = Lens.lens (\UpdateBotAliasResponse' {botId} -> botId) (\s@UpdateBotAliasResponse' {} a -> s {botId = a} :: UpdateBotAliasResponse)++-- | The updated version of the bot that the alias points to.+updateBotAliasResponse_botVersion :: Lens.Lens' UpdateBotAliasResponse (Prelude.Maybe Prelude.Text)+updateBotAliasResponse_botVersion = Lens.lens (\UpdateBotAliasResponse' {botVersion} -> botVersion) (\s@UpdateBotAliasResponse' {} a -> s {botVersion = a} :: UpdateBotAliasResponse)++-- | The updated settings for storing conversation logs in Amazon CloudWatch+-- Logs and Amazon S3 buckets.+updateBotAliasResponse_conversationLogSettings :: Lens.Lens' UpdateBotAliasResponse (Prelude.Maybe ConversationLogSettings)+updateBotAliasResponse_conversationLogSettings = Lens.lens (\UpdateBotAliasResponse' {conversationLogSettings} -> conversationLogSettings) (\s@UpdateBotAliasResponse' {} a -> s {conversationLogSettings = a} :: UpdateBotAliasResponse)++-- | A timestamp of the date and time that the bot was created.+updateBotAliasResponse_creationDateTime :: Lens.Lens' UpdateBotAliasResponse (Prelude.Maybe Prelude.UTCTime)+updateBotAliasResponse_creationDateTime = Lens.lens (\UpdateBotAliasResponse' {creationDateTime} -> creationDateTime) (\s@UpdateBotAliasResponse' {} a -> s {creationDateTime = a} :: UpdateBotAliasResponse) Prelude.. Lens.mapping Data._Time++-- | The updated description of the bot alias.+updateBotAliasResponse_description :: Lens.Lens' UpdateBotAliasResponse (Prelude.Maybe Prelude.Text)+updateBotAliasResponse_description = Lens.lens (\UpdateBotAliasResponse' {description} -> description) (\s@UpdateBotAliasResponse' {} a -> s {description = a} :: UpdateBotAliasResponse)++-- | A timestamp of the date and time that the bot was last updated.+updateBotAliasResponse_lastUpdatedDateTime :: Lens.Lens' UpdateBotAliasResponse (Prelude.Maybe Prelude.UTCTime)+updateBotAliasResponse_lastUpdatedDateTime = Lens.lens (\UpdateBotAliasResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@UpdateBotAliasResponse' {} a -> s {lastUpdatedDateTime = a} :: UpdateBotAliasResponse) Prelude.. Lens.mapping Data._Time++-- | Undocumented member.+updateBotAliasResponse_sentimentAnalysisSettings :: Lens.Lens' UpdateBotAliasResponse (Prelude.Maybe SentimentAnalysisSettings)+updateBotAliasResponse_sentimentAnalysisSettings = Lens.lens (\UpdateBotAliasResponse' {sentimentAnalysisSettings} -> sentimentAnalysisSettings) (\s@UpdateBotAliasResponse' {} a -> s {sentimentAnalysisSettings = a} :: UpdateBotAliasResponse)++-- | The response's http status code.+updateBotAliasResponse_httpStatus :: Lens.Lens' UpdateBotAliasResponse Prelude.Int+updateBotAliasResponse_httpStatus = Lens.lens (\UpdateBotAliasResponse' {httpStatus} -> httpStatus) (\s@UpdateBotAliasResponse' {} a -> s {httpStatus = a} :: UpdateBotAliasResponse)++instance Prelude.NFData UpdateBotAliasResponse where+  rnf UpdateBotAliasResponse' {..} =+    Prelude.rnf botAliasId+      `Prelude.seq` Prelude.rnf botAliasLocaleSettings+      `Prelude.seq` Prelude.rnf botAliasName+      `Prelude.seq` Prelude.rnf botAliasStatus+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf conversationLogSettings+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf sentimentAnalysisSettings+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/UpdateBotLocale.hs view
@@ -0,0 +1,424 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.UpdateBotLocale+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the settings that a bot has for a specific locale.+module Amazonka.LexV2Models.UpdateBotLocale+  ( -- * Creating a Request+    UpdateBotLocale (..),+    newUpdateBotLocale,++    -- * Request Lenses+    updateBotLocale_description,+    updateBotLocale_voiceSettings,+    updateBotLocale_botId,+    updateBotLocale_botVersion,+    updateBotLocale_localeId,+    updateBotLocale_nluIntentConfidenceThreshold,++    -- * Destructuring the Response+    UpdateBotLocaleResponse (..),+    newUpdateBotLocaleResponse,++    -- * Response Lenses+    updateBotLocaleResponse_botId,+    updateBotLocaleResponse_botLocaleStatus,+    updateBotLocaleResponse_botVersion,+    updateBotLocaleResponse_creationDateTime,+    updateBotLocaleResponse_description,+    updateBotLocaleResponse_failureReasons,+    updateBotLocaleResponse_lastUpdatedDateTime,+    updateBotLocaleResponse_localeId,+    updateBotLocaleResponse_localeName,+    updateBotLocaleResponse_nluIntentConfidenceThreshold,+    updateBotLocaleResponse_recommendedActions,+    updateBotLocaleResponse_voiceSettings,+    updateBotLocaleResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateBotLocale' smart constructor.+data UpdateBotLocale = UpdateBotLocale'+  { -- | The new description of the locale.+    description :: Prelude.Maybe Prelude.Text,+    -- | The new Amazon Polly voice Amazon Lex should use for voice interaction+    -- with the user.+    voiceSettings :: Prelude.Maybe VoiceSettings,+    -- | The unique identifier of the bot that contains the locale.+    botId :: Prelude.Text,+    -- | The version of the bot that contains the locale to be updated. The+    -- version can only be the @DRAFT@ version.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale to update. The string must+    -- match one of the supported locales. For more information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text,+    -- | The new confidence threshold where Amazon Lex inserts the+    -- @AMAZON.FallbackIntent@ and @AMAZON.KendraSearchIntent@ intents in the+    -- list of possible intents for an utterance.+    nluIntentConfidenceThreshold :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateBotLocale' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updateBotLocale_description' - The new description of the locale.+--+-- 'voiceSettings', 'updateBotLocale_voiceSettings' - The new Amazon Polly voice Amazon Lex should use for voice interaction+-- with the user.+--+-- 'botId', 'updateBotLocale_botId' - The unique identifier of the bot that contains the locale.+--+-- 'botVersion', 'updateBotLocale_botVersion' - The version of the bot that contains the locale to be updated. The+-- version can only be the @DRAFT@ version.+--+-- 'localeId', 'updateBotLocale_localeId' - The identifier of the language and locale to update. The string must+-- match one of the supported locales. For more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+--+-- 'nluIntentConfidenceThreshold', 'updateBotLocale_nluIntentConfidenceThreshold' - The new confidence threshold where Amazon Lex inserts the+-- @AMAZON.FallbackIntent@ and @AMAZON.KendraSearchIntent@ intents in the+-- list of possible intents for an utterance.+newUpdateBotLocale ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  -- | 'nluIntentConfidenceThreshold'+  Prelude.Double ->+  UpdateBotLocale+newUpdateBotLocale+  pBotId_+  pBotVersion_+  pLocaleId_+  pNluIntentConfidenceThreshold_ =+    UpdateBotLocale'+      { description = Prelude.Nothing,+        voiceSettings = Prelude.Nothing,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_,+        nluIntentConfidenceThreshold =+          pNluIntentConfidenceThreshold_+      }++-- | The new description of the locale.+updateBotLocale_description :: Lens.Lens' UpdateBotLocale (Prelude.Maybe Prelude.Text)+updateBotLocale_description = Lens.lens (\UpdateBotLocale' {description} -> description) (\s@UpdateBotLocale' {} a -> s {description = a} :: UpdateBotLocale)++-- | The new Amazon Polly voice Amazon Lex should use for voice interaction+-- with the user.+updateBotLocale_voiceSettings :: Lens.Lens' UpdateBotLocale (Prelude.Maybe VoiceSettings)+updateBotLocale_voiceSettings = Lens.lens (\UpdateBotLocale' {voiceSettings} -> voiceSettings) (\s@UpdateBotLocale' {} a -> s {voiceSettings = a} :: UpdateBotLocale)++-- | The unique identifier of the bot that contains the locale.+updateBotLocale_botId :: Lens.Lens' UpdateBotLocale Prelude.Text+updateBotLocale_botId = Lens.lens (\UpdateBotLocale' {botId} -> botId) (\s@UpdateBotLocale' {} a -> s {botId = a} :: UpdateBotLocale)++-- | The version of the bot that contains the locale to be updated. The+-- version can only be the @DRAFT@ version.+updateBotLocale_botVersion :: Lens.Lens' UpdateBotLocale Prelude.Text+updateBotLocale_botVersion = Lens.lens (\UpdateBotLocale' {botVersion} -> botVersion) (\s@UpdateBotLocale' {} a -> s {botVersion = a} :: UpdateBotLocale)++-- | The identifier of the language and locale to update. The string must+-- match one of the supported locales. For more information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+updateBotLocale_localeId :: Lens.Lens' UpdateBotLocale Prelude.Text+updateBotLocale_localeId = Lens.lens (\UpdateBotLocale' {localeId} -> localeId) (\s@UpdateBotLocale' {} a -> s {localeId = a} :: UpdateBotLocale)++-- | The new confidence threshold where Amazon Lex inserts the+-- @AMAZON.FallbackIntent@ and @AMAZON.KendraSearchIntent@ intents in the+-- list of possible intents for an utterance.+updateBotLocale_nluIntentConfidenceThreshold :: Lens.Lens' UpdateBotLocale Prelude.Double+updateBotLocale_nluIntentConfidenceThreshold = Lens.lens (\UpdateBotLocale' {nluIntentConfidenceThreshold} -> nluIntentConfidenceThreshold) (\s@UpdateBotLocale' {} a -> s {nluIntentConfidenceThreshold = a} :: UpdateBotLocale)++instance Core.AWSRequest UpdateBotLocale where+  type+    AWSResponse UpdateBotLocale =+      UpdateBotLocaleResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateBotLocaleResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botLocaleStatus")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "failureReasons" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "localeName")+            Prelude.<*> (x Data..?> "nluIntentConfidenceThreshold")+            Prelude.<*> ( x+                            Data..?> "recommendedActions"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "voiceSettings")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateBotLocale where+  hashWithSalt _salt UpdateBotLocale' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` voiceSettings+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` nluIntentConfidenceThreshold++instance Prelude.NFData UpdateBotLocale where+  rnf UpdateBotLocale' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf voiceSettings+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf nluIntentConfidenceThreshold++instance Data.ToHeaders UpdateBotLocale where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateBotLocale where+  toJSON UpdateBotLocale' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("voiceSettings" Data..=) Prelude.<$> voiceSettings,+            Prelude.Just+              ( "nluIntentConfidenceThreshold"+                  Data..= nluIntentConfidenceThreshold+              )+          ]+      )++instance Data.ToPath UpdateBotLocale where+  toPath UpdateBotLocale' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/"+      ]++instance Data.ToQuery UpdateBotLocale where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateBotLocaleResponse' smart constructor.+data UpdateBotLocaleResponse = UpdateBotLocaleResponse'+  { -- | The identifier of the bot that contains the updated locale.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The current status of the locale. When the bot status is @Built@ the+    -- locale is ready for use.+    botLocaleStatus :: Prelude.Maybe BotLocaleStatus,+    -- | The version of the bot that contains the updated locale.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | A timestamp of the date and time that the locale was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The updated description of the locale.+    description :: Prelude.Maybe Prelude.Text,+    -- | If the @botLocaleStatus@ is @Failed@, the @failureReasons@ field lists+    -- the errors that occurred while building the bot.+    failureReasons :: Prelude.Maybe [Prelude.Text],+    -- | A timestamp of the date and time that the locale was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The language and locale of the updated bot locale.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The updated locale name for the locale.+    localeName :: Prelude.Maybe Prelude.Text,+    -- | The updated confidence threshold for inserting the+    -- @AMAZON.FallbackIntent@ and @AMAZON.KendraSearchIntent@ intents in the+    -- list of possible intents for an utterance.+    nluIntentConfidenceThreshold :: Prelude.Maybe Prelude.Double,+    -- | Recommended actions to take to resolve an error in the @failureReasons@+    -- field.+    recommendedActions :: Prelude.Maybe [Prelude.Text],+    -- | The updated Amazon Polly voice to use for voice interaction with the+    -- user.+    voiceSettings :: Prelude.Maybe VoiceSettings,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateBotLocaleResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'updateBotLocaleResponse_botId' - The identifier of the bot that contains the updated locale.+--+-- 'botLocaleStatus', 'updateBotLocaleResponse_botLocaleStatus' - The current status of the locale. When the bot status is @Built@ the+-- locale is ready for use.+--+-- 'botVersion', 'updateBotLocaleResponse_botVersion' - The version of the bot that contains the updated locale.+--+-- 'creationDateTime', 'updateBotLocaleResponse_creationDateTime' - A timestamp of the date and time that the locale was created.+--+-- 'description', 'updateBotLocaleResponse_description' - The updated description of the locale.+--+-- 'failureReasons', 'updateBotLocaleResponse_failureReasons' - If the @botLocaleStatus@ is @Failed@, the @failureReasons@ field lists+-- the errors that occurred while building the bot.+--+-- 'lastUpdatedDateTime', 'updateBotLocaleResponse_lastUpdatedDateTime' - A timestamp of the date and time that the locale was last updated.+--+-- 'localeId', 'updateBotLocaleResponse_localeId' - The language and locale of the updated bot locale.+--+-- 'localeName', 'updateBotLocaleResponse_localeName' - The updated locale name for the locale.+--+-- 'nluIntentConfidenceThreshold', 'updateBotLocaleResponse_nluIntentConfidenceThreshold' - The updated confidence threshold for inserting the+-- @AMAZON.FallbackIntent@ and @AMAZON.KendraSearchIntent@ intents in the+-- list of possible intents for an utterance.+--+-- 'recommendedActions', 'updateBotLocaleResponse_recommendedActions' - Recommended actions to take to resolve an error in the @failureReasons@+-- field.+--+-- 'voiceSettings', 'updateBotLocaleResponse_voiceSettings' - The updated Amazon Polly voice to use for voice interaction with the+-- user.+--+-- 'httpStatus', 'updateBotLocaleResponse_httpStatus' - The response's http status code.+newUpdateBotLocaleResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateBotLocaleResponse+newUpdateBotLocaleResponse pHttpStatus_ =+  UpdateBotLocaleResponse'+    { botId = Prelude.Nothing,+      botLocaleStatus = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      failureReasons = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      localeId = Prelude.Nothing,+      localeName = Prelude.Nothing,+      nluIntentConfidenceThreshold = Prelude.Nothing,+      recommendedActions = Prelude.Nothing,+      voiceSettings = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot that contains the updated locale.+updateBotLocaleResponse_botId :: Lens.Lens' UpdateBotLocaleResponse (Prelude.Maybe Prelude.Text)+updateBotLocaleResponse_botId = Lens.lens (\UpdateBotLocaleResponse' {botId} -> botId) (\s@UpdateBotLocaleResponse' {} a -> s {botId = a} :: UpdateBotLocaleResponse)++-- | The current status of the locale. When the bot status is @Built@ the+-- locale is ready for use.+updateBotLocaleResponse_botLocaleStatus :: Lens.Lens' UpdateBotLocaleResponse (Prelude.Maybe BotLocaleStatus)+updateBotLocaleResponse_botLocaleStatus = Lens.lens (\UpdateBotLocaleResponse' {botLocaleStatus} -> botLocaleStatus) (\s@UpdateBotLocaleResponse' {} a -> s {botLocaleStatus = a} :: UpdateBotLocaleResponse)++-- | The version of the bot that contains the updated locale.+updateBotLocaleResponse_botVersion :: Lens.Lens' UpdateBotLocaleResponse (Prelude.Maybe Prelude.Text)+updateBotLocaleResponse_botVersion = Lens.lens (\UpdateBotLocaleResponse' {botVersion} -> botVersion) (\s@UpdateBotLocaleResponse' {} a -> s {botVersion = a} :: UpdateBotLocaleResponse)++-- | A timestamp of the date and time that the locale was created.+updateBotLocaleResponse_creationDateTime :: Lens.Lens' UpdateBotLocaleResponse (Prelude.Maybe Prelude.UTCTime)+updateBotLocaleResponse_creationDateTime = Lens.lens (\UpdateBotLocaleResponse' {creationDateTime} -> creationDateTime) (\s@UpdateBotLocaleResponse' {} a -> s {creationDateTime = a} :: UpdateBotLocaleResponse) Prelude.. Lens.mapping Data._Time++-- | The updated description of the locale.+updateBotLocaleResponse_description :: Lens.Lens' UpdateBotLocaleResponse (Prelude.Maybe Prelude.Text)+updateBotLocaleResponse_description = Lens.lens (\UpdateBotLocaleResponse' {description} -> description) (\s@UpdateBotLocaleResponse' {} a -> s {description = a} :: UpdateBotLocaleResponse)++-- | If the @botLocaleStatus@ is @Failed@, the @failureReasons@ field lists+-- the errors that occurred while building the bot.+updateBotLocaleResponse_failureReasons :: Lens.Lens' UpdateBotLocaleResponse (Prelude.Maybe [Prelude.Text])+updateBotLocaleResponse_failureReasons = Lens.lens (\UpdateBotLocaleResponse' {failureReasons} -> failureReasons) (\s@UpdateBotLocaleResponse' {} a -> s {failureReasons = a} :: UpdateBotLocaleResponse) Prelude.. Lens.mapping Lens.coerced++-- | A timestamp of the date and time that the locale was last updated.+updateBotLocaleResponse_lastUpdatedDateTime :: Lens.Lens' UpdateBotLocaleResponse (Prelude.Maybe Prelude.UTCTime)+updateBotLocaleResponse_lastUpdatedDateTime = Lens.lens (\UpdateBotLocaleResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@UpdateBotLocaleResponse' {} a -> s {lastUpdatedDateTime = a} :: UpdateBotLocaleResponse) Prelude.. Lens.mapping Data._Time++-- | The language and locale of the updated bot locale.+updateBotLocaleResponse_localeId :: Lens.Lens' UpdateBotLocaleResponse (Prelude.Maybe Prelude.Text)+updateBotLocaleResponse_localeId = Lens.lens (\UpdateBotLocaleResponse' {localeId} -> localeId) (\s@UpdateBotLocaleResponse' {} a -> s {localeId = a} :: UpdateBotLocaleResponse)++-- | The updated locale name for the locale.+updateBotLocaleResponse_localeName :: Lens.Lens' UpdateBotLocaleResponse (Prelude.Maybe Prelude.Text)+updateBotLocaleResponse_localeName = Lens.lens (\UpdateBotLocaleResponse' {localeName} -> localeName) (\s@UpdateBotLocaleResponse' {} a -> s {localeName = a} :: UpdateBotLocaleResponse)++-- | The updated confidence threshold for inserting the+-- @AMAZON.FallbackIntent@ and @AMAZON.KendraSearchIntent@ intents in the+-- list of possible intents for an utterance.+updateBotLocaleResponse_nluIntentConfidenceThreshold :: Lens.Lens' UpdateBotLocaleResponse (Prelude.Maybe Prelude.Double)+updateBotLocaleResponse_nluIntentConfidenceThreshold = Lens.lens (\UpdateBotLocaleResponse' {nluIntentConfidenceThreshold} -> nluIntentConfidenceThreshold) (\s@UpdateBotLocaleResponse' {} a -> s {nluIntentConfidenceThreshold = a} :: UpdateBotLocaleResponse)++-- | Recommended actions to take to resolve an error in the @failureReasons@+-- field.+updateBotLocaleResponse_recommendedActions :: Lens.Lens' UpdateBotLocaleResponse (Prelude.Maybe [Prelude.Text])+updateBotLocaleResponse_recommendedActions = Lens.lens (\UpdateBotLocaleResponse' {recommendedActions} -> recommendedActions) (\s@UpdateBotLocaleResponse' {} a -> s {recommendedActions = a} :: UpdateBotLocaleResponse) Prelude.. Lens.mapping Lens.coerced++-- | The updated Amazon Polly voice to use for voice interaction with the+-- user.+updateBotLocaleResponse_voiceSettings :: Lens.Lens' UpdateBotLocaleResponse (Prelude.Maybe VoiceSettings)+updateBotLocaleResponse_voiceSettings = Lens.lens (\UpdateBotLocaleResponse' {voiceSettings} -> voiceSettings) (\s@UpdateBotLocaleResponse' {} a -> s {voiceSettings = a} :: UpdateBotLocaleResponse)++-- | The response's http status code.+updateBotLocaleResponse_httpStatus :: Lens.Lens' UpdateBotLocaleResponse Prelude.Int+updateBotLocaleResponse_httpStatus = Lens.lens (\UpdateBotLocaleResponse' {httpStatus} -> httpStatus) (\s@UpdateBotLocaleResponse' {} a -> s {httpStatus = a} :: UpdateBotLocaleResponse)++instance Prelude.NFData UpdateBotLocaleResponse where+  rnf UpdateBotLocaleResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botLocaleStatus+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf failureReasons+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf localeName+      `Prelude.seq` Prelude.rnf nluIntentConfidenceThreshold+      `Prelude.seq` Prelude.rnf recommendedActions+      `Prelude.seq` Prelude.rnf voiceSettings+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/UpdateBotRecommendation.hs view
@@ -0,0 +1,398 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.UpdateBotRecommendation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing bot recommendation request.+module Amazonka.LexV2Models.UpdateBotRecommendation+  ( -- * Creating a Request+    UpdateBotRecommendation (..),+    newUpdateBotRecommendation,++    -- * Request Lenses+    updateBotRecommendation_botId,+    updateBotRecommendation_botVersion,+    updateBotRecommendation_localeId,+    updateBotRecommendation_botRecommendationId,+    updateBotRecommendation_encryptionSetting,++    -- * Destructuring the Response+    UpdateBotRecommendationResponse (..),+    newUpdateBotRecommendationResponse,++    -- * Response Lenses+    updateBotRecommendationResponse_botId,+    updateBotRecommendationResponse_botRecommendationId,+    updateBotRecommendationResponse_botRecommendationStatus,+    updateBotRecommendationResponse_botVersion,+    updateBotRecommendationResponse_creationDateTime,+    updateBotRecommendationResponse_encryptionSetting,+    updateBotRecommendationResponse_lastUpdatedDateTime,+    updateBotRecommendationResponse_localeId,+    updateBotRecommendationResponse_transcriptSourceSetting,+    updateBotRecommendationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateBotRecommendation' smart constructor.+data UpdateBotRecommendation = UpdateBotRecommendation'+  { -- | The unique identifier of the bot containing the bot recommendation to be+    -- updated.+    botId :: Prelude.Text,+    -- | The version of the bot containing the bot recommendation to be updated.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale of the bot recommendation to+    -- update. The string must match one of the supported locales. For more+    -- information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+    localeId :: Prelude.Text,+    -- | The unique identifier of the bot recommendation to be updated.+    botRecommendationId :: Prelude.Text,+    -- | The object representing the passwords that will be used to encrypt the+    -- data related to the bot recommendation results, as well as the KMS key+    -- ARN used to encrypt the associated metadata.+    encryptionSetting :: EncryptionSetting+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateBotRecommendation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'updateBotRecommendation_botId' - The unique identifier of the bot containing the bot recommendation to be+-- updated.+--+-- 'botVersion', 'updateBotRecommendation_botVersion' - The version of the bot containing the bot recommendation to be updated.+--+-- 'localeId', 'updateBotRecommendation_localeId' - The identifier of the language and locale of the bot recommendation to+-- update. The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+--+-- 'botRecommendationId', 'updateBotRecommendation_botRecommendationId' - The unique identifier of the bot recommendation to be updated.+--+-- 'encryptionSetting', 'updateBotRecommendation_encryptionSetting' - The object representing the passwords that will be used to encrypt the+-- data related to the bot recommendation results, as well as the KMS key+-- ARN used to encrypt the associated metadata.+newUpdateBotRecommendation ::+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  -- | 'botRecommendationId'+  Prelude.Text ->+  -- | 'encryptionSetting'+  EncryptionSetting ->+  UpdateBotRecommendation+newUpdateBotRecommendation+  pBotId_+  pBotVersion_+  pLocaleId_+  pBotRecommendationId_+  pEncryptionSetting_ =+    UpdateBotRecommendation'+      { botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_,+        botRecommendationId = pBotRecommendationId_,+        encryptionSetting = pEncryptionSetting_+      }++-- | The unique identifier of the bot containing the bot recommendation to be+-- updated.+updateBotRecommendation_botId :: Lens.Lens' UpdateBotRecommendation Prelude.Text+updateBotRecommendation_botId = Lens.lens (\UpdateBotRecommendation' {botId} -> botId) (\s@UpdateBotRecommendation' {} a -> s {botId = a} :: UpdateBotRecommendation)++-- | The version of the bot containing the bot recommendation to be updated.+updateBotRecommendation_botVersion :: Lens.Lens' UpdateBotRecommendation Prelude.Text+updateBotRecommendation_botVersion = Lens.lens (\UpdateBotRecommendation' {botVersion} -> botVersion) (\s@UpdateBotRecommendation' {} a -> s {botVersion = a} :: UpdateBotRecommendation)++-- | The identifier of the language and locale of the bot recommendation to+-- update. The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+updateBotRecommendation_localeId :: Lens.Lens' UpdateBotRecommendation Prelude.Text+updateBotRecommendation_localeId = Lens.lens (\UpdateBotRecommendation' {localeId} -> localeId) (\s@UpdateBotRecommendation' {} a -> s {localeId = a} :: UpdateBotRecommendation)++-- | The unique identifier of the bot recommendation to be updated.+updateBotRecommendation_botRecommendationId :: Lens.Lens' UpdateBotRecommendation Prelude.Text+updateBotRecommendation_botRecommendationId = Lens.lens (\UpdateBotRecommendation' {botRecommendationId} -> botRecommendationId) (\s@UpdateBotRecommendation' {} a -> s {botRecommendationId = a} :: UpdateBotRecommendation)++-- | The object representing the passwords that will be used to encrypt the+-- data related to the bot recommendation results, as well as the KMS key+-- ARN used to encrypt the associated metadata.+updateBotRecommendation_encryptionSetting :: Lens.Lens' UpdateBotRecommendation EncryptionSetting+updateBotRecommendation_encryptionSetting = Lens.lens (\UpdateBotRecommendation' {encryptionSetting} -> encryptionSetting) (\s@UpdateBotRecommendation' {} a -> s {encryptionSetting = a} :: UpdateBotRecommendation)++instance Core.AWSRequest UpdateBotRecommendation where+  type+    AWSResponse UpdateBotRecommendation =+      UpdateBotRecommendationResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateBotRecommendationResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botRecommendationId")+            Prelude.<*> (x Data..?> "botRecommendationStatus")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "encryptionSetting")+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "transcriptSourceSetting")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateBotRecommendation where+  hashWithSalt _salt UpdateBotRecommendation' {..} =+    _salt+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` botRecommendationId+      `Prelude.hashWithSalt` encryptionSetting++instance Prelude.NFData UpdateBotRecommendation where+  rnf UpdateBotRecommendation' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf botRecommendationId+      `Prelude.seq` Prelude.rnf encryptionSetting++instance Data.ToHeaders UpdateBotRecommendation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateBotRecommendation where+  toJSON UpdateBotRecommendation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("encryptionSetting" Data..= encryptionSetting)+          ]+      )++instance Data.ToPath UpdateBotRecommendation where+  toPath UpdateBotRecommendation' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/botrecommendations/",+        Data.toBS botRecommendationId,+        "/"+      ]++instance Data.ToQuery UpdateBotRecommendation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateBotRecommendationResponse' smart constructor.+data UpdateBotRecommendationResponse = UpdateBotRecommendationResponse'+  { -- | The unique identifier of the bot containing the bot recommendation that+    -- has been updated.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the bot recommendation to be updated.+    botRecommendationId :: Prelude.Maybe Prelude.Text,+    -- | The status of the bot recommendation.+    --+    -- If the status is Failed, then the reasons for the failure are listed in+    -- the failureReasons field.+    botRecommendationStatus :: Prelude.Maybe BotRecommendationStatus,+    -- | The version of the bot containing the bot recommendation that has been+    -- updated.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | A timestamp of the date and time that the bot recommendation was+    -- created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The object representing the passwords that were used to encrypt the data+    -- related to the bot recommendation results, as well as the KMS key ARN+    -- used to encrypt the associated metadata.+    encryptionSetting :: Prelude.Maybe EncryptionSetting,+    -- | A timestamp of the date and time that the bot recommendation was last+    -- updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The identifier of the language and locale of the bot recommendation to+    -- update. The string must match one of the supported locales. For more+    -- information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The object representing the Amazon S3 bucket containing the transcript,+    -- as well as the associated metadata.+    transcriptSourceSetting :: Prelude.Maybe TranscriptSourceSetting,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateBotRecommendationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'updateBotRecommendationResponse_botId' - The unique identifier of the bot containing the bot recommendation that+-- has been updated.+--+-- 'botRecommendationId', 'updateBotRecommendationResponse_botRecommendationId' - The unique identifier of the bot recommendation to be updated.+--+-- 'botRecommendationStatus', 'updateBotRecommendationResponse_botRecommendationStatus' - The status of the bot recommendation.+--+-- If the status is Failed, then the reasons for the failure are listed in+-- the failureReasons field.+--+-- 'botVersion', 'updateBotRecommendationResponse_botVersion' - The version of the bot containing the bot recommendation that has been+-- updated.+--+-- 'creationDateTime', 'updateBotRecommendationResponse_creationDateTime' - A timestamp of the date and time that the bot recommendation was+-- created.+--+-- 'encryptionSetting', 'updateBotRecommendationResponse_encryptionSetting' - The object representing the passwords that were used to encrypt the data+-- related to the bot recommendation results, as well as the KMS key ARN+-- used to encrypt the associated metadata.+--+-- 'lastUpdatedDateTime', 'updateBotRecommendationResponse_lastUpdatedDateTime' - A timestamp of the date and time that the bot recommendation was last+-- updated.+--+-- 'localeId', 'updateBotRecommendationResponse_localeId' - The identifier of the language and locale of the bot recommendation to+-- update. The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+--+-- 'transcriptSourceSetting', 'updateBotRecommendationResponse_transcriptSourceSetting' - The object representing the Amazon S3 bucket containing the transcript,+-- as well as the associated metadata.+--+-- 'httpStatus', 'updateBotRecommendationResponse_httpStatus' - The response's http status code.+newUpdateBotRecommendationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateBotRecommendationResponse+newUpdateBotRecommendationResponse pHttpStatus_ =+  UpdateBotRecommendationResponse'+    { botId =+        Prelude.Nothing,+      botRecommendationId = Prelude.Nothing,+      botRecommendationStatus = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      encryptionSetting = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      localeId = Prelude.Nothing,+      transcriptSourceSetting = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier of the bot containing the bot recommendation that+-- has been updated.+updateBotRecommendationResponse_botId :: Lens.Lens' UpdateBotRecommendationResponse (Prelude.Maybe Prelude.Text)+updateBotRecommendationResponse_botId = Lens.lens (\UpdateBotRecommendationResponse' {botId} -> botId) (\s@UpdateBotRecommendationResponse' {} a -> s {botId = a} :: UpdateBotRecommendationResponse)++-- | The unique identifier of the bot recommendation to be updated.+updateBotRecommendationResponse_botRecommendationId :: Lens.Lens' UpdateBotRecommendationResponse (Prelude.Maybe Prelude.Text)+updateBotRecommendationResponse_botRecommendationId = Lens.lens (\UpdateBotRecommendationResponse' {botRecommendationId} -> botRecommendationId) (\s@UpdateBotRecommendationResponse' {} a -> s {botRecommendationId = a} :: UpdateBotRecommendationResponse)++-- | The status of the bot recommendation.+--+-- If the status is Failed, then the reasons for the failure are listed in+-- the failureReasons field.+updateBotRecommendationResponse_botRecommendationStatus :: Lens.Lens' UpdateBotRecommendationResponse (Prelude.Maybe BotRecommendationStatus)+updateBotRecommendationResponse_botRecommendationStatus = Lens.lens (\UpdateBotRecommendationResponse' {botRecommendationStatus} -> botRecommendationStatus) (\s@UpdateBotRecommendationResponse' {} a -> s {botRecommendationStatus = a} :: UpdateBotRecommendationResponse)++-- | The version of the bot containing the bot recommendation that has been+-- updated.+updateBotRecommendationResponse_botVersion :: Lens.Lens' UpdateBotRecommendationResponse (Prelude.Maybe Prelude.Text)+updateBotRecommendationResponse_botVersion = Lens.lens (\UpdateBotRecommendationResponse' {botVersion} -> botVersion) (\s@UpdateBotRecommendationResponse' {} a -> s {botVersion = a} :: UpdateBotRecommendationResponse)++-- | A timestamp of the date and time that the bot recommendation was+-- created.+updateBotRecommendationResponse_creationDateTime :: Lens.Lens' UpdateBotRecommendationResponse (Prelude.Maybe Prelude.UTCTime)+updateBotRecommendationResponse_creationDateTime = Lens.lens (\UpdateBotRecommendationResponse' {creationDateTime} -> creationDateTime) (\s@UpdateBotRecommendationResponse' {} a -> s {creationDateTime = a} :: UpdateBotRecommendationResponse) Prelude.. Lens.mapping Data._Time++-- | The object representing the passwords that were used to encrypt the data+-- related to the bot recommendation results, as well as the KMS key ARN+-- used to encrypt the associated metadata.+updateBotRecommendationResponse_encryptionSetting :: Lens.Lens' UpdateBotRecommendationResponse (Prelude.Maybe EncryptionSetting)+updateBotRecommendationResponse_encryptionSetting = Lens.lens (\UpdateBotRecommendationResponse' {encryptionSetting} -> encryptionSetting) (\s@UpdateBotRecommendationResponse' {} a -> s {encryptionSetting = a} :: UpdateBotRecommendationResponse)++-- | A timestamp of the date and time that the bot recommendation was last+-- updated.+updateBotRecommendationResponse_lastUpdatedDateTime :: Lens.Lens' UpdateBotRecommendationResponse (Prelude.Maybe Prelude.UTCTime)+updateBotRecommendationResponse_lastUpdatedDateTime = Lens.lens (\UpdateBotRecommendationResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@UpdateBotRecommendationResponse' {} a -> s {lastUpdatedDateTime = a} :: UpdateBotRecommendationResponse) Prelude.. Lens.mapping Data._Time++-- | The identifier of the language and locale of the bot recommendation to+-- update. The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>+updateBotRecommendationResponse_localeId :: Lens.Lens' UpdateBotRecommendationResponse (Prelude.Maybe Prelude.Text)+updateBotRecommendationResponse_localeId = Lens.lens (\UpdateBotRecommendationResponse' {localeId} -> localeId) (\s@UpdateBotRecommendationResponse' {} a -> s {localeId = a} :: UpdateBotRecommendationResponse)++-- | The object representing the Amazon S3 bucket containing the transcript,+-- as well as the associated metadata.+updateBotRecommendationResponse_transcriptSourceSetting :: Lens.Lens' UpdateBotRecommendationResponse (Prelude.Maybe TranscriptSourceSetting)+updateBotRecommendationResponse_transcriptSourceSetting = Lens.lens (\UpdateBotRecommendationResponse' {transcriptSourceSetting} -> transcriptSourceSetting) (\s@UpdateBotRecommendationResponse' {} a -> s {transcriptSourceSetting = a} :: UpdateBotRecommendationResponse)++-- | The response's http status code.+updateBotRecommendationResponse_httpStatus :: Lens.Lens' UpdateBotRecommendationResponse Prelude.Int+updateBotRecommendationResponse_httpStatus = Lens.lens (\UpdateBotRecommendationResponse' {httpStatus} -> httpStatus) (\s@UpdateBotRecommendationResponse' {} a -> s {httpStatus = a} :: UpdateBotRecommendationResponse)++instance+  Prelude.NFData+    UpdateBotRecommendationResponse+  where+  rnf UpdateBotRecommendationResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botRecommendationId+      `Prelude.seq` Prelude.rnf botRecommendationStatus+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf encryptionSetting+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf transcriptSourceSetting+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/UpdateExport.hs view
@@ -0,0 +1,258 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.UpdateExport+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the password used to protect an export zip archive.+--+-- The password is not required. If you don\'t supply a password, Amazon+-- Lex generates a zip file that is not protected by a password. This is+-- the archive that is available at the pre-signed S3 URL provided by the+-- <https://docs.aws.amazon.com/lexv2/latest/dg/API_DescribeExport.html DescribeExport>+-- operation.+module Amazonka.LexV2Models.UpdateExport+  ( -- * Creating a Request+    UpdateExport (..),+    newUpdateExport,++    -- * Request Lenses+    updateExport_filePassword,+    updateExport_exportId,++    -- * Destructuring the Response+    UpdateExportResponse (..),+    newUpdateExportResponse,++    -- * Response Lenses+    updateExportResponse_creationDateTime,+    updateExportResponse_exportId,+    updateExportResponse_exportStatus,+    updateExportResponse_fileFormat,+    updateExportResponse_lastUpdatedDateTime,+    updateExportResponse_resourceSpecification,+    updateExportResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateExport' smart constructor.+data UpdateExport = UpdateExport'+  { -- | The new password to use to encrypt the export zip archive.+    filePassword :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The unique identifier Amazon Lex assigned to the export.+    exportId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateExport' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filePassword', 'updateExport_filePassword' - The new password to use to encrypt the export zip archive.+--+-- 'exportId', 'updateExport_exportId' - The unique identifier Amazon Lex assigned to the export.+newUpdateExport ::+  -- | 'exportId'+  Prelude.Text ->+  UpdateExport+newUpdateExport pExportId_ =+  UpdateExport'+    { filePassword = Prelude.Nothing,+      exportId = pExportId_+    }++-- | The new password to use to encrypt the export zip archive.+updateExport_filePassword :: Lens.Lens' UpdateExport (Prelude.Maybe Prelude.Text)+updateExport_filePassword = Lens.lens (\UpdateExport' {filePassword} -> filePassword) (\s@UpdateExport' {} a -> s {filePassword = a} :: UpdateExport) Prelude.. Lens.mapping Data._Sensitive++-- | The unique identifier Amazon Lex assigned to the export.+updateExport_exportId :: Lens.Lens' UpdateExport Prelude.Text+updateExport_exportId = Lens.lens (\UpdateExport' {exportId} -> exportId) (\s@UpdateExport' {} a -> s {exportId = a} :: UpdateExport)++instance Core.AWSRequest UpdateExport where+  type AWSResponse UpdateExport = UpdateExportResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateExportResponse'+            Prelude.<$> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "exportId")+            Prelude.<*> (x Data..?> "exportStatus")+            Prelude.<*> (x Data..?> "fileFormat")+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "resourceSpecification")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateExport where+  hashWithSalt _salt UpdateExport' {..} =+    _salt+      `Prelude.hashWithSalt` filePassword+      `Prelude.hashWithSalt` exportId++instance Prelude.NFData UpdateExport where+  rnf UpdateExport' {..} =+    Prelude.rnf filePassword+      `Prelude.seq` Prelude.rnf exportId++instance Data.ToHeaders UpdateExport where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateExport where+  toJSON UpdateExport' {..} =+    Data.object+      ( Prelude.catMaybes+          [("filePassword" Data..=) Prelude.<$> filePassword]+      )++instance Data.ToPath UpdateExport where+  toPath UpdateExport' {..} =+    Prelude.mconcat+      ["/exports/", Data.toBS exportId, "/"]++instance Data.ToQuery UpdateExport where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateExportResponse' smart constructor.+data UpdateExportResponse = UpdateExportResponse'+  { -- | The date and time that the export was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The unique identifier Amazon Lex assigned to the export.+    exportId :: Prelude.Maybe Prelude.Text,+    -- | The status of the export. When the status is @Completed@ the export+    -- archive is available for download.+    exportStatus :: Prelude.Maybe ExportStatus,+    -- | The file format used for the files that define the resource. The @TSV@+    -- format is required to export a custom vocabulary only; otherwise use+    -- @LexJson@ format.+    fileFormat :: Prelude.Maybe ImportExportFileFormat,+    -- | The date and time that the export was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | A description of the type of resource that was exported, either a bot or+    -- a bot locale.+    resourceSpecification :: Prelude.Maybe ExportResourceSpecification,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateExportResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDateTime', 'updateExportResponse_creationDateTime' - The date and time that the export was created.+--+-- 'exportId', 'updateExportResponse_exportId' - The unique identifier Amazon Lex assigned to the export.+--+-- 'exportStatus', 'updateExportResponse_exportStatus' - The status of the export. When the status is @Completed@ the export+-- archive is available for download.+--+-- 'fileFormat', 'updateExportResponse_fileFormat' - The file format used for the files that define the resource. The @TSV@+-- format is required to export a custom vocabulary only; otherwise use+-- @LexJson@ format.+--+-- 'lastUpdatedDateTime', 'updateExportResponse_lastUpdatedDateTime' - The date and time that the export was last updated.+--+-- 'resourceSpecification', 'updateExportResponse_resourceSpecification' - A description of the type of resource that was exported, either a bot or+-- a bot locale.+--+-- 'httpStatus', 'updateExportResponse_httpStatus' - The response's http status code.+newUpdateExportResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateExportResponse+newUpdateExportResponse pHttpStatus_ =+  UpdateExportResponse'+    { creationDateTime =+        Prelude.Nothing,+      exportId = Prelude.Nothing,+      exportStatus = Prelude.Nothing,+      fileFormat = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      resourceSpecification = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The date and time that the export was created.+updateExportResponse_creationDateTime :: Lens.Lens' UpdateExportResponse (Prelude.Maybe Prelude.UTCTime)+updateExportResponse_creationDateTime = Lens.lens (\UpdateExportResponse' {creationDateTime} -> creationDateTime) (\s@UpdateExportResponse' {} a -> s {creationDateTime = a} :: UpdateExportResponse) Prelude.. Lens.mapping Data._Time++-- | The unique identifier Amazon Lex assigned to the export.+updateExportResponse_exportId :: Lens.Lens' UpdateExportResponse (Prelude.Maybe Prelude.Text)+updateExportResponse_exportId = Lens.lens (\UpdateExportResponse' {exportId} -> exportId) (\s@UpdateExportResponse' {} a -> s {exportId = a} :: UpdateExportResponse)++-- | The status of the export. When the status is @Completed@ the export+-- archive is available for download.+updateExportResponse_exportStatus :: Lens.Lens' UpdateExportResponse (Prelude.Maybe ExportStatus)+updateExportResponse_exportStatus = Lens.lens (\UpdateExportResponse' {exportStatus} -> exportStatus) (\s@UpdateExportResponse' {} a -> s {exportStatus = a} :: UpdateExportResponse)++-- | The file format used for the files that define the resource. The @TSV@+-- format is required to export a custom vocabulary only; otherwise use+-- @LexJson@ format.+updateExportResponse_fileFormat :: Lens.Lens' UpdateExportResponse (Prelude.Maybe ImportExportFileFormat)+updateExportResponse_fileFormat = Lens.lens (\UpdateExportResponse' {fileFormat} -> fileFormat) (\s@UpdateExportResponse' {} a -> s {fileFormat = a} :: UpdateExportResponse)++-- | The date and time that the export was last updated.+updateExportResponse_lastUpdatedDateTime :: Lens.Lens' UpdateExportResponse (Prelude.Maybe Prelude.UTCTime)+updateExportResponse_lastUpdatedDateTime = Lens.lens (\UpdateExportResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@UpdateExportResponse' {} a -> s {lastUpdatedDateTime = a} :: UpdateExportResponse) Prelude.. Lens.mapping Data._Time++-- | A description of the type of resource that was exported, either a bot or+-- a bot locale.+updateExportResponse_resourceSpecification :: Lens.Lens' UpdateExportResponse (Prelude.Maybe ExportResourceSpecification)+updateExportResponse_resourceSpecification = Lens.lens (\UpdateExportResponse' {resourceSpecification} -> resourceSpecification) (\s@UpdateExportResponse' {} a -> s {resourceSpecification = a} :: UpdateExportResponse)++-- | The response's http status code.+updateExportResponse_httpStatus :: Lens.Lens' UpdateExportResponse Prelude.Int+updateExportResponse_httpStatus = Lens.lens (\UpdateExportResponse' {httpStatus} -> httpStatus) (\s@UpdateExportResponse' {} a -> s {httpStatus = a} :: UpdateExportResponse)++instance Prelude.NFData UpdateExportResponse where+  rnf UpdateExportResponse' {..} =+    Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf exportId+      `Prelude.seq` Prelude.rnf exportStatus+      `Prelude.seq` Prelude.rnf fileFormat+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf resourceSpecification+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/UpdateIntent.hs view
@@ -0,0 +1,676 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.UpdateIntent+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the settings for an intent.+module Amazonka.LexV2Models.UpdateIntent+  ( -- * Creating a Request+    UpdateIntent (..),+    newUpdateIntent,++    -- * Request Lenses+    updateIntent_description,+    updateIntent_dialogCodeHook,+    updateIntent_fulfillmentCodeHook,+    updateIntent_initialResponseSetting,+    updateIntent_inputContexts,+    updateIntent_intentClosingSetting,+    updateIntent_intentConfirmationSetting,+    updateIntent_kendraConfiguration,+    updateIntent_outputContexts,+    updateIntent_parentIntentSignature,+    updateIntent_sampleUtterances,+    updateIntent_slotPriorities,+    updateIntent_intentId,+    updateIntent_intentName,+    updateIntent_botId,+    updateIntent_botVersion,+    updateIntent_localeId,++    -- * Destructuring the Response+    UpdateIntentResponse (..),+    newUpdateIntentResponse,++    -- * Response Lenses+    updateIntentResponse_botId,+    updateIntentResponse_botVersion,+    updateIntentResponse_creationDateTime,+    updateIntentResponse_description,+    updateIntentResponse_dialogCodeHook,+    updateIntentResponse_fulfillmentCodeHook,+    updateIntentResponse_initialResponseSetting,+    updateIntentResponse_inputContexts,+    updateIntentResponse_intentClosingSetting,+    updateIntentResponse_intentConfirmationSetting,+    updateIntentResponse_intentId,+    updateIntentResponse_intentName,+    updateIntentResponse_kendraConfiguration,+    updateIntentResponse_lastUpdatedDateTime,+    updateIntentResponse_localeId,+    updateIntentResponse_outputContexts,+    updateIntentResponse_parentIntentSignature,+    updateIntentResponse_sampleUtterances,+    updateIntentResponse_slotPriorities,+    updateIntentResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateIntent' smart constructor.+data UpdateIntent = UpdateIntent'+  { -- | The new description of the intent.+    description :: Prelude.Maybe Prelude.Text,+    -- | The new Lambda function to use between each turn of the conversation+    -- with the bot.+    dialogCodeHook :: Prelude.Maybe DialogCodeHookSettings,+    -- | The new Lambda function to call when all of the intents required slots+    -- are provided and the intent is ready for fulfillment.+    fulfillmentCodeHook :: Prelude.Maybe FulfillmentCodeHookSettings,+    initialResponseSetting :: Prelude.Maybe InitialResponseSetting,+    -- | A new list of contexts that must be active in order for Amazon Lex to+    -- consider the intent.+    inputContexts :: Prelude.Maybe [InputContext],+    -- | The new response that Amazon Lex sends the user when the intent is+    -- closed.+    intentClosingSetting :: Prelude.Maybe IntentClosingSetting,+    -- | New prompts that Amazon Lex sends to the user to confirm the completion+    -- of an intent.+    intentConfirmationSetting :: Prelude.Maybe IntentConfirmationSetting,+    -- | New configuration settings for connecting to an Amazon Kendra index.+    kendraConfiguration :: Prelude.Maybe KendraConfiguration,+    -- | A new list of contexts that Amazon Lex activates when the intent is+    -- fulfilled.+    outputContexts :: Prelude.Maybe [OutputContext],+    -- | The signature of the new built-in intent to use as the parent of this+    -- intent.+    parentIntentSignature :: Prelude.Maybe Prelude.Text,+    -- | New utterances used to invoke the intent.+    sampleUtterances :: Prelude.Maybe [SampleUtterance],+    -- | A new list of slots and their priorities that are contained by the+    -- intent.+    slotPriorities :: Prelude.Maybe [SlotPriority],+    -- | The unique identifier of the intent to update.+    intentId :: Prelude.Text,+    -- | The new name for the intent.+    intentName :: Prelude.Text,+    -- | The identifier of the bot that contains the intent.+    botId :: Prelude.Text,+    -- | The version of the bot that contains the intent. Must be @DRAFT@.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale where this intent is used. The+    -- string must match one of the supported locales. For more information,+    -- see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateIntent' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updateIntent_description' - The new description of the intent.+--+-- 'dialogCodeHook', 'updateIntent_dialogCodeHook' - The new Lambda function to use between each turn of the conversation+-- with the bot.+--+-- 'fulfillmentCodeHook', 'updateIntent_fulfillmentCodeHook' - The new Lambda function to call when all of the intents required slots+-- are provided and the intent is ready for fulfillment.+--+-- 'initialResponseSetting', 'updateIntent_initialResponseSetting' -+--+-- 'inputContexts', 'updateIntent_inputContexts' - A new list of contexts that must be active in order for Amazon Lex to+-- consider the intent.+--+-- 'intentClosingSetting', 'updateIntent_intentClosingSetting' - The new response that Amazon Lex sends the user when the intent is+-- closed.+--+-- 'intentConfirmationSetting', 'updateIntent_intentConfirmationSetting' - New prompts that Amazon Lex sends to the user to confirm the completion+-- of an intent.+--+-- 'kendraConfiguration', 'updateIntent_kendraConfiguration' - New configuration settings for connecting to an Amazon Kendra index.+--+-- 'outputContexts', 'updateIntent_outputContexts' - A new list of contexts that Amazon Lex activates when the intent is+-- fulfilled.+--+-- 'parentIntentSignature', 'updateIntent_parentIntentSignature' - The signature of the new built-in intent to use as the parent of this+-- intent.+--+-- 'sampleUtterances', 'updateIntent_sampleUtterances' - New utterances used to invoke the intent.+--+-- 'slotPriorities', 'updateIntent_slotPriorities' - A new list of slots and their priorities that are contained by the+-- intent.+--+-- 'intentId', 'updateIntent_intentId' - The unique identifier of the intent to update.+--+-- 'intentName', 'updateIntent_intentName' - The new name for the intent.+--+-- 'botId', 'updateIntent_botId' - The identifier of the bot that contains the intent.+--+-- 'botVersion', 'updateIntent_botVersion' - The version of the bot that contains the intent. Must be @DRAFT@.+--+-- 'localeId', 'updateIntent_localeId' - The identifier of the language and locale where this intent is used. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+newUpdateIntent ::+  -- | 'intentId'+  Prelude.Text ->+  -- | 'intentName'+  Prelude.Text ->+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  UpdateIntent+newUpdateIntent+  pIntentId_+  pIntentName_+  pBotId_+  pBotVersion_+  pLocaleId_ =+    UpdateIntent'+      { description = Prelude.Nothing,+        dialogCodeHook = Prelude.Nothing,+        fulfillmentCodeHook = Prelude.Nothing,+        initialResponseSetting = Prelude.Nothing,+        inputContexts = Prelude.Nothing,+        intentClosingSetting = Prelude.Nothing,+        intentConfirmationSetting = Prelude.Nothing,+        kendraConfiguration = Prelude.Nothing,+        outputContexts = Prelude.Nothing,+        parentIntentSignature = Prelude.Nothing,+        sampleUtterances = Prelude.Nothing,+        slotPriorities = Prelude.Nothing,+        intentId = pIntentId_,+        intentName = pIntentName_,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_+      }++-- | The new description of the intent.+updateIntent_description :: Lens.Lens' UpdateIntent (Prelude.Maybe Prelude.Text)+updateIntent_description = Lens.lens (\UpdateIntent' {description} -> description) (\s@UpdateIntent' {} a -> s {description = a} :: UpdateIntent)++-- | The new Lambda function to use between each turn of the conversation+-- with the bot.+updateIntent_dialogCodeHook :: Lens.Lens' UpdateIntent (Prelude.Maybe DialogCodeHookSettings)+updateIntent_dialogCodeHook = Lens.lens (\UpdateIntent' {dialogCodeHook} -> dialogCodeHook) (\s@UpdateIntent' {} a -> s {dialogCodeHook = a} :: UpdateIntent)++-- | The new Lambda function to call when all of the intents required slots+-- are provided and the intent is ready for fulfillment.+updateIntent_fulfillmentCodeHook :: Lens.Lens' UpdateIntent (Prelude.Maybe FulfillmentCodeHookSettings)+updateIntent_fulfillmentCodeHook = Lens.lens (\UpdateIntent' {fulfillmentCodeHook} -> fulfillmentCodeHook) (\s@UpdateIntent' {} a -> s {fulfillmentCodeHook = a} :: UpdateIntent)++updateIntent_initialResponseSetting :: Lens.Lens' UpdateIntent (Prelude.Maybe InitialResponseSetting)+updateIntent_initialResponseSetting = Lens.lens (\UpdateIntent' {initialResponseSetting} -> initialResponseSetting) (\s@UpdateIntent' {} a -> s {initialResponseSetting = a} :: UpdateIntent)++-- | A new list of contexts that must be active in order for Amazon Lex to+-- consider the intent.+updateIntent_inputContexts :: Lens.Lens' UpdateIntent (Prelude.Maybe [InputContext])+updateIntent_inputContexts = Lens.lens (\UpdateIntent' {inputContexts} -> inputContexts) (\s@UpdateIntent' {} a -> s {inputContexts = a} :: UpdateIntent) Prelude.. Lens.mapping Lens.coerced++-- | The new response that Amazon Lex sends the user when the intent is+-- closed.+updateIntent_intentClosingSetting :: Lens.Lens' UpdateIntent (Prelude.Maybe IntentClosingSetting)+updateIntent_intentClosingSetting = Lens.lens (\UpdateIntent' {intentClosingSetting} -> intentClosingSetting) (\s@UpdateIntent' {} a -> s {intentClosingSetting = a} :: UpdateIntent)++-- | New prompts that Amazon Lex sends to the user to confirm the completion+-- of an intent.+updateIntent_intentConfirmationSetting :: Lens.Lens' UpdateIntent (Prelude.Maybe IntentConfirmationSetting)+updateIntent_intentConfirmationSetting = Lens.lens (\UpdateIntent' {intentConfirmationSetting} -> intentConfirmationSetting) (\s@UpdateIntent' {} a -> s {intentConfirmationSetting = a} :: UpdateIntent)++-- | New configuration settings for connecting to an Amazon Kendra index.+updateIntent_kendraConfiguration :: Lens.Lens' UpdateIntent (Prelude.Maybe KendraConfiguration)+updateIntent_kendraConfiguration = Lens.lens (\UpdateIntent' {kendraConfiguration} -> kendraConfiguration) (\s@UpdateIntent' {} a -> s {kendraConfiguration = a} :: UpdateIntent)++-- | A new list of contexts that Amazon Lex activates when the intent is+-- fulfilled.+updateIntent_outputContexts :: Lens.Lens' UpdateIntent (Prelude.Maybe [OutputContext])+updateIntent_outputContexts = Lens.lens (\UpdateIntent' {outputContexts} -> outputContexts) (\s@UpdateIntent' {} a -> s {outputContexts = a} :: UpdateIntent) Prelude.. Lens.mapping Lens.coerced++-- | The signature of the new built-in intent to use as the parent of this+-- intent.+updateIntent_parentIntentSignature :: Lens.Lens' UpdateIntent (Prelude.Maybe Prelude.Text)+updateIntent_parentIntentSignature = Lens.lens (\UpdateIntent' {parentIntentSignature} -> parentIntentSignature) (\s@UpdateIntent' {} a -> s {parentIntentSignature = a} :: UpdateIntent)++-- | New utterances used to invoke the intent.+updateIntent_sampleUtterances :: Lens.Lens' UpdateIntent (Prelude.Maybe [SampleUtterance])+updateIntent_sampleUtterances = Lens.lens (\UpdateIntent' {sampleUtterances} -> sampleUtterances) (\s@UpdateIntent' {} a -> s {sampleUtterances = a} :: UpdateIntent) Prelude.. Lens.mapping Lens.coerced++-- | A new list of slots and their priorities that are contained by the+-- intent.+updateIntent_slotPriorities :: Lens.Lens' UpdateIntent (Prelude.Maybe [SlotPriority])+updateIntent_slotPriorities = Lens.lens (\UpdateIntent' {slotPriorities} -> slotPriorities) (\s@UpdateIntent' {} a -> s {slotPriorities = a} :: UpdateIntent) Prelude.. Lens.mapping Lens.coerced++-- | The unique identifier of the intent to update.+updateIntent_intentId :: Lens.Lens' UpdateIntent Prelude.Text+updateIntent_intentId = Lens.lens (\UpdateIntent' {intentId} -> intentId) (\s@UpdateIntent' {} a -> s {intentId = a} :: UpdateIntent)++-- | The new name for the intent.+updateIntent_intentName :: Lens.Lens' UpdateIntent Prelude.Text+updateIntent_intentName = Lens.lens (\UpdateIntent' {intentName} -> intentName) (\s@UpdateIntent' {} a -> s {intentName = a} :: UpdateIntent)++-- | The identifier of the bot that contains the intent.+updateIntent_botId :: Lens.Lens' UpdateIntent Prelude.Text+updateIntent_botId = Lens.lens (\UpdateIntent' {botId} -> botId) (\s@UpdateIntent' {} a -> s {botId = a} :: UpdateIntent)++-- | The version of the bot that contains the intent. Must be @DRAFT@.+updateIntent_botVersion :: Lens.Lens' UpdateIntent Prelude.Text+updateIntent_botVersion = Lens.lens (\UpdateIntent' {botVersion} -> botVersion) (\s@UpdateIntent' {} a -> s {botVersion = a} :: UpdateIntent)++-- | The identifier of the language and locale where this intent is used. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+updateIntent_localeId :: Lens.Lens' UpdateIntent Prelude.Text+updateIntent_localeId = Lens.lens (\UpdateIntent' {localeId} -> localeId) (\s@UpdateIntent' {} a -> s {localeId = a} :: UpdateIntent)++instance Core.AWSRequest UpdateIntent where+  type AWSResponse UpdateIntent = UpdateIntentResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateIntentResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "dialogCodeHook")+            Prelude.<*> (x Data..?> "fulfillmentCodeHook")+            Prelude.<*> (x Data..?> "initialResponseSetting")+            Prelude.<*> (x Data..?> "inputContexts" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "intentClosingSetting")+            Prelude.<*> (x Data..?> "intentConfirmationSetting")+            Prelude.<*> (x Data..?> "intentId")+            Prelude.<*> (x Data..?> "intentName")+            Prelude.<*> (x Data..?> "kendraConfiguration")+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "outputContexts" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "parentIntentSignature")+            Prelude.<*> ( x+                            Data..?> "sampleUtterances"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "slotPriorities" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateIntent where+  hashWithSalt _salt UpdateIntent' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` dialogCodeHook+      `Prelude.hashWithSalt` fulfillmentCodeHook+      `Prelude.hashWithSalt` initialResponseSetting+      `Prelude.hashWithSalt` inputContexts+      `Prelude.hashWithSalt` intentClosingSetting+      `Prelude.hashWithSalt` intentConfirmationSetting+      `Prelude.hashWithSalt` kendraConfiguration+      `Prelude.hashWithSalt` outputContexts+      `Prelude.hashWithSalt` parentIntentSignature+      `Prelude.hashWithSalt` sampleUtterances+      `Prelude.hashWithSalt` slotPriorities+      `Prelude.hashWithSalt` intentId+      `Prelude.hashWithSalt` intentName+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData UpdateIntent where+  rnf UpdateIntent' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf dialogCodeHook+      `Prelude.seq` Prelude.rnf fulfillmentCodeHook+      `Prelude.seq` Prelude.rnf initialResponseSetting+      `Prelude.seq` Prelude.rnf inputContexts+      `Prelude.seq` Prelude.rnf intentClosingSetting+      `Prelude.seq` Prelude.rnf intentConfirmationSetting+      `Prelude.seq` Prelude.rnf kendraConfiguration+      `Prelude.seq` Prelude.rnf outputContexts+      `Prelude.seq` Prelude.rnf parentIntentSignature+      `Prelude.seq` Prelude.rnf sampleUtterances+      `Prelude.seq` Prelude.rnf slotPriorities+      `Prelude.seq` Prelude.rnf intentId+      `Prelude.seq` Prelude.rnf intentName+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders UpdateIntent where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateIntent where+  toJSON UpdateIntent' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("dialogCodeHook" Data..=)+              Prelude.<$> dialogCodeHook,+            ("fulfillmentCodeHook" Data..=)+              Prelude.<$> fulfillmentCodeHook,+            ("initialResponseSetting" Data..=)+              Prelude.<$> initialResponseSetting,+            ("inputContexts" Data..=) Prelude.<$> inputContexts,+            ("intentClosingSetting" Data..=)+              Prelude.<$> intentClosingSetting,+            ("intentConfirmationSetting" Data..=)+              Prelude.<$> intentConfirmationSetting,+            ("kendraConfiguration" Data..=)+              Prelude.<$> kendraConfiguration,+            ("outputContexts" Data..=)+              Prelude.<$> outputContexts,+            ("parentIntentSignature" Data..=)+              Prelude.<$> parentIntentSignature,+            ("sampleUtterances" Data..=)+              Prelude.<$> sampleUtterances,+            ("slotPriorities" Data..=)+              Prelude.<$> slotPriorities,+            Prelude.Just ("intentName" Data..= intentName)+          ]+      )++instance Data.ToPath UpdateIntent where+  toPath UpdateIntent' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/intents/",+        Data.toBS intentId,+        "/"+      ]++instance Data.ToQuery UpdateIntent where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateIntentResponse' smart constructor.+data UpdateIntentResponse = UpdateIntentResponse'+  { -- | The identifier of the bot that contains the intent.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot that contains the intent. Will always be @DRAFT@.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | A timestamp of when the intent was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The updated description of the intent.+    description :: Prelude.Maybe Prelude.Text,+    -- | The updated Lambda function called during each turn of the conversation+    -- with the user.+    dialogCodeHook :: Prelude.Maybe DialogCodeHookSettings,+    -- | The updated Lambda function called when the intent is ready for+    -- fulfillment.+    fulfillmentCodeHook :: Prelude.Maybe FulfillmentCodeHookSettings,+    initialResponseSetting :: Prelude.Maybe InitialResponseSetting,+    -- | The updated list of contexts that must be active for the intent to be+    -- considered by Amazon Lex.+    inputContexts :: Prelude.Maybe [InputContext],+    -- | The updated response that Amazon Lex sends the user when the intent is+    -- closed.+    intentClosingSetting :: Prelude.Maybe IntentClosingSetting,+    -- | The updated prompts that Amazon Lex sends to the user to confirm the+    -- completion of an intent.+    intentConfirmationSetting :: Prelude.Maybe IntentConfirmationSetting,+    -- | The identifier of the intent that was updated.+    intentId :: Prelude.Maybe Prelude.Text,+    -- | The updated name of the intent.+    intentName :: Prelude.Maybe Prelude.Text,+    -- | The updated configuration for connecting to an Amazon Kendra index with+    -- the @AMAZON.KendraSearchIntent@ intent.+    kendraConfiguration :: Prelude.Maybe KendraConfiguration,+    -- | A timestamp of the last time that the intent was modified.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The updated language and locale of the intent.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The updated list of contexts that Amazon Lex activates when the intent+    -- is fulfilled.+    outputContexts :: Prelude.Maybe [OutputContext],+    -- | The updated built-in intent that is the parent of this intent.+    parentIntentSignature :: Prelude.Maybe Prelude.Text,+    -- | The updated list of sample utterances for the intent.+    sampleUtterances :: Prelude.Maybe [SampleUtterance],+    -- | The updated list of slots and their priorities that are elicited from+    -- the user for the intent.+    slotPriorities :: Prelude.Maybe [SlotPriority],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateIntentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'updateIntentResponse_botId' - The identifier of the bot that contains the intent.+--+-- 'botVersion', 'updateIntentResponse_botVersion' - The version of the bot that contains the intent. Will always be @DRAFT@.+--+-- 'creationDateTime', 'updateIntentResponse_creationDateTime' - A timestamp of when the intent was created.+--+-- 'description', 'updateIntentResponse_description' - The updated description of the intent.+--+-- 'dialogCodeHook', 'updateIntentResponse_dialogCodeHook' - The updated Lambda function called during each turn of the conversation+-- with the user.+--+-- 'fulfillmentCodeHook', 'updateIntentResponse_fulfillmentCodeHook' - The updated Lambda function called when the intent is ready for+-- fulfillment.+--+-- 'initialResponseSetting', 'updateIntentResponse_initialResponseSetting' -+--+-- 'inputContexts', 'updateIntentResponse_inputContexts' - The updated list of contexts that must be active for the intent to be+-- considered by Amazon Lex.+--+-- 'intentClosingSetting', 'updateIntentResponse_intentClosingSetting' - The updated response that Amazon Lex sends the user when the intent is+-- closed.+--+-- 'intentConfirmationSetting', 'updateIntentResponse_intentConfirmationSetting' - The updated prompts that Amazon Lex sends to the user to confirm the+-- completion of an intent.+--+-- 'intentId', 'updateIntentResponse_intentId' - The identifier of the intent that was updated.+--+-- 'intentName', 'updateIntentResponse_intentName' - The updated name of the intent.+--+-- 'kendraConfiguration', 'updateIntentResponse_kendraConfiguration' - The updated configuration for connecting to an Amazon Kendra index with+-- the @AMAZON.KendraSearchIntent@ intent.+--+-- 'lastUpdatedDateTime', 'updateIntentResponse_lastUpdatedDateTime' - A timestamp of the last time that the intent was modified.+--+-- 'localeId', 'updateIntentResponse_localeId' - The updated language and locale of the intent.+--+-- 'outputContexts', 'updateIntentResponse_outputContexts' - The updated list of contexts that Amazon Lex activates when the intent+-- is fulfilled.+--+-- 'parentIntentSignature', 'updateIntentResponse_parentIntentSignature' - The updated built-in intent that is the parent of this intent.+--+-- 'sampleUtterances', 'updateIntentResponse_sampleUtterances' - The updated list of sample utterances for the intent.+--+-- 'slotPriorities', 'updateIntentResponse_slotPriorities' - The updated list of slots and their priorities that are elicited from+-- the user for the intent.+--+-- 'httpStatus', 'updateIntentResponse_httpStatus' - The response's http status code.+newUpdateIntentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateIntentResponse+newUpdateIntentResponse pHttpStatus_ =+  UpdateIntentResponse'+    { botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      dialogCodeHook = Prelude.Nothing,+      fulfillmentCodeHook = Prelude.Nothing,+      initialResponseSetting = Prelude.Nothing,+      inputContexts = Prelude.Nothing,+      intentClosingSetting = Prelude.Nothing,+      intentConfirmationSetting = Prelude.Nothing,+      intentId = Prelude.Nothing,+      intentName = Prelude.Nothing,+      kendraConfiguration = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      localeId = Prelude.Nothing,+      outputContexts = Prelude.Nothing,+      parentIntentSignature = Prelude.Nothing,+      sampleUtterances = Prelude.Nothing,+      slotPriorities = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot that contains the intent.+updateIntentResponse_botId :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe Prelude.Text)+updateIntentResponse_botId = Lens.lens (\UpdateIntentResponse' {botId} -> botId) (\s@UpdateIntentResponse' {} a -> s {botId = a} :: UpdateIntentResponse)++-- | The version of the bot that contains the intent. Will always be @DRAFT@.+updateIntentResponse_botVersion :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe Prelude.Text)+updateIntentResponse_botVersion = Lens.lens (\UpdateIntentResponse' {botVersion} -> botVersion) (\s@UpdateIntentResponse' {} a -> s {botVersion = a} :: UpdateIntentResponse)++-- | A timestamp of when the intent was created.+updateIntentResponse_creationDateTime :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe Prelude.UTCTime)+updateIntentResponse_creationDateTime = Lens.lens (\UpdateIntentResponse' {creationDateTime} -> creationDateTime) (\s@UpdateIntentResponse' {} a -> s {creationDateTime = a} :: UpdateIntentResponse) Prelude.. Lens.mapping Data._Time++-- | The updated description of the intent.+updateIntentResponse_description :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe Prelude.Text)+updateIntentResponse_description = Lens.lens (\UpdateIntentResponse' {description} -> description) (\s@UpdateIntentResponse' {} a -> s {description = a} :: UpdateIntentResponse)++-- | The updated Lambda function called during each turn of the conversation+-- with the user.+updateIntentResponse_dialogCodeHook :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe DialogCodeHookSettings)+updateIntentResponse_dialogCodeHook = Lens.lens (\UpdateIntentResponse' {dialogCodeHook} -> dialogCodeHook) (\s@UpdateIntentResponse' {} a -> s {dialogCodeHook = a} :: UpdateIntentResponse)++-- | The updated Lambda function called when the intent is ready for+-- fulfillment.+updateIntentResponse_fulfillmentCodeHook :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe FulfillmentCodeHookSettings)+updateIntentResponse_fulfillmentCodeHook = Lens.lens (\UpdateIntentResponse' {fulfillmentCodeHook} -> fulfillmentCodeHook) (\s@UpdateIntentResponse' {} a -> s {fulfillmentCodeHook = a} :: UpdateIntentResponse)++updateIntentResponse_initialResponseSetting :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe InitialResponseSetting)+updateIntentResponse_initialResponseSetting = Lens.lens (\UpdateIntentResponse' {initialResponseSetting} -> initialResponseSetting) (\s@UpdateIntentResponse' {} a -> s {initialResponseSetting = a} :: UpdateIntentResponse)++-- | The updated list of contexts that must be active for the intent to be+-- considered by Amazon Lex.+updateIntentResponse_inputContexts :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe [InputContext])+updateIntentResponse_inputContexts = Lens.lens (\UpdateIntentResponse' {inputContexts} -> inputContexts) (\s@UpdateIntentResponse' {} a -> s {inputContexts = a} :: UpdateIntentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The updated response that Amazon Lex sends the user when the intent is+-- closed.+updateIntentResponse_intentClosingSetting :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe IntentClosingSetting)+updateIntentResponse_intentClosingSetting = Lens.lens (\UpdateIntentResponse' {intentClosingSetting} -> intentClosingSetting) (\s@UpdateIntentResponse' {} a -> s {intentClosingSetting = a} :: UpdateIntentResponse)++-- | The updated prompts that Amazon Lex sends to the user to confirm the+-- completion of an intent.+updateIntentResponse_intentConfirmationSetting :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe IntentConfirmationSetting)+updateIntentResponse_intentConfirmationSetting = Lens.lens (\UpdateIntentResponse' {intentConfirmationSetting} -> intentConfirmationSetting) (\s@UpdateIntentResponse' {} a -> s {intentConfirmationSetting = a} :: UpdateIntentResponse)++-- | The identifier of the intent that was updated.+updateIntentResponse_intentId :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe Prelude.Text)+updateIntentResponse_intentId = Lens.lens (\UpdateIntentResponse' {intentId} -> intentId) (\s@UpdateIntentResponse' {} a -> s {intentId = a} :: UpdateIntentResponse)++-- | The updated name of the intent.+updateIntentResponse_intentName :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe Prelude.Text)+updateIntentResponse_intentName = Lens.lens (\UpdateIntentResponse' {intentName} -> intentName) (\s@UpdateIntentResponse' {} a -> s {intentName = a} :: UpdateIntentResponse)++-- | The updated configuration for connecting to an Amazon Kendra index with+-- the @AMAZON.KendraSearchIntent@ intent.+updateIntentResponse_kendraConfiguration :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe KendraConfiguration)+updateIntentResponse_kendraConfiguration = Lens.lens (\UpdateIntentResponse' {kendraConfiguration} -> kendraConfiguration) (\s@UpdateIntentResponse' {} a -> s {kendraConfiguration = a} :: UpdateIntentResponse)++-- | A timestamp of the last time that the intent was modified.+updateIntentResponse_lastUpdatedDateTime :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe Prelude.UTCTime)+updateIntentResponse_lastUpdatedDateTime = Lens.lens (\UpdateIntentResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@UpdateIntentResponse' {} a -> s {lastUpdatedDateTime = a} :: UpdateIntentResponse) Prelude.. Lens.mapping Data._Time++-- | The updated language and locale of the intent.+updateIntentResponse_localeId :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe Prelude.Text)+updateIntentResponse_localeId = Lens.lens (\UpdateIntentResponse' {localeId} -> localeId) (\s@UpdateIntentResponse' {} a -> s {localeId = a} :: UpdateIntentResponse)++-- | The updated list of contexts that Amazon Lex activates when the intent+-- is fulfilled.+updateIntentResponse_outputContexts :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe [OutputContext])+updateIntentResponse_outputContexts = Lens.lens (\UpdateIntentResponse' {outputContexts} -> outputContexts) (\s@UpdateIntentResponse' {} a -> s {outputContexts = a} :: UpdateIntentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The updated built-in intent that is the parent of this intent.+updateIntentResponse_parentIntentSignature :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe Prelude.Text)+updateIntentResponse_parentIntentSignature = Lens.lens (\UpdateIntentResponse' {parentIntentSignature} -> parentIntentSignature) (\s@UpdateIntentResponse' {} a -> s {parentIntentSignature = a} :: UpdateIntentResponse)++-- | The updated list of sample utterances for the intent.+updateIntentResponse_sampleUtterances :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe [SampleUtterance])+updateIntentResponse_sampleUtterances = Lens.lens (\UpdateIntentResponse' {sampleUtterances} -> sampleUtterances) (\s@UpdateIntentResponse' {} a -> s {sampleUtterances = a} :: UpdateIntentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The updated list of slots and their priorities that are elicited from+-- the user for the intent.+updateIntentResponse_slotPriorities :: Lens.Lens' UpdateIntentResponse (Prelude.Maybe [SlotPriority])+updateIntentResponse_slotPriorities = Lens.lens (\UpdateIntentResponse' {slotPriorities} -> slotPriorities) (\s@UpdateIntentResponse' {} a -> s {slotPriorities = a} :: UpdateIntentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+updateIntentResponse_httpStatus :: Lens.Lens' UpdateIntentResponse Prelude.Int+updateIntentResponse_httpStatus = Lens.lens (\UpdateIntentResponse' {httpStatus} -> httpStatus) (\s@UpdateIntentResponse' {} a -> s {httpStatus = a} :: UpdateIntentResponse)++instance Prelude.NFData UpdateIntentResponse where+  rnf UpdateIntentResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf dialogCodeHook+      `Prelude.seq` Prelude.rnf fulfillmentCodeHook+      `Prelude.seq` Prelude.rnf initialResponseSetting+      `Prelude.seq` Prelude.rnf inputContexts+      `Prelude.seq` Prelude.rnf intentClosingSetting+      `Prelude.seq` Prelude.rnf intentConfirmationSetting+      `Prelude.seq` Prelude.rnf intentId+      `Prelude.seq` Prelude.rnf intentName+      `Prelude.seq` Prelude.rnf kendraConfiguration+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf outputContexts+      `Prelude.seq` Prelude.rnf parentIntentSignature+      `Prelude.seq` Prelude.rnf sampleUtterances+      `Prelude.seq` Prelude.rnf slotPriorities+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/UpdateResourcePolicy.hs view
@@ -0,0 +1,263 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.UpdateResourcePolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Replaces the existing resource policy for a bot or bot alias with a new+-- one. If the policy doesn\'t exist, Amazon Lex returns an exception.+module Amazonka.LexV2Models.UpdateResourcePolicy+  ( -- * Creating a Request+    UpdateResourcePolicy (..),+    newUpdateResourcePolicy,++    -- * Request Lenses+    updateResourcePolicy_expectedRevisionId,+    updateResourcePolicy_resourceArn,+    updateResourcePolicy_policy,++    -- * Destructuring the Response+    UpdateResourcePolicyResponse (..),+    newUpdateResourcePolicyResponse,++    -- * Response Lenses+    updateResourcePolicyResponse_resourceArn,+    updateResourcePolicyResponse_revisionId,+    updateResourcePolicyResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateResourcePolicy' smart constructor.+data UpdateResourcePolicy = UpdateResourcePolicy'+  { -- | The identifier of the revision of the policy to update. If this revision+    -- ID doesn\'t match the current revision ID, Amazon Lex throws an+    -- exception.+    --+    -- If you don\'t specify a revision, Amazon Lex overwrites the contents of+    -- the policy with the new values.+    expectedRevisionId :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+    -- policy is attached to.+    resourceArn :: Prelude.Text,+    -- | A resource policy to add to the resource. The policy is a JSON structure+    -- that contains one or more statements that define the policy. The policy+    -- must follow the IAM syntax. For more information about the contents of a+    -- JSON policy document, see+    -- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html IAM JSON policy reference>+    -- .+    --+    -- If the policy isn\'t valid, Amazon Lex returns a validation exception.+    policy :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateResourcePolicy' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'expectedRevisionId', 'updateResourcePolicy_expectedRevisionId' - The identifier of the revision of the policy to update. If this revision+-- ID doesn\'t match the current revision ID, Amazon Lex throws an+-- exception.+--+-- If you don\'t specify a revision, Amazon Lex overwrites the contents of+-- the policy with the new values.+--+-- 'resourceArn', 'updateResourcePolicy_resourceArn' - The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy is attached to.+--+-- 'policy', 'updateResourcePolicy_policy' - A resource policy to add to the resource. The policy is a JSON structure+-- that contains one or more statements that define the policy. The policy+-- must follow the IAM syntax. For more information about the contents of a+-- JSON policy document, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html IAM JSON policy reference>+-- .+--+-- If the policy isn\'t valid, Amazon Lex returns a validation exception.+newUpdateResourcePolicy ::+  -- | 'resourceArn'+  Prelude.Text ->+  -- | 'policy'+  Prelude.Text ->+  UpdateResourcePolicy+newUpdateResourcePolicy pResourceArn_ pPolicy_ =+  UpdateResourcePolicy'+    { expectedRevisionId =+        Prelude.Nothing,+      resourceArn = pResourceArn_,+      policy = pPolicy_+    }++-- | The identifier of the revision of the policy to update. If this revision+-- ID doesn\'t match the current revision ID, Amazon Lex throws an+-- exception.+--+-- If you don\'t specify a revision, Amazon Lex overwrites the contents of+-- the policy with the new values.+updateResourcePolicy_expectedRevisionId :: Lens.Lens' UpdateResourcePolicy (Prelude.Maybe Prelude.Text)+updateResourcePolicy_expectedRevisionId = Lens.lens (\UpdateResourcePolicy' {expectedRevisionId} -> expectedRevisionId) (\s@UpdateResourcePolicy' {} a -> s {expectedRevisionId = a} :: UpdateResourcePolicy)++-- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy is attached to.+updateResourcePolicy_resourceArn :: Lens.Lens' UpdateResourcePolicy Prelude.Text+updateResourcePolicy_resourceArn = Lens.lens (\UpdateResourcePolicy' {resourceArn} -> resourceArn) (\s@UpdateResourcePolicy' {} a -> s {resourceArn = a} :: UpdateResourcePolicy)++-- | A resource policy to add to the resource. The policy is a JSON structure+-- that contains one or more statements that define the policy. The policy+-- must follow the IAM syntax. For more information about the contents of a+-- JSON policy document, see+-- <https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html IAM JSON policy reference>+-- .+--+-- If the policy isn\'t valid, Amazon Lex returns a validation exception.+updateResourcePolicy_policy :: Lens.Lens' UpdateResourcePolicy Prelude.Text+updateResourcePolicy_policy = Lens.lens (\UpdateResourcePolicy' {policy} -> policy) (\s@UpdateResourcePolicy' {} a -> s {policy = a} :: UpdateResourcePolicy)++instance Core.AWSRequest UpdateResourcePolicy where+  type+    AWSResponse UpdateResourcePolicy =+      UpdateResourcePolicyResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateResourcePolicyResponse'+            Prelude.<$> (x Data..?> "resourceArn")+            Prelude.<*> (x Data..?> "revisionId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateResourcePolicy where+  hashWithSalt _salt UpdateResourcePolicy' {..} =+    _salt+      `Prelude.hashWithSalt` expectedRevisionId+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` policy++instance Prelude.NFData UpdateResourcePolicy where+  rnf UpdateResourcePolicy' {..} =+    Prelude.rnf expectedRevisionId+      `Prelude.seq` Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf policy++instance Data.ToHeaders UpdateResourcePolicy where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateResourcePolicy where+  toJSON UpdateResourcePolicy' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("policy" Data..= policy)]+      )++instance Data.ToPath UpdateResourcePolicy where+  toPath UpdateResourcePolicy' {..} =+    Prelude.mconcat+      ["/policy/", Data.toBS resourceArn, "/"]++instance Data.ToQuery UpdateResourcePolicy where+  toQuery UpdateResourcePolicy' {..} =+    Prelude.mconcat+      ["expectedRevisionId" Data.=: expectedRevisionId]++-- | /See:/ 'newUpdateResourcePolicyResponse' smart constructor.+data UpdateResourcePolicyResponse = UpdateResourcePolicyResponse'+  { -- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+    -- policy is attached to.+    resourceArn :: Prelude.Maybe Prelude.Text,+    -- | The current revision of the resource policy. Use the revision ID to make+    -- sure that you are updating the most current version of a resource policy+    -- when you add a policy statement to a resource, delete a resource, or+    -- update a resource.+    revisionId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateResourcePolicyResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'updateResourcePolicyResponse_resourceArn' - The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy is attached to.+--+-- 'revisionId', 'updateResourcePolicyResponse_revisionId' - The current revision of the resource policy. Use the revision ID to make+-- sure that you are updating the most current version of a resource policy+-- when you add a policy statement to a resource, delete a resource, or+-- update a resource.+--+-- 'httpStatus', 'updateResourcePolicyResponse_httpStatus' - The response's http status code.+newUpdateResourcePolicyResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateResourcePolicyResponse+newUpdateResourcePolicyResponse pHttpStatus_ =+  UpdateResourcePolicyResponse'+    { resourceArn =+        Prelude.Nothing,+      revisionId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Amazon Resource Name (ARN) of the bot or bot alias that the resource+-- policy is attached to.+updateResourcePolicyResponse_resourceArn :: Lens.Lens' UpdateResourcePolicyResponse (Prelude.Maybe Prelude.Text)+updateResourcePolicyResponse_resourceArn = Lens.lens (\UpdateResourcePolicyResponse' {resourceArn} -> resourceArn) (\s@UpdateResourcePolicyResponse' {} a -> s {resourceArn = a} :: UpdateResourcePolicyResponse)++-- | The current revision of the resource policy. Use the revision ID to make+-- sure that you are updating the most current version of a resource policy+-- when you add a policy statement to a resource, delete a resource, or+-- update a resource.+updateResourcePolicyResponse_revisionId :: Lens.Lens' UpdateResourcePolicyResponse (Prelude.Maybe Prelude.Text)+updateResourcePolicyResponse_revisionId = Lens.lens (\UpdateResourcePolicyResponse' {revisionId} -> revisionId) (\s@UpdateResourcePolicyResponse' {} a -> s {revisionId = a} :: UpdateResourcePolicyResponse)++-- | The response's http status code.+updateResourcePolicyResponse_httpStatus :: Lens.Lens' UpdateResourcePolicyResponse Prelude.Int+updateResourcePolicyResponse_httpStatus = Lens.lens (\UpdateResourcePolicyResponse' {httpStatus} -> httpStatus) (\s@UpdateResourcePolicyResponse' {} a -> s {httpStatus = a} :: UpdateResourcePolicyResponse)++instance Prelude.NFData UpdateResourcePolicyResponse where+  rnf UpdateResourcePolicyResponse' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf revisionId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/UpdateSlot.hs view
@@ -0,0 +1,546 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.UpdateSlot+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the settings for a slot.+module Amazonka.LexV2Models.UpdateSlot+  ( -- * Creating a Request+    UpdateSlot (..),+    newUpdateSlot,++    -- * Request Lenses+    updateSlot_description,+    updateSlot_multipleValuesSetting,+    updateSlot_obfuscationSetting,+    updateSlot_slotTypeId,+    updateSlot_subSlotSetting,+    updateSlot_slotId,+    updateSlot_slotName,+    updateSlot_valueElicitationSetting,+    updateSlot_botId,+    updateSlot_botVersion,+    updateSlot_localeId,+    updateSlot_intentId,++    -- * Destructuring the Response+    UpdateSlotResponse (..),+    newUpdateSlotResponse,++    -- * Response Lenses+    updateSlotResponse_botId,+    updateSlotResponse_botVersion,+    updateSlotResponse_creationDateTime,+    updateSlotResponse_description,+    updateSlotResponse_intentId,+    updateSlotResponse_lastUpdatedDateTime,+    updateSlotResponse_localeId,+    updateSlotResponse_multipleValuesSetting,+    updateSlotResponse_obfuscationSetting,+    updateSlotResponse_slotId,+    updateSlotResponse_slotName,+    updateSlotResponse_slotTypeId,+    updateSlotResponse_subSlotSetting,+    updateSlotResponse_valueElicitationSetting,+    updateSlotResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateSlot' smart constructor.+data UpdateSlot = UpdateSlot'+  { -- | The new description for the slot.+    description :: Prelude.Maybe Prelude.Text,+    -- | Determines whether the slot accepts multiple values in one response.+    -- Multiple value slots are only available in the en-US locale. If you set+    -- this value to @true@ in any other locale, Amazon Lex throws a+    -- @ValidationException@.+    --+    -- If the @multipleValuesSetting@ is not set, the default value is @false@.+    multipleValuesSetting :: Prelude.Maybe MultipleValuesSetting,+    -- | New settings that determine how slot values are formatted in Amazon+    -- CloudWatch logs.+    obfuscationSetting :: Prelude.Maybe ObfuscationSetting,+    -- | The unique identifier of the new slot type to associate with this slot.+    slotTypeId :: Prelude.Maybe Prelude.Text,+    -- | Specifications for the constituent sub slots and the expression for the+    -- composite slot.+    subSlotSetting :: Prelude.Maybe SubSlotSetting,+    -- | The unique identifier for the slot to update.+    slotId :: Prelude.Text,+    -- | The new name for the slot.+    slotName :: Prelude.Text,+    -- | A new set of prompts that Amazon Lex sends to the user to elicit a+    -- response the provides a value for the slot.+    valueElicitationSetting :: SlotValueElicitationSetting,+    -- | The unique identifier of the bot that contains the slot.+    botId :: Prelude.Text,+    -- | The version of the bot that contains the slot. Must always be @DRAFT@.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale that contains the slot. The+    -- string must match one of the supported locales. For more information,+    -- see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text,+    -- | The identifier of the intent that contains the slot.+    intentId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSlot' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'description', 'updateSlot_description' - The new description for the slot.+--+-- 'multipleValuesSetting', 'updateSlot_multipleValuesSetting' - Determines whether the slot accepts multiple values in one response.+-- Multiple value slots are only available in the en-US locale. If you set+-- this value to @true@ in any other locale, Amazon Lex throws a+-- @ValidationException@.+--+-- If the @multipleValuesSetting@ is not set, the default value is @false@.+--+-- 'obfuscationSetting', 'updateSlot_obfuscationSetting' - New settings that determine how slot values are formatted in Amazon+-- CloudWatch logs.+--+-- 'slotTypeId', 'updateSlot_slotTypeId' - The unique identifier of the new slot type to associate with this slot.+--+-- 'subSlotSetting', 'updateSlot_subSlotSetting' - Specifications for the constituent sub slots and the expression for the+-- composite slot.+--+-- 'slotId', 'updateSlot_slotId' - The unique identifier for the slot to update.+--+-- 'slotName', 'updateSlot_slotName' - The new name for the slot.+--+-- 'valueElicitationSetting', 'updateSlot_valueElicitationSetting' - A new set of prompts that Amazon Lex sends to the user to elicit a+-- response the provides a value for the slot.+--+-- 'botId', 'updateSlot_botId' - The unique identifier of the bot that contains the slot.+--+-- 'botVersion', 'updateSlot_botVersion' - The version of the bot that contains the slot. Must always be @DRAFT@.+--+-- 'localeId', 'updateSlot_localeId' - The identifier of the language and locale that contains the slot. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+--+-- 'intentId', 'updateSlot_intentId' - The identifier of the intent that contains the slot.+newUpdateSlot ::+  -- | 'slotId'+  Prelude.Text ->+  -- | 'slotName'+  Prelude.Text ->+  -- | 'valueElicitationSetting'+  SlotValueElicitationSetting ->+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  -- | 'intentId'+  Prelude.Text ->+  UpdateSlot+newUpdateSlot+  pSlotId_+  pSlotName_+  pValueElicitationSetting_+  pBotId_+  pBotVersion_+  pLocaleId_+  pIntentId_ =+    UpdateSlot'+      { description = Prelude.Nothing,+        multipleValuesSetting = Prelude.Nothing,+        obfuscationSetting = Prelude.Nothing,+        slotTypeId = Prelude.Nothing,+        subSlotSetting = Prelude.Nothing,+        slotId = pSlotId_,+        slotName = pSlotName_,+        valueElicitationSetting = pValueElicitationSetting_,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_,+        intentId = pIntentId_+      }++-- | The new description for the slot.+updateSlot_description :: Lens.Lens' UpdateSlot (Prelude.Maybe Prelude.Text)+updateSlot_description = Lens.lens (\UpdateSlot' {description} -> description) (\s@UpdateSlot' {} a -> s {description = a} :: UpdateSlot)++-- | Determines whether the slot accepts multiple values in one response.+-- Multiple value slots are only available in the en-US locale. If you set+-- this value to @true@ in any other locale, Amazon Lex throws a+-- @ValidationException@.+--+-- If the @multipleValuesSetting@ is not set, the default value is @false@.+updateSlot_multipleValuesSetting :: Lens.Lens' UpdateSlot (Prelude.Maybe MultipleValuesSetting)+updateSlot_multipleValuesSetting = Lens.lens (\UpdateSlot' {multipleValuesSetting} -> multipleValuesSetting) (\s@UpdateSlot' {} a -> s {multipleValuesSetting = a} :: UpdateSlot)++-- | New settings that determine how slot values are formatted in Amazon+-- CloudWatch logs.+updateSlot_obfuscationSetting :: Lens.Lens' UpdateSlot (Prelude.Maybe ObfuscationSetting)+updateSlot_obfuscationSetting = Lens.lens (\UpdateSlot' {obfuscationSetting} -> obfuscationSetting) (\s@UpdateSlot' {} a -> s {obfuscationSetting = a} :: UpdateSlot)++-- | The unique identifier of the new slot type to associate with this slot.+updateSlot_slotTypeId :: Lens.Lens' UpdateSlot (Prelude.Maybe Prelude.Text)+updateSlot_slotTypeId = Lens.lens (\UpdateSlot' {slotTypeId} -> slotTypeId) (\s@UpdateSlot' {} a -> s {slotTypeId = a} :: UpdateSlot)++-- | Specifications for the constituent sub slots and the expression for the+-- composite slot.+updateSlot_subSlotSetting :: Lens.Lens' UpdateSlot (Prelude.Maybe SubSlotSetting)+updateSlot_subSlotSetting = Lens.lens (\UpdateSlot' {subSlotSetting} -> subSlotSetting) (\s@UpdateSlot' {} a -> s {subSlotSetting = a} :: UpdateSlot)++-- | The unique identifier for the slot to update.+updateSlot_slotId :: Lens.Lens' UpdateSlot Prelude.Text+updateSlot_slotId = Lens.lens (\UpdateSlot' {slotId} -> slotId) (\s@UpdateSlot' {} a -> s {slotId = a} :: UpdateSlot)++-- | The new name for the slot.+updateSlot_slotName :: Lens.Lens' UpdateSlot Prelude.Text+updateSlot_slotName = Lens.lens (\UpdateSlot' {slotName} -> slotName) (\s@UpdateSlot' {} a -> s {slotName = a} :: UpdateSlot)++-- | A new set of prompts that Amazon Lex sends to the user to elicit a+-- response the provides a value for the slot.+updateSlot_valueElicitationSetting :: Lens.Lens' UpdateSlot SlotValueElicitationSetting+updateSlot_valueElicitationSetting = Lens.lens (\UpdateSlot' {valueElicitationSetting} -> valueElicitationSetting) (\s@UpdateSlot' {} a -> s {valueElicitationSetting = a} :: UpdateSlot)++-- | The unique identifier of the bot that contains the slot.+updateSlot_botId :: Lens.Lens' UpdateSlot Prelude.Text+updateSlot_botId = Lens.lens (\UpdateSlot' {botId} -> botId) (\s@UpdateSlot' {} a -> s {botId = a} :: UpdateSlot)++-- | The version of the bot that contains the slot. Must always be @DRAFT@.+updateSlot_botVersion :: Lens.Lens' UpdateSlot Prelude.Text+updateSlot_botVersion = Lens.lens (\UpdateSlot' {botVersion} -> botVersion) (\s@UpdateSlot' {} a -> s {botVersion = a} :: UpdateSlot)++-- | The identifier of the language and locale that contains the slot. The+-- string must match one of the supported locales. For more information,+-- see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+updateSlot_localeId :: Lens.Lens' UpdateSlot Prelude.Text+updateSlot_localeId = Lens.lens (\UpdateSlot' {localeId} -> localeId) (\s@UpdateSlot' {} a -> s {localeId = a} :: UpdateSlot)++-- | The identifier of the intent that contains the slot.+updateSlot_intentId :: Lens.Lens' UpdateSlot Prelude.Text+updateSlot_intentId = Lens.lens (\UpdateSlot' {intentId} -> intentId) (\s@UpdateSlot' {} a -> s {intentId = a} :: UpdateSlot)++instance Core.AWSRequest UpdateSlot where+  type AWSResponse UpdateSlot = UpdateSlotResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateSlotResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "intentId")+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "multipleValuesSetting")+            Prelude.<*> (x Data..?> "obfuscationSetting")+            Prelude.<*> (x Data..?> "slotId")+            Prelude.<*> (x Data..?> "slotName")+            Prelude.<*> (x Data..?> "slotTypeId")+            Prelude.<*> (x Data..?> "subSlotSetting")+            Prelude.<*> (x Data..?> "valueElicitationSetting")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateSlot where+  hashWithSalt _salt UpdateSlot' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` multipleValuesSetting+      `Prelude.hashWithSalt` obfuscationSetting+      `Prelude.hashWithSalt` slotTypeId+      `Prelude.hashWithSalt` subSlotSetting+      `Prelude.hashWithSalt` slotId+      `Prelude.hashWithSalt` slotName+      `Prelude.hashWithSalt` valueElicitationSetting+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId+      `Prelude.hashWithSalt` intentId++instance Prelude.NFData UpdateSlot where+  rnf UpdateSlot' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf multipleValuesSetting+      `Prelude.seq` Prelude.rnf obfuscationSetting+      `Prelude.seq` Prelude.rnf slotTypeId+      `Prelude.seq` Prelude.rnf subSlotSetting+      `Prelude.seq` Prelude.rnf slotId+      `Prelude.seq` Prelude.rnf slotName+      `Prelude.seq` Prelude.rnf valueElicitationSetting+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf intentId++instance Data.ToHeaders UpdateSlot where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateSlot where+  toJSON UpdateSlot' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("description" Data..=) Prelude.<$> description,+            ("multipleValuesSetting" Data..=)+              Prelude.<$> multipleValuesSetting,+            ("obfuscationSetting" Data..=)+              Prelude.<$> obfuscationSetting,+            ("slotTypeId" Data..=) Prelude.<$> slotTypeId,+            ("subSlotSetting" Data..=)+              Prelude.<$> subSlotSetting,+            Prelude.Just ("slotName" Data..= slotName),+            Prelude.Just+              ( "valueElicitationSetting"+                  Data..= valueElicitationSetting+              )+          ]+      )++instance Data.ToPath UpdateSlot where+  toPath UpdateSlot' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/intents/",+        Data.toBS intentId,+        "/slots/",+        Data.toBS slotId,+        "/"+      ]++instance Data.ToQuery UpdateSlot where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateSlotResponse' smart constructor.+data UpdateSlotResponse = UpdateSlotResponse'+  { -- | The identifier of the bot that contains the slot.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the slot version that contains the slot. Will always+    -- be @DRAFT@.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | The timestamp of the date and time that the slot was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The updated description of the bot.+    description :: Prelude.Maybe Prelude.Text,+    -- | The intent that contains the slot.+    intentId :: Prelude.Maybe Prelude.Text,+    -- | The timestamp of the date and time that the slot was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The locale that contains the slot.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | Indicates whether the slot accepts multiple values in one response.+    multipleValuesSetting :: Prelude.Maybe MultipleValuesSetting,+    -- | The updated setting that determines whether the slot value is obfuscated+    -- in the Amazon CloudWatch logs.+    obfuscationSetting :: Prelude.Maybe ObfuscationSetting,+    -- | The unique identifier of the slot that was updated.+    slotId :: Prelude.Maybe Prelude.Text,+    -- | The updated name of the slot.+    slotName :: Prelude.Maybe Prelude.Text,+    -- | The updated identifier of the slot type that provides values for the+    -- slot.+    slotTypeId :: Prelude.Maybe Prelude.Text,+    -- | Specifications for the constituent sub slots and the expression for the+    -- composite slot.+    subSlotSetting :: Prelude.Maybe SubSlotSetting,+    -- | The updated prompts that Amazon Lex sends to the user to elicit a+    -- response that provides a value for the slot.+    valueElicitationSetting :: Prelude.Maybe SlotValueElicitationSetting,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSlotResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'updateSlotResponse_botId' - The identifier of the bot that contains the slot.+--+-- 'botVersion', 'updateSlotResponse_botVersion' - The identifier of the slot version that contains the slot. Will always+-- be @DRAFT@.+--+-- 'creationDateTime', 'updateSlotResponse_creationDateTime' - The timestamp of the date and time that the slot was created.+--+-- 'description', 'updateSlotResponse_description' - The updated description of the bot.+--+-- 'intentId', 'updateSlotResponse_intentId' - The intent that contains the slot.+--+-- 'lastUpdatedDateTime', 'updateSlotResponse_lastUpdatedDateTime' - The timestamp of the date and time that the slot was last updated.+--+-- 'localeId', 'updateSlotResponse_localeId' - The locale that contains the slot.+--+-- 'multipleValuesSetting', 'updateSlotResponse_multipleValuesSetting' - Indicates whether the slot accepts multiple values in one response.+--+-- 'obfuscationSetting', 'updateSlotResponse_obfuscationSetting' - The updated setting that determines whether the slot value is obfuscated+-- in the Amazon CloudWatch logs.+--+-- 'slotId', 'updateSlotResponse_slotId' - The unique identifier of the slot that was updated.+--+-- 'slotName', 'updateSlotResponse_slotName' - The updated name of the slot.+--+-- 'slotTypeId', 'updateSlotResponse_slotTypeId' - The updated identifier of the slot type that provides values for the+-- slot.+--+-- 'subSlotSetting', 'updateSlotResponse_subSlotSetting' - Specifications for the constituent sub slots and the expression for the+-- composite slot.+--+-- 'valueElicitationSetting', 'updateSlotResponse_valueElicitationSetting' - The updated prompts that Amazon Lex sends to the user to elicit a+-- response that provides a value for the slot.+--+-- 'httpStatus', 'updateSlotResponse_httpStatus' - The response's http status code.+newUpdateSlotResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateSlotResponse+newUpdateSlotResponse pHttpStatus_ =+  UpdateSlotResponse'+    { botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      intentId = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      localeId = Prelude.Nothing,+      multipleValuesSetting = Prelude.Nothing,+      obfuscationSetting = Prelude.Nothing,+      slotId = Prelude.Nothing,+      slotName = Prelude.Nothing,+      slotTypeId = Prelude.Nothing,+      subSlotSetting = Prelude.Nothing,+      valueElicitationSetting = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot that contains the slot.+updateSlotResponse_botId :: Lens.Lens' UpdateSlotResponse (Prelude.Maybe Prelude.Text)+updateSlotResponse_botId = Lens.lens (\UpdateSlotResponse' {botId} -> botId) (\s@UpdateSlotResponse' {} a -> s {botId = a} :: UpdateSlotResponse)++-- | The identifier of the slot version that contains the slot. Will always+-- be @DRAFT@.+updateSlotResponse_botVersion :: Lens.Lens' UpdateSlotResponse (Prelude.Maybe Prelude.Text)+updateSlotResponse_botVersion = Lens.lens (\UpdateSlotResponse' {botVersion} -> botVersion) (\s@UpdateSlotResponse' {} a -> s {botVersion = a} :: UpdateSlotResponse)++-- | The timestamp of the date and time that the slot was created.+updateSlotResponse_creationDateTime :: Lens.Lens' UpdateSlotResponse (Prelude.Maybe Prelude.UTCTime)+updateSlotResponse_creationDateTime = Lens.lens (\UpdateSlotResponse' {creationDateTime} -> creationDateTime) (\s@UpdateSlotResponse' {} a -> s {creationDateTime = a} :: UpdateSlotResponse) Prelude.. Lens.mapping Data._Time++-- | The updated description of the bot.+updateSlotResponse_description :: Lens.Lens' UpdateSlotResponse (Prelude.Maybe Prelude.Text)+updateSlotResponse_description = Lens.lens (\UpdateSlotResponse' {description} -> description) (\s@UpdateSlotResponse' {} a -> s {description = a} :: UpdateSlotResponse)++-- | The intent that contains the slot.+updateSlotResponse_intentId :: Lens.Lens' UpdateSlotResponse (Prelude.Maybe Prelude.Text)+updateSlotResponse_intentId = Lens.lens (\UpdateSlotResponse' {intentId} -> intentId) (\s@UpdateSlotResponse' {} a -> s {intentId = a} :: UpdateSlotResponse)++-- | The timestamp of the date and time that the slot was last updated.+updateSlotResponse_lastUpdatedDateTime :: Lens.Lens' UpdateSlotResponse (Prelude.Maybe Prelude.UTCTime)+updateSlotResponse_lastUpdatedDateTime = Lens.lens (\UpdateSlotResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@UpdateSlotResponse' {} a -> s {lastUpdatedDateTime = a} :: UpdateSlotResponse) Prelude.. Lens.mapping Data._Time++-- | The locale that contains the slot.+updateSlotResponse_localeId :: Lens.Lens' UpdateSlotResponse (Prelude.Maybe Prelude.Text)+updateSlotResponse_localeId = Lens.lens (\UpdateSlotResponse' {localeId} -> localeId) (\s@UpdateSlotResponse' {} a -> s {localeId = a} :: UpdateSlotResponse)++-- | Indicates whether the slot accepts multiple values in one response.+updateSlotResponse_multipleValuesSetting :: Lens.Lens' UpdateSlotResponse (Prelude.Maybe MultipleValuesSetting)+updateSlotResponse_multipleValuesSetting = Lens.lens (\UpdateSlotResponse' {multipleValuesSetting} -> multipleValuesSetting) (\s@UpdateSlotResponse' {} a -> s {multipleValuesSetting = a} :: UpdateSlotResponse)++-- | The updated setting that determines whether the slot value is obfuscated+-- in the Amazon CloudWatch logs.+updateSlotResponse_obfuscationSetting :: Lens.Lens' UpdateSlotResponse (Prelude.Maybe ObfuscationSetting)+updateSlotResponse_obfuscationSetting = Lens.lens (\UpdateSlotResponse' {obfuscationSetting} -> obfuscationSetting) (\s@UpdateSlotResponse' {} a -> s {obfuscationSetting = a} :: UpdateSlotResponse)++-- | The unique identifier of the slot that was updated.+updateSlotResponse_slotId :: Lens.Lens' UpdateSlotResponse (Prelude.Maybe Prelude.Text)+updateSlotResponse_slotId = Lens.lens (\UpdateSlotResponse' {slotId} -> slotId) (\s@UpdateSlotResponse' {} a -> s {slotId = a} :: UpdateSlotResponse)++-- | The updated name of the slot.+updateSlotResponse_slotName :: Lens.Lens' UpdateSlotResponse (Prelude.Maybe Prelude.Text)+updateSlotResponse_slotName = Lens.lens (\UpdateSlotResponse' {slotName} -> slotName) (\s@UpdateSlotResponse' {} a -> s {slotName = a} :: UpdateSlotResponse)++-- | The updated identifier of the slot type that provides values for the+-- slot.+updateSlotResponse_slotTypeId :: Lens.Lens' UpdateSlotResponse (Prelude.Maybe Prelude.Text)+updateSlotResponse_slotTypeId = Lens.lens (\UpdateSlotResponse' {slotTypeId} -> slotTypeId) (\s@UpdateSlotResponse' {} a -> s {slotTypeId = a} :: UpdateSlotResponse)++-- | Specifications for the constituent sub slots and the expression for the+-- composite slot.+updateSlotResponse_subSlotSetting :: Lens.Lens' UpdateSlotResponse (Prelude.Maybe SubSlotSetting)+updateSlotResponse_subSlotSetting = Lens.lens (\UpdateSlotResponse' {subSlotSetting} -> subSlotSetting) (\s@UpdateSlotResponse' {} a -> s {subSlotSetting = a} :: UpdateSlotResponse)++-- | The updated prompts that Amazon Lex sends to the user to elicit a+-- response that provides a value for the slot.+updateSlotResponse_valueElicitationSetting :: Lens.Lens' UpdateSlotResponse (Prelude.Maybe SlotValueElicitationSetting)+updateSlotResponse_valueElicitationSetting = Lens.lens (\UpdateSlotResponse' {valueElicitationSetting} -> valueElicitationSetting) (\s@UpdateSlotResponse' {} a -> s {valueElicitationSetting = a} :: UpdateSlotResponse)++-- | The response's http status code.+updateSlotResponse_httpStatus :: Lens.Lens' UpdateSlotResponse Prelude.Int+updateSlotResponse_httpStatus = Lens.lens (\UpdateSlotResponse' {httpStatus} -> httpStatus) (\s@UpdateSlotResponse' {} a -> s {httpStatus = a} :: UpdateSlotResponse)++instance Prelude.NFData UpdateSlotResponse where+  rnf UpdateSlotResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf intentId+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf multipleValuesSetting+      `Prelude.seq` Prelude.rnf obfuscationSetting+      `Prelude.seq` Prelude.rnf slotId+      `Prelude.seq` Prelude.rnf slotName+      `Prelude.seq` Prelude.rnf slotTypeId+      `Prelude.seq` Prelude.rnf subSlotSetting+      `Prelude.seq` Prelude.rnf valueElicitationSetting+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/UpdateSlotType.hs view
@@ -0,0 +1,493 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.UpdateSlotType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the configuration of an existing slot type.+module Amazonka.LexV2Models.UpdateSlotType+  ( -- * Creating a Request+    UpdateSlotType (..),+    newUpdateSlotType,++    -- * Request Lenses+    updateSlotType_compositeSlotTypeSetting,+    updateSlotType_description,+    updateSlotType_externalSourceSetting,+    updateSlotType_parentSlotTypeSignature,+    updateSlotType_slotTypeValues,+    updateSlotType_valueSelectionSetting,+    updateSlotType_slotTypeId,+    updateSlotType_slotTypeName,+    updateSlotType_botId,+    updateSlotType_botVersion,+    updateSlotType_localeId,++    -- * Destructuring the Response+    UpdateSlotTypeResponse (..),+    newUpdateSlotTypeResponse,++    -- * Response Lenses+    updateSlotTypeResponse_botId,+    updateSlotTypeResponse_botVersion,+    updateSlotTypeResponse_compositeSlotTypeSetting,+    updateSlotTypeResponse_creationDateTime,+    updateSlotTypeResponse_description,+    updateSlotTypeResponse_externalSourceSetting,+    updateSlotTypeResponse_lastUpdatedDateTime,+    updateSlotTypeResponse_localeId,+    updateSlotTypeResponse_parentSlotTypeSignature,+    updateSlotTypeResponse_slotTypeId,+    updateSlotTypeResponse_slotTypeName,+    updateSlotTypeResponse_slotTypeValues,+    updateSlotTypeResponse_valueSelectionSetting,+    updateSlotTypeResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateSlotType' smart constructor.+data UpdateSlotType = UpdateSlotType'+  { -- | Specifications for a composite slot type.+    compositeSlotTypeSetting :: Prelude.Maybe CompositeSlotTypeSetting,+    -- | The new description of the slot type.+    description :: Prelude.Maybe Prelude.Text,+    externalSourceSetting :: Prelude.Maybe ExternalSourceSetting,+    -- | The new built-in slot type that should be used as the parent of this+    -- slot type.+    parentSlotTypeSignature :: Prelude.Maybe Prelude.Text,+    -- | A new list of values and their optional synonyms that define the values+    -- that the slot type can take.+    slotTypeValues :: Prelude.Maybe (Prelude.NonEmpty SlotTypeValue),+    -- | The strategy that Amazon Lex should use when deciding on a value from+    -- the list of slot type values.+    valueSelectionSetting :: Prelude.Maybe SlotValueSelectionSetting,+    -- | The unique identifier of the slot type to update.+    slotTypeId :: Prelude.Text,+    -- | The new name of the slot type.+    slotTypeName :: Prelude.Text,+    -- | The identifier of the bot that contains the slot type.+    botId :: Prelude.Text,+    -- | The version of the bot that contains the slot type. Must be @DRAFT@.+    botVersion :: Prelude.Text,+    -- | The identifier of the language and locale that contains the slot type.+    -- The string must match one of the supported locales. For more+    -- information, see+    -- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+    localeId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSlotType' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'compositeSlotTypeSetting', 'updateSlotType_compositeSlotTypeSetting' - Specifications for a composite slot type.+--+-- 'description', 'updateSlotType_description' - The new description of the slot type.+--+-- 'externalSourceSetting', 'updateSlotType_externalSourceSetting' - Undocumented member.+--+-- 'parentSlotTypeSignature', 'updateSlotType_parentSlotTypeSignature' - The new built-in slot type that should be used as the parent of this+-- slot type.+--+-- 'slotTypeValues', 'updateSlotType_slotTypeValues' - A new list of values and their optional synonyms that define the values+-- that the slot type can take.+--+-- 'valueSelectionSetting', 'updateSlotType_valueSelectionSetting' - The strategy that Amazon Lex should use when deciding on a value from+-- the list of slot type values.+--+-- 'slotTypeId', 'updateSlotType_slotTypeId' - The unique identifier of the slot type to update.+--+-- 'slotTypeName', 'updateSlotType_slotTypeName' - The new name of the slot type.+--+-- 'botId', 'updateSlotType_botId' - The identifier of the bot that contains the slot type.+--+-- 'botVersion', 'updateSlotType_botVersion' - The version of the bot that contains the slot type. Must be @DRAFT@.+--+-- 'localeId', 'updateSlotType_localeId' - The identifier of the language and locale that contains the slot type.+-- The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+newUpdateSlotType ::+  -- | 'slotTypeId'+  Prelude.Text ->+  -- | 'slotTypeName'+  Prelude.Text ->+  -- | 'botId'+  Prelude.Text ->+  -- | 'botVersion'+  Prelude.Text ->+  -- | 'localeId'+  Prelude.Text ->+  UpdateSlotType+newUpdateSlotType+  pSlotTypeId_+  pSlotTypeName_+  pBotId_+  pBotVersion_+  pLocaleId_ =+    UpdateSlotType'+      { compositeSlotTypeSetting =+          Prelude.Nothing,+        description = Prelude.Nothing,+        externalSourceSetting = Prelude.Nothing,+        parentSlotTypeSignature = Prelude.Nothing,+        slotTypeValues = Prelude.Nothing,+        valueSelectionSetting = Prelude.Nothing,+        slotTypeId = pSlotTypeId_,+        slotTypeName = pSlotTypeName_,+        botId = pBotId_,+        botVersion = pBotVersion_,+        localeId = pLocaleId_+      }++-- | Specifications for a composite slot type.+updateSlotType_compositeSlotTypeSetting :: Lens.Lens' UpdateSlotType (Prelude.Maybe CompositeSlotTypeSetting)+updateSlotType_compositeSlotTypeSetting = Lens.lens (\UpdateSlotType' {compositeSlotTypeSetting} -> compositeSlotTypeSetting) (\s@UpdateSlotType' {} a -> s {compositeSlotTypeSetting = a} :: UpdateSlotType)++-- | The new description of the slot type.+updateSlotType_description :: Lens.Lens' UpdateSlotType (Prelude.Maybe Prelude.Text)+updateSlotType_description = Lens.lens (\UpdateSlotType' {description} -> description) (\s@UpdateSlotType' {} a -> s {description = a} :: UpdateSlotType)++-- | Undocumented member.+updateSlotType_externalSourceSetting :: Lens.Lens' UpdateSlotType (Prelude.Maybe ExternalSourceSetting)+updateSlotType_externalSourceSetting = Lens.lens (\UpdateSlotType' {externalSourceSetting} -> externalSourceSetting) (\s@UpdateSlotType' {} a -> s {externalSourceSetting = a} :: UpdateSlotType)++-- | The new built-in slot type that should be used as the parent of this+-- slot type.+updateSlotType_parentSlotTypeSignature :: Lens.Lens' UpdateSlotType (Prelude.Maybe Prelude.Text)+updateSlotType_parentSlotTypeSignature = Lens.lens (\UpdateSlotType' {parentSlotTypeSignature} -> parentSlotTypeSignature) (\s@UpdateSlotType' {} a -> s {parentSlotTypeSignature = a} :: UpdateSlotType)++-- | A new list of values and their optional synonyms that define the values+-- that the slot type can take.+updateSlotType_slotTypeValues :: Lens.Lens' UpdateSlotType (Prelude.Maybe (Prelude.NonEmpty SlotTypeValue))+updateSlotType_slotTypeValues = Lens.lens (\UpdateSlotType' {slotTypeValues} -> slotTypeValues) (\s@UpdateSlotType' {} a -> s {slotTypeValues = a} :: UpdateSlotType) Prelude.. Lens.mapping Lens.coerced++-- | The strategy that Amazon Lex should use when deciding on a value from+-- the list of slot type values.+updateSlotType_valueSelectionSetting :: Lens.Lens' UpdateSlotType (Prelude.Maybe SlotValueSelectionSetting)+updateSlotType_valueSelectionSetting = Lens.lens (\UpdateSlotType' {valueSelectionSetting} -> valueSelectionSetting) (\s@UpdateSlotType' {} a -> s {valueSelectionSetting = a} :: UpdateSlotType)++-- | The unique identifier of the slot type to update.+updateSlotType_slotTypeId :: Lens.Lens' UpdateSlotType Prelude.Text+updateSlotType_slotTypeId = Lens.lens (\UpdateSlotType' {slotTypeId} -> slotTypeId) (\s@UpdateSlotType' {} a -> s {slotTypeId = a} :: UpdateSlotType)++-- | The new name of the slot type.+updateSlotType_slotTypeName :: Lens.Lens' UpdateSlotType Prelude.Text+updateSlotType_slotTypeName = Lens.lens (\UpdateSlotType' {slotTypeName} -> slotTypeName) (\s@UpdateSlotType' {} a -> s {slotTypeName = a} :: UpdateSlotType)++-- | The identifier of the bot that contains the slot type.+updateSlotType_botId :: Lens.Lens' UpdateSlotType Prelude.Text+updateSlotType_botId = Lens.lens (\UpdateSlotType' {botId} -> botId) (\s@UpdateSlotType' {} a -> s {botId = a} :: UpdateSlotType)++-- | The version of the bot that contains the slot type. Must be @DRAFT@.+updateSlotType_botVersion :: Lens.Lens' UpdateSlotType Prelude.Text+updateSlotType_botVersion = Lens.lens (\UpdateSlotType' {botVersion} -> botVersion) (\s@UpdateSlotType' {} a -> s {botVersion = a} :: UpdateSlotType)++-- | The identifier of the language and locale that contains the slot type.+-- The string must match one of the supported locales. For more+-- information, see+-- <https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html Supported languages>.+updateSlotType_localeId :: Lens.Lens' UpdateSlotType Prelude.Text+updateSlotType_localeId = Lens.lens (\UpdateSlotType' {localeId} -> localeId) (\s@UpdateSlotType' {} a -> s {localeId = a} :: UpdateSlotType)++instance Core.AWSRequest UpdateSlotType where+  type+    AWSResponse UpdateSlotType =+      UpdateSlotTypeResponse+  request overrides =+    Request.putJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateSlotTypeResponse'+            Prelude.<$> (x Data..?> "botId")+            Prelude.<*> (x Data..?> "botVersion")+            Prelude.<*> (x Data..?> "compositeSlotTypeSetting")+            Prelude.<*> (x Data..?> "creationDateTime")+            Prelude.<*> (x Data..?> "description")+            Prelude.<*> (x Data..?> "externalSourceSetting")+            Prelude.<*> (x Data..?> "lastUpdatedDateTime")+            Prelude.<*> (x Data..?> "localeId")+            Prelude.<*> (x Data..?> "parentSlotTypeSignature")+            Prelude.<*> (x Data..?> "slotTypeId")+            Prelude.<*> (x Data..?> "slotTypeName")+            Prelude.<*> (x Data..?> "slotTypeValues")+            Prelude.<*> (x Data..?> "valueSelectionSetting")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UpdateSlotType where+  hashWithSalt _salt UpdateSlotType' {..} =+    _salt+      `Prelude.hashWithSalt` compositeSlotTypeSetting+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` externalSourceSetting+      `Prelude.hashWithSalt` parentSlotTypeSignature+      `Prelude.hashWithSalt` slotTypeValues+      `Prelude.hashWithSalt` valueSelectionSetting+      `Prelude.hashWithSalt` slotTypeId+      `Prelude.hashWithSalt` slotTypeName+      `Prelude.hashWithSalt` botId+      `Prelude.hashWithSalt` botVersion+      `Prelude.hashWithSalt` localeId++instance Prelude.NFData UpdateSlotType where+  rnf UpdateSlotType' {..} =+    Prelude.rnf compositeSlotTypeSetting+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf externalSourceSetting+      `Prelude.seq` Prelude.rnf parentSlotTypeSignature+      `Prelude.seq` Prelude.rnf slotTypeValues+      `Prelude.seq` Prelude.rnf valueSelectionSetting+      `Prelude.seq` Prelude.rnf slotTypeId+      `Prelude.seq` Prelude.rnf slotTypeName+      `Prelude.seq` Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf localeId++instance Data.ToHeaders UpdateSlotType where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateSlotType where+  toJSON UpdateSlotType' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("compositeSlotTypeSetting" Data..=)+              Prelude.<$> compositeSlotTypeSetting,+            ("description" Data..=) Prelude.<$> description,+            ("externalSourceSetting" Data..=)+              Prelude.<$> externalSourceSetting,+            ("parentSlotTypeSignature" Data..=)+              Prelude.<$> parentSlotTypeSignature,+            ("slotTypeValues" Data..=)+              Prelude.<$> slotTypeValues,+            ("valueSelectionSetting" Data..=)+              Prelude.<$> valueSelectionSetting,+            Prelude.Just ("slotTypeName" Data..= slotTypeName)+          ]+      )++instance Data.ToPath UpdateSlotType where+  toPath UpdateSlotType' {..} =+    Prelude.mconcat+      [ "/bots/",+        Data.toBS botId,+        "/botversions/",+        Data.toBS botVersion,+        "/botlocales/",+        Data.toBS localeId,+        "/slottypes/",+        Data.toBS slotTypeId,+        "/"+      ]++instance Data.ToQuery UpdateSlotType where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateSlotTypeResponse' smart constructor.+data UpdateSlotTypeResponse = UpdateSlotTypeResponse'+  { -- | The identifier of the bot that contains the slot type.+    botId :: Prelude.Maybe Prelude.Text,+    -- | The version of the bot that contains the slot type. This is always+    -- @DRAFT@.+    botVersion :: Prelude.Maybe Prelude.Text,+    -- | Specifications for a composite slot type.+    compositeSlotTypeSetting :: Prelude.Maybe CompositeSlotTypeSetting,+    -- | The timestamp of the date and time that the slot type was created.+    creationDateTime :: Prelude.Maybe Data.POSIX,+    -- | The updated description of the slot type.+    description :: Prelude.Maybe Prelude.Text,+    externalSourceSetting :: Prelude.Maybe ExternalSourceSetting,+    -- | A timestamp of the date and time that the slot type was last updated.+    lastUpdatedDateTime :: Prelude.Maybe Data.POSIX,+    -- | The language and locale of the updated slot type.+    localeId :: Prelude.Maybe Prelude.Text,+    -- | The updated signature of the built-in slot type that is the parent of+    -- this slot type.+    parentSlotTypeSignature :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier of the updated slot type.+    slotTypeId :: Prelude.Maybe Prelude.Text,+    -- | The updated name of the slot type.+    slotTypeName :: Prelude.Maybe Prelude.Text,+    -- | The updated values that the slot type provides.+    slotTypeValues :: Prelude.Maybe (Prelude.NonEmpty SlotTypeValue),+    -- | The updated strategy that Amazon Lex uses to determine which value to+    -- select from the slot type.+    valueSelectionSetting :: Prelude.Maybe SlotValueSelectionSetting,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateSlotTypeResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'botId', 'updateSlotTypeResponse_botId' - The identifier of the bot that contains the slot type.+--+-- 'botVersion', 'updateSlotTypeResponse_botVersion' - The version of the bot that contains the slot type. This is always+-- @DRAFT@.+--+-- 'compositeSlotTypeSetting', 'updateSlotTypeResponse_compositeSlotTypeSetting' - Specifications for a composite slot type.+--+-- 'creationDateTime', 'updateSlotTypeResponse_creationDateTime' - The timestamp of the date and time that the slot type was created.+--+-- 'description', 'updateSlotTypeResponse_description' - The updated description of the slot type.+--+-- 'externalSourceSetting', 'updateSlotTypeResponse_externalSourceSetting' - Undocumented member.+--+-- 'lastUpdatedDateTime', 'updateSlotTypeResponse_lastUpdatedDateTime' - A timestamp of the date and time that the slot type was last updated.+--+-- 'localeId', 'updateSlotTypeResponse_localeId' - The language and locale of the updated slot type.+--+-- 'parentSlotTypeSignature', 'updateSlotTypeResponse_parentSlotTypeSignature' - The updated signature of the built-in slot type that is the parent of+-- this slot type.+--+-- 'slotTypeId', 'updateSlotTypeResponse_slotTypeId' - The unique identifier of the updated slot type.+--+-- 'slotTypeName', 'updateSlotTypeResponse_slotTypeName' - The updated name of the slot type.+--+-- 'slotTypeValues', 'updateSlotTypeResponse_slotTypeValues' - The updated values that the slot type provides.+--+-- 'valueSelectionSetting', 'updateSlotTypeResponse_valueSelectionSetting' - The updated strategy that Amazon Lex uses to determine which value to+-- select from the slot type.+--+-- 'httpStatus', 'updateSlotTypeResponse_httpStatus' - The response's http status code.+newUpdateSlotTypeResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateSlotTypeResponse+newUpdateSlotTypeResponse pHttpStatus_ =+  UpdateSlotTypeResponse'+    { botId = Prelude.Nothing,+      botVersion = Prelude.Nothing,+      compositeSlotTypeSetting = Prelude.Nothing,+      creationDateTime = Prelude.Nothing,+      description = Prelude.Nothing,+      externalSourceSetting = Prelude.Nothing,+      lastUpdatedDateTime = Prelude.Nothing,+      localeId = Prelude.Nothing,+      parentSlotTypeSignature = Prelude.Nothing,+      slotTypeId = Prelude.Nothing,+      slotTypeName = Prelude.Nothing,+      slotTypeValues = Prelude.Nothing,+      valueSelectionSetting = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the bot that contains the slot type.+updateSlotTypeResponse_botId :: Lens.Lens' UpdateSlotTypeResponse (Prelude.Maybe Prelude.Text)+updateSlotTypeResponse_botId = Lens.lens (\UpdateSlotTypeResponse' {botId} -> botId) (\s@UpdateSlotTypeResponse' {} a -> s {botId = a} :: UpdateSlotTypeResponse)++-- | The version of the bot that contains the slot type. This is always+-- @DRAFT@.+updateSlotTypeResponse_botVersion :: Lens.Lens' UpdateSlotTypeResponse (Prelude.Maybe Prelude.Text)+updateSlotTypeResponse_botVersion = Lens.lens (\UpdateSlotTypeResponse' {botVersion} -> botVersion) (\s@UpdateSlotTypeResponse' {} a -> s {botVersion = a} :: UpdateSlotTypeResponse)++-- | Specifications for a composite slot type.+updateSlotTypeResponse_compositeSlotTypeSetting :: Lens.Lens' UpdateSlotTypeResponse (Prelude.Maybe CompositeSlotTypeSetting)+updateSlotTypeResponse_compositeSlotTypeSetting = Lens.lens (\UpdateSlotTypeResponse' {compositeSlotTypeSetting} -> compositeSlotTypeSetting) (\s@UpdateSlotTypeResponse' {} a -> s {compositeSlotTypeSetting = a} :: UpdateSlotTypeResponse)++-- | The timestamp of the date and time that the slot type was created.+updateSlotTypeResponse_creationDateTime :: Lens.Lens' UpdateSlotTypeResponse (Prelude.Maybe Prelude.UTCTime)+updateSlotTypeResponse_creationDateTime = Lens.lens (\UpdateSlotTypeResponse' {creationDateTime} -> creationDateTime) (\s@UpdateSlotTypeResponse' {} a -> s {creationDateTime = a} :: UpdateSlotTypeResponse) Prelude.. Lens.mapping Data._Time++-- | The updated description of the slot type.+updateSlotTypeResponse_description :: Lens.Lens' UpdateSlotTypeResponse (Prelude.Maybe Prelude.Text)+updateSlotTypeResponse_description = Lens.lens (\UpdateSlotTypeResponse' {description} -> description) (\s@UpdateSlotTypeResponse' {} a -> s {description = a} :: UpdateSlotTypeResponse)++-- | Undocumented member.+updateSlotTypeResponse_externalSourceSetting :: Lens.Lens' UpdateSlotTypeResponse (Prelude.Maybe ExternalSourceSetting)+updateSlotTypeResponse_externalSourceSetting = Lens.lens (\UpdateSlotTypeResponse' {externalSourceSetting} -> externalSourceSetting) (\s@UpdateSlotTypeResponse' {} a -> s {externalSourceSetting = a} :: UpdateSlotTypeResponse)++-- | A timestamp of the date and time that the slot type was last updated.+updateSlotTypeResponse_lastUpdatedDateTime :: Lens.Lens' UpdateSlotTypeResponse (Prelude.Maybe Prelude.UTCTime)+updateSlotTypeResponse_lastUpdatedDateTime = Lens.lens (\UpdateSlotTypeResponse' {lastUpdatedDateTime} -> lastUpdatedDateTime) (\s@UpdateSlotTypeResponse' {} a -> s {lastUpdatedDateTime = a} :: UpdateSlotTypeResponse) Prelude.. Lens.mapping Data._Time++-- | The language and locale of the updated slot type.+updateSlotTypeResponse_localeId :: Lens.Lens' UpdateSlotTypeResponse (Prelude.Maybe Prelude.Text)+updateSlotTypeResponse_localeId = Lens.lens (\UpdateSlotTypeResponse' {localeId} -> localeId) (\s@UpdateSlotTypeResponse' {} a -> s {localeId = a} :: UpdateSlotTypeResponse)++-- | The updated signature of the built-in slot type that is the parent of+-- this slot type.+updateSlotTypeResponse_parentSlotTypeSignature :: Lens.Lens' UpdateSlotTypeResponse (Prelude.Maybe Prelude.Text)+updateSlotTypeResponse_parentSlotTypeSignature = Lens.lens (\UpdateSlotTypeResponse' {parentSlotTypeSignature} -> parentSlotTypeSignature) (\s@UpdateSlotTypeResponse' {} a -> s {parentSlotTypeSignature = a} :: UpdateSlotTypeResponse)++-- | The unique identifier of the updated slot type.+updateSlotTypeResponse_slotTypeId :: Lens.Lens' UpdateSlotTypeResponse (Prelude.Maybe Prelude.Text)+updateSlotTypeResponse_slotTypeId = Lens.lens (\UpdateSlotTypeResponse' {slotTypeId} -> slotTypeId) (\s@UpdateSlotTypeResponse' {} a -> s {slotTypeId = a} :: UpdateSlotTypeResponse)++-- | The updated name of the slot type.+updateSlotTypeResponse_slotTypeName :: Lens.Lens' UpdateSlotTypeResponse (Prelude.Maybe Prelude.Text)+updateSlotTypeResponse_slotTypeName = Lens.lens (\UpdateSlotTypeResponse' {slotTypeName} -> slotTypeName) (\s@UpdateSlotTypeResponse' {} a -> s {slotTypeName = a} :: UpdateSlotTypeResponse)++-- | The updated values that the slot type provides.+updateSlotTypeResponse_slotTypeValues :: Lens.Lens' UpdateSlotTypeResponse (Prelude.Maybe (Prelude.NonEmpty SlotTypeValue))+updateSlotTypeResponse_slotTypeValues = Lens.lens (\UpdateSlotTypeResponse' {slotTypeValues} -> slotTypeValues) (\s@UpdateSlotTypeResponse' {} a -> s {slotTypeValues = a} :: UpdateSlotTypeResponse) Prelude.. Lens.mapping Lens.coerced++-- | The updated strategy that Amazon Lex uses to determine which value to+-- select from the slot type.+updateSlotTypeResponse_valueSelectionSetting :: Lens.Lens' UpdateSlotTypeResponse (Prelude.Maybe SlotValueSelectionSetting)+updateSlotTypeResponse_valueSelectionSetting = Lens.lens (\UpdateSlotTypeResponse' {valueSelectionSetting} -> valueSelectionSetting) (\s@UpdateSlotTypeResponse' {} a -> s {valueSelectionSetting = a} :: UpdateSlotTypeResponse)++-- | The response's http status code.+updateSlotTypeResponse_httpStatus :: Lens.Lens' UpdateSlotTypeResponse Prelude.Int+updateSlotTypeResponse_httpStatus = Lens.lens (\UpdateSlotTypeResponse' {httpStatus} -> httpStatus) (\s@UpdateSlotTypeResponse' {} a -> s {httpStatus = a} :: UpdateSlotTypeResponse)++instance Prelude.NFData UpdateSlotTypeResponse where+  rnf UpdateSlotTypeResponse' {..} =+    Prelude.rnf botId+      `Prelude.seq` Prelude.rnf botVersion+      `Prelude.seq` Prelude.rnf compositeSlotTypeSetting+      `Prelude.seq` Prelude.rnf creationDateTime+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf externalSourceSetting+      `Prelude.seq` Prelude.rnf lastUpdatedDateTime+      `Prelude.seq` Prelude.rnf localeId+      `Prelude.seq` Prelude.rnf parentSlotTypeSignature+      `Prelude.seq` Prelude.rnf slotTypeId+      `Prelude.seq` Prelude.rnf slotTypeName+      `Prelude.seq` Prelude.rnf slotTypeValues+      `Prelude.seq` Prelude.rnf valueSelectionSetting+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/LexV2Models/Waiters.hs view
@@ -0,0 +1,330 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.LexV2Models.Waiters+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.LexV2Models.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.LexV2Models.DescribeBot+import Amazonka.LexV2Models.DescribeBotAlias+import Amazonka.LexV2Models.DescribeBotLocale+import Amazonka.LexV2Models.DescribeBotVersion+import Amazonka.LexV2Models.DescribeExport+import Amazonka.LexV2Models.DescribeImport+import Amazonka.LexV2Models.Lens+import Amazonka.LexV2Models.Types+import qualified Amazonka.Prelude as Prelude++-- | Polls 'Amazonka.LexV2Models.DescribeBotAlias' every 10 seconds until a successful state is reached. An error is returned after 35 failed checks.+newBotAliasAvailable :: Core.Wait DescribeBotAlias+newBotAliasAvailable =+  Core.Wait+    { Core.name = "BotAliasAvailable",+      Core.attempts = 35,+      Core.delay = 10,+      Core.acceptors =+        [ Core.matchAll+            "Available"+            Core.AcceptSuccess+            ( describeBotAliasResponse_botAliasStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Failed"+            Core.AcceptFailure+            ( describeBotAliasResponse_botAliasStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Deleting"+            Core.AcceptFailure+            ( describeBotAliasResponse_botAliasStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.LexV2Models.DescribeBot' every 10 seconds until a successful state is reached. An error is returned after 35 failed checks.+newBotAvailable :: Core.Wait DescribeBot+newBotAvailable =+  Core.Wait+    { Core.name = "BotAvailable",+      Core.attempts = 35,+      Core.delay = 10,+      Core.acceptors =+        [ Core.matchAll+            "Available"+            Core.AcceptSuccess+            ( describeBotResponse_botStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Deleting"+            Core.AcceptFailure+            ( describeBotResponse_botStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Failed"+            Core.AcceptFailure+            ( describeBotResponse_botStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Inactive"+            Core.AcceptFailure+            ( describeBotResponse_botStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.LexV2Models.DescribeExport' every 10 seconds until a successful state is reached. An error is returned after 35 failed checks.+newBotExportCompleted :: Core.Wait DescribeExport+newBotExportCompleted =+  Core.Wait+    { Core.name = "BotExportCompleted",+      Core.attempts = 35,+      Core.delay = 10,+      Core.acceptors =+        [ Core.matchAll+            "Completed"+            Core.AcceptSuccess+            ( describeExportResponse_exportStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Deleting"+            Core.AcceptFailure+            ( describeExportResponse_exportStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Failed"+            Core.AcceptFailure+            ( describeExportResponse_exportStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.LexV2Models.DescribeImport' every 10 seconds until a successful state is reached. An error is returned after 35 failed checks.+newBotImportCompleted :: Core.Wait DescribeImport+newBotImportCompleted =+  Core.Wait+    { Core.name = "BotImportCompleted",+      Core.attempts = 35,+      Core.delay = 10,+      Core.acceptors =+        [ Core.matchAll+            "Completed"+            Core.AcceptSuccess+            ( describeImportResponse_importStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Deleting"+            Core.AcceptFailure+            ( describeImportResponse_importStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Failed"+            Core.AcceptFailure+            ( describeImportResponse_importStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.LexV2Models.DescribeBotLocale' every 10 seconds until a successful state is reached. An error is returned after 35 failed checks.+newBotLocaleBuilt :: Core.Wait DescribeBotLocale+newBotLocaleBuilt =+  Core.Wait+    { Core.name = "BotLocaleBuilt",+      Core.attempts = 35,+      Core.delay = 10,+      Core.acceptors =+        [ Core.matchAll+            "Built"+            Core.AcceptSuccess+            ( describeBotLocaleResponse_botLocaleStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Deleting"+            Core.AcceptFailure+            ( describeBotLocaleResponse_botLocaleStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Failed"+            Core.AcceptFailure+            ( describeBotLocaleResponse_botLocaleStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "NotBuilt"+            Core.AcceptFailure+            ( describeBotLocaleResponse_botLocaleStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.LexV2Models.DescribeBotLocale' every 10 seconds until a successful state is reached. An error is returned after 35 failed checks.+newBotLocaleCreated :: Core.Wait DescribeBotLocale+newBotLocaleCreated =+  Core.Wait+    { Core.name = "BotLocaleCreated",+      Core.attempts = 35,+      Core.delay = 10,+      Core.acceptors =+        [ Core.matchAll+            "Built"+            Core.AcceptSuccess+            ( describeBotLocaleResponse_botLocaleStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "ReadyExpressTesting"+            Core.AcceptSuccess+            ( describeBotLocaleResponse_botLocaleStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "NotBuilt"+            Core.AcceptSuccess+            ( describeBotLocaleResponse_botLocaleStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Deleting"+            Core.AcceptFailure+            ( describeBotLocaleResponse_botLocaleStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Failed"+            Core.AcceptFailure+            ( describeBotLocaleResponse_botLocaleStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.LexV2Models.DescribeBotLocale' every 10 seconds until a successful state is reached. An error is returned after 35 failed checks.+newBotLocaleExpressTestingAvailable :: Core.Wait DescribeBotLocale+newBotLocaleExpressTestingAvailable =+  Core.Wait+    { Core.name =+        "BotLocaleExpressTestingAvailable",+      Core.attempts = 35,+      Core.delay = 10,+      Core.acceptors =+        [ Core.matchAll+            "Built"+            Core.AcceptSuccess+            ( describeBotLocaleResponse_botLocaleStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "ReadyExpressTesting"+            Core.AcceptSuccess+            ( describeBotLocaleResponse_botLocaleStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Deleting"+            Core.AcceptFailure+            ( describeBotLocaleResponse_botLocaleStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Failed"+            Core.AcceptFailure+            ( describeBotLocaleResponse_botLocaleStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "NotBuilt"+            Core.AcceptFailure+            ( describeBotLocaleResponse_botLocaleStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            )+        ]+    }++-- | Polls 'Amazonka.LexV2Models.DescribeBotVersion' every 10 seconds until a successful state is reached. An error is returned after 35 failed checks.+newBotVersionAvailable :: Core.Wait DescribeBotVersion+newBotVersionAvailable =+  Core.Wait+    { Core.name = "BotVersionAvailable",+      Core.attempts = 35,+      Core.delay = 10,+      Core.acceptors =+        [ Core.matchAll+            "Available"+            Core.AcceptSuccess+            ( describeBotVersionResponse_botStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Deleting"+            Core.AcceptFailure+            ( describeBotVersionResponse_botStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchAll+            "Failed"+            Core.AcceptFailure+            ( describeBotVersionResponse_botStatus+                Prelude.. Lens._Just+                Prelude.. Lens.to Data.toTextCI+            ),+          Core.matchStatus 404 Core.AcceptRetry+        ]+    }
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Main (main) where++import Test.Amazonka.LexV2Models+import Test.Amazonka.LexV2Models.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "LexV2Models"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/LexV2Models.hs view
@@ -0,0 +1,1458 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.Amazonka.Gen.LexV2Models+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.Gen.LexV2Models where++import Amazonka.LexV2Models+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.LexV2Models.Internal+import Test.Amazonka.Prelude+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ requestBatchCreateCustomVocabularyItem $+--             newBatchCreateCustomVocabularyItem+--+--         , requestBatchDeleteCustomVocabularyItem $+--             newBatchDeleteCustomVocabularyItem+--+--         , requestBatchUpdateCustomVocabularyItem $+--             newBatchUpdateCustomVocabularyItem+--+--         , requestBuildBotLocale $+--             newBuildBotLocale+--+--         , requestCreateBot $+--             newCreateBot+--+--         , requestCreateBotAlias $+--             newCreateBotAlias+--+--         , requestCreateBotLocale $+--             newCreateBotLocale+--+--         , requestCreateBotVersion $+--             newCreateBotVersion+--+--         , requestCreateExport $+--             newCreateExport+--+--         , requestCreateIntent $+--             newCreateIntent+--+--         , requestCreateResourcePolicy $+--             newCreateResourcePolicy+--+--         , requestCreateResourcePolicyStatement $+--             newCreateResourcePolicyStatement+--+--         , requestCreateSlot $+--             newCreateSlot+--+--         , requestCreateSlotType $+--             newCreateSlotType+--+--         , requestCreateUploadUrl $+--             newCreateUploadUrl+--+--         , requestDeleteBot $+--             newDeleteBot+--+--         , requestDeleteBotAlias $+--             newDeleteBotAlias+--+--         , requestDeleteBotLocale $+--             newDeleteBotLocale+--+--         , requestDeleteBotVersion $+--             newDeleteBotVersion+--+--         , requestDeleteCustomVocabulary $+--             newDeleteCustomVocabulary+--+--         , requestDeleteExport $+--             newDeleteExport+--+--         , requestDeleteImport $+--             newDeleteImport+--+--         , requestDeleteIntent $+--             newDeleteIntent+--+--         , requestDeleteResourcePolicy $+--             newDeleteResourcePolicy+--+--         , requestDeleteResourcePolicyStatement $+--             newDeleteResourcePolicyStatement+--+--         , requestDeleteSlot $+--             newDeleteSlot+--+--         , requestDeleteSlotType $+--             newDeleteSlotType+--+--         , requestDeleteUtterances $+--             newDeleteUtterances+--+--         , requestDescribeBot $+--             newDescribeBot+--+--         , requestDescribeBotAlias $+--             newDescribeBotAlias+--+--         , requestDescribeBotLocale $+--             newDescribeBotLocale+--+--         , requestDescribeBotRecommendation $+--             newDescribeBotRecommendation+--+--         , requestDescribeBotVersion $+--             newDescribeBotVersion+--+--         , requestDescribeCustomVocabularyMetadata $+--             newDescribeCustomVocabularyMetadata+--+--         , requestDescribeExport $+--             newDescribeExport+--+--         , requestDescribeImport $+--             newDescribeImport+--+--         , requestDescribeIntent $+--             newDescribeIntent+--+--         , requestDescribeResourcePolicy $+--             newDescribeResourcePolicy+--+--         , requestDescribeSlot $+--             newDescribeSlot+--+--         , requestDescribeSlotType $+--             newDescribeSlotType+--+--         , requestListAggregatedUtterances $+--             newListAggregatedUtterances+--+--         , requestListBotAliases $+--             newListBotAliases+--+--         , requestListBotLocales $+--             newListBotLocales+--+--         , requestListBotRecommendations $+--             newListBotRecommendations+--+--         , requestListBotVersions $+--             newListBotVersions+--+--         , requestListBots $+--             newListBots+--+--         , requestListBuiltInIntents $+--             newListBuiltInIntents+--+--         , requestListBuiltInSlotTypes $+--             newListBuiltInSlotTypes+--+--         , requestListCustomVocabularyItems $+--             newListCustomVocabularyItems+--+--         , requestListExports $+--             newListExports+--+--         , requestListImports $+--             newListImports+--+--         , requestListIntents $+--             newListIntents+--+--         , requestListRecommendedIntents $+--             newListRecommendedIntents+--+--         , requestListSlotTypes $+--             newListSlotTypes+--+--         , requestListSlots $+--             newListSlots+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestSearchAssociatedTranscripts $+--             newSearchAssociatedTranscripts+--+--         , requestStartBotRecommendation $+--             newStartBotRecommendation+--+--         , requestStartImport $+--             newStartImport+--+--         , requestStopBotRecommendation $+--             newStopBotRecommendation+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateBot $+--             newUpdateBot+--+--         , requestUpdateBotAlias $+--             newUpdateBotAlias+--+--         , requestUpdateBotLocale $+--             newUpdateBotLocale+--+--         , requestUpdateBotRecommendation $+--             newUpdateBotRecommendation+--+--         , requestUpdateExport $+--             newUpdateExport+--+--         , requestUpdateIntent $+--             newUpdateIntent+--+--         , requestUpdateResourcePolicy $+--             newUpdateResourcePolicy+--+--         , requestUpdateSlot $+--             newUpdateSlot+--+--         , requestUpdateSlotType $+--             newUpdateSlotType+--+--           ]++--     , testGroup "response"+--         [ responseBatchCreateCustomVocabularyItem $+--             newBatchCreateCustomVocabularyItemResponse+--+--         , responseBatchDeleteCustomVocabularyItem $+--             newBatchDeleteCustomVocabularyItemResponse+--+--         , responseBatchUpdateCustomVocabularyItem $+--             newBatchUpdateCustomVocabularyItemResponse+--+--         , responseBuildBotLocale $+--             newBuildBotLocaleResponse+--+--         , responseCreateBot $+--             newCreateBotResponse+--+--         , responseCreateBotAlias $+--             newCreateBotAliasResponse+--+--         , responseCreateBotLocale $+--             newCreateBotLocaleResponse+--+--         , responseCreateBotVersion $+--             newCreateBotVersionResponse+--+--         , responseCreateExport $+--             newCreateExportResponse+--+--         , responseCreateIntent $+--             newCreateIntentResponse+--+--         , responseCreateResourcePolicy $+--             newCreateResourcePolicyResponse+--+--         , responseCreateResourcePolicyStatement $+--             newCreateResourcePolicyStatementResponse+--+--         , responseCreateSlot $+--             newCreateSlotResponse+--+--         , responseCreateSlotType $+--             newCreateSlotTypeResponse+--+--         , responseCreateUploadUrl $+--             newCreateUploadUrlResponse+--+--         , responseDeleteBot $+--             newDeleteBotResponse+--+--         , responseDeleteBotAlias $+--             newDeleteBotAliasResponse+--+--         , responseDeleteBotLocale $+--             newDeleteBotLocaleResponse+--+--         , responseDeleteBotVersion $+--             newDeleteBotVersionResponse+--+--         , responseDeleteCustomVocabulary $+--             newDeleteCustomVocabularyResponse+--+--         , responseDeleteExport $+--             newDeleteExportResponse+--+--         , responseDeleteImport $+--             newDeleteImportResponse+--+--         , responseDeleteIntent $+--             newDeleteIntentResponse+--+--         , responseDeleteResourcePolicy $+--             newDeleteResourcePolicyResponse+--+--         , responseDeleteResourcePolicyStatement $+--             newDeleteResourcePolicyStatementResponse+--+--         , responseDeleteSlot $+--             newDeleteSlotResponse+--+--         , responseDeleteSlotType $+--             newDeleteSlotTypeResponse+--+--         , responseDeleteUtterances $+--             newDeleteUtterancesResponse+--+--         , responseDescribeBot $+--             newDescribeBotResponse+--+--         , responseDescribeBotAlias $+--             newDescribeBotAliasResponse+--+--         , responseDescribeBotLocale $+--             newDescribeBotLocaleResponse+--+--         , responseDescribeBotRecommendation $+--             newDescribeBotRecommendationResponse+--+--         , responseDescribeBotVersion $+--             newDescribeBotVersionResponse+--+--         , responseDescribeCustomVocabularyMetadata $+--             newDescribeCustomVocabularyMetadataResponse+--+--         , responseDescribeExport $+--             newDescribeExportResponse+--+--         , responseDescribeImport $+--             newDescribeImportResponse+--+--         , responseDescribeIntent $+--             newDescribeIntentResponse+--+--         , responseDescribeResourcePolicy $+--             newDescribeResourcePolicyResponse+--+--         , responseDescribeSlot $+--             newDescribeSlotResponse+--+--         , responseDescribeSlotType $+--             newDescribeSlotTypeResponse+--+--         , responseListAggregatedUtterances $+--             newListAggregatedUtterancesResponse+--+--         , responseListBotAliases $+--             newListBotAliasesResponse+--+--         , responseListBotLocales $+--             newListBotLocalesResponse+--+--         , responseListBotRecommendations $+--             newListBotRecommendationsResponse+--+--         , responseListBotVersions $+--             newListBotVersionsResponse+--+--         , responseListBots $+--             newListBotsResponse+--+--         , responseListBuiltInIntents $+--             newListBuiltInIntentsResponse+--+--         , responseListBuiltInSlotTypes $+--             newListBuiltInSlotTypesResponse+--+--         , responseListCustomVocabularyItems $+--             newListCustomVocabularyItemsResponse+--+--         , responseListExports $+--             newListExportsResponse+--+--         , responseListImports $+--             newListImportsResponse+--+--         , responseListIntents $+--             newListIntentsResponse+--+--         , responseListRecommendedIntents $+--             newListRecommendedIntentsResponse+--+--         , responseListSlotTypes $+--             newListSlotTypesResponse+--+--         , responseListSlots $+--             newListSlotsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseSearchAssociatedTranscripts $+--             newSearchAssociatedTranscriptsResponse+--+--         , responseStartBotRecommendation $+--             newStartBotRecommendationResponse+--+--         , responseStartImport $+--             newStartImportResponse+--+--         , responseStopBotRecommendation $+--             newStopBotRecommendationResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateBot $+--             newUpdateBotResponse+--+--         , responseUpdateBotAlias $+--             newUpdateBotAliasResponse+--+--         , responseUpdateBotLocale $+--             newUpdateBotLocaleResponse+--+--         , responseUpdateBotRecommendation $+--             newUpdateBotRecommendationResponse+--+--         , responseUpdateExport $+--             newUpdateExportResponse+--+--         , responseUpdateIntent $+--             newUpdateIntentResponse+--+--         , responseUpdateResourcePolicy $+--             newUpdateResourcePolicyResponse+--+--         , responseUpdateSlot $+--             newUpdateSlotResponse+--+--         , responseUpdateSlotType $+--             newUpdateSlotTypeResponse+--+--           ]+--     ]++-- Requests++requestBatchCreateCustomVocabularyItem :: BatchCreateCustomVocabularyItem -> TestTree+requestBatchCreateCustomVocabularyItem =+  req+    "BatchCreateCustomVocabularyItem"+    "fixture/BatchCreateCustomVocabularyItem.yaml"++requestBatchDeleteCustomVocabularyItem :: BatchDeleteCustomVocabularyItem -> TestTree+requestBatchDeleteCustomVocabularyItem =+  req+    "BatchDeleteCustomVocabularyItem"+    "fixture/BatchDeleteCustomVocabularyItem.yaml"++requestBatchUpdateCustomVocabularyItem :: BatchUpdateCustomVocabularyItem -> TestTree+requestBatchUpdateCustomVocabularyItem =+  req+    "BatchUpdateCustomVocabularyItem"+    "fixture/BatchUpdateCustomVocabularyItem.yaml"++requestBuildBotLocale :: BuildBotLocale -> TestTree+requestBuildBotLocale =+  req+    "BuildBotLocale"+    "fixture/BuildBotLocale.yaml"++requestCreateBot :: CreateBot -> TestTree+requestCreateBot =+  req+    "CreateBot"+    "fixture/CreateBot.yaml"++requestCreateBotAlias :: CreateBotAlias -> TestTree+requestCreateBotAlias =+  req+    "CreateBotAlias"+    "fixture/CreateBotAlias.yaml"++requestCreateBotLocale :: CreateBotLocale -> TestTree+requestCreateBotLocale =+  req+    "CreateBotLocale"+    "fixture/CreateBotLocale.yaml"++requestCreateBotVersion :: CreateBotVersion -> TestTree+requestCreateBotVersion =+  req+    "CreateBotVersion"+    "fixture/CreateBotVersion.yaml"++requestCreateExport :: CreateExport -> TestTree+requestCreateExport =+  req+    "CreateExport"+    "fixture/CreateExport.yaml"++requestCreateIntent :: CreateIntent -> TestTree+requestCreateIntent =+  req+    "CreateIntent"+    "fixture/CreateIntent.yaml"++requestCreateResourcePolicy :: CreateResourcePolicy -> TestTree+requestCreateResourcePolicy =+  req+    "CreateResourcePolicy"+    "fixture/CreateResourcePolicy.yaml"++requestCreateResourcePolicyStatement :: CreateResourcePolicyStatement -> TestTree+requestCreateResourcePolicyStatement =+  req+    "CreateResourcePolicyStatement"+    "fixture/CreateResourcePolicyStatement.yaml"++requestCreateSlot :: CreateSlot -> TestTree+requestCreateSlot =+  req+    "CreateSlot"+    "fixture/CreateSlot.yaml"++requestCreateSlotType :: CreateSlotType -> TestTree+requestCreateSlotType =+  req+    "CreateSlotType"+    "fixture/CreateSlotType.yaml"++requestCreateUploadUrl :: CreateUploadUrl -> TestTree+requestCreateUploadUrl =+  req+    "CreateUploadUrl"+    "fixture/CreateUploadUrl.yaml"++requestDeleteBot :: DeleteBot -> TestTree+requestDeleteBot =+  req+    "DeleteBot"+    "fixture/DeleteBot.yaml"++requestDeleteBotAlias :: DeleteBotAlias -> TestTree+requestDeleteBotAlias =+  req+    "DeleteBotAlias"+    "fixture/DeleteBotAlias.yaml"++requestDeleteBotLocale :: DeleteBotLocale -> TestTree+requestDeleteBotLocale =+  req+    "DeleteBotLocale"+    "fixture/DeleteBotLocale.yaml"++requestDeleteBotVersion :: DeleteBotVersion -> TestTree+requestDeleteBotVersion =+  req+    "DeleteBotVersion"+    "fixture/DeleteBotVersion.yaml"++requestDeleteCustomVocabulary :: DeleteCustomVocabulary -> TestTree+requestDeleteCustomVocabulary =+  req+    "DeleteCustomVocabulary"+    "fixture/DeleteCustomVocabulary.yaml"++requestDeleteExport :: DeleteExport -> TestTree+requestDeleteExport =+  req+    "DeleteExport"+    "fixture/DeleteExport.yaml"++requestDeleteImport :: DeleteImport -> TestTree+requestDeleteImport =+  req+    "DeleteImport"+    "fixture/DeleteImport.yaml"++requestDeleteIntent :: DeleteIntent -> TestTree+requestDeleteIntent =+  req+    "DeleteIntent"+    "fixture/DeleteIntent.yaml"++requestDeleteResourcePolicy :: DeleteResourcePolicy -> TestTree+requestDeleteResourcePolicy =+  req+    "DeleteResourcePolicy"+    "fixture/DeleteResourcePolicy.yaml"++requestDeleteResourcePolicyStatement :: DeleteResourcePolicyStatement -> TestTree+requestDeleteResourcePolicyStatement =+  req+    "DeleteResourcePolicyStatement"+    "fixture/DeleteResourcePolicyStatement.yaml"++requestDeleteSlot :: DeleteSlot -> TestTree+requestDeleteSlot =+  req+    "DeleteSlot"+    "fixture/DeleteSlot.yaml"++requestDeleteSlotType :: DeleteSlotType -> TestTree+requestDeleteSlotType =+  req+    "DeleteSlotType"+    "fixture/DeleteSlotType.yaml"++requestDeleteUtterances :: DeleteUtterances -> TestTree+requestDeleteUtterances =+  req+    "DeleteUtterances"+    "fixture/DeleteUtterances.yaml"++requestDescribeBot :: DescribeBot -> TestTree+requestDescribeBot =+  req+    "DescribeBot"+    "fixture/DescribeBot.yaml"++requestDescribeBotAlias :: DescribeBotAlias -> TestTree+requestDescribeBotAlias =+  req+    "DescribeBotAlias"+    "fixture/DescribeBotAlias.yaml"++requestDescribeBotLocale :: DescribeBotLocale -> TestTree+requestDescribeBotLocale =+  req+    "DescribeBotLocale"+    "fixture/DescribeBotLocale.yaml"++requestDescribeBotRecommendation :: DescribeBotRecommendation -> TestTree+requestDescribeBotRecommendation =+  req+    "DescribeBotRecommendation"+    "fixture/DescribeBotRecommendation.yaml"++requestDescribeBotVersion :: DescribeBotVersion -> TestTree+requestDescribeBotVersion =+  req+    "DescribeBotVersion"+    "fixture/DescribeBotVersion.yaml"++requestDescribeCustomVocabularyMetadata :: DescribeCustomVocabularyMetadata -> TestTree+requestDescribeCustomVocabularyMetadata =+  req+    "DescribeCustomVocabularyMetadata"+    "fixture/DescribeCustomVocabularyMetadata.yaml"++requestDescribeExport :: DescribeExport -> TestTree+requestDescribeExport =+  req+    "DescribeExport"+    "fixture/DescribeExport.yaml"++requestDescribeImport :: DescribeImport -> TestTree+requestDescribeImport =+  req+    "DescribeImport"+    "fixture/DescribeImport.yaml"++requestDescribeIntent :: DescribeIntent -> TestTree+requestDescribeIntent =+  req+    "DescribeIntent"+    "fixture/DescribeIntent.yaml"++requestDescribeResourcePolicy :: DescribeResourcePolicy -> TestTree+requestDescribeResourcePolicy =+  req+    "DescribeResourcePolicy"+    "fixture/DescribeResourcePolicy.yaml"++requestDescribeSlot :: DescribeSlot -> TestTree+requestDescribeSlot =+  req+    "DescribeSlot"+    "fixture/DescribeSlot.yaml"++requestDescribeSlotType :: DescribeSlotType -> TestTree+requestDescribeSlotType =+  req+    "DescribeSlotType"+    "fixture/DescribeSlotType.yaml"++requestListAggregatedUtterances :: ListAggregatedUtterances -> TestTree+requestListAggregatedUtterances =+  req+    "ListAggregatedUtterances"+    "fixture/ListAggregatedUtterances.yaml"++requestListBotAliases :: ListBotAliases -> TestTree+requestListBotAliases =+  req+    "ListBotAliases"+    "fixture/ListBotAliases.yaml"++requestListBotLocales :: ListBotLocales -> TestTree+requestListBotLocales =+  req+    "ListBotLocales"+    "fixture/ListBotLocales.yaml"++requestListBotRecommendations :: ListBotRecommendations -> TestTree+requestListBotRecommendations =+  req+    "ListBotRecommendations"+    "fixture/ListBotRecommendations.yaml"++requestListBotVersions :: ListBotVersions -> TestTree+requestListBotVersions =+  req+    "ListBotVersions"+    "fixture/ListBotVersions.yaml"++requestListBots :: ListBots -> TestTree+requestListBots =+  req+    "ListBots"+    "fixture/ListBots.yaml"++requestListBuiltInIntents :: ListBuiltInIntents -> TestTree+requestListBuiltInIntents =+  req+    "ListBuiltInIntents"+    "fixture/ListBuiltInIntents.yaml"++requestListBuiltInSlotTypes :: ListBuiltInSlotTypes -> TestTree+requestListBuiltInSlotTypes =+  req+    "ListBuiltInSlotTypes"+    "fixture/ListBuiltInSlotTypes.yaml"++requestListCustomVocabularyItems :: ListCustomVocabularyItems -> TestTree+requestListCustomVocabularyItems =+  req+    "ListCustomVocabularyItems"+    "fixture/ListCustomVocabularyItems.yaml"++requestListExports :: ListExports -> TestTree+requestListExports =+  req+    "ListExports"+    "fixture/ListExports.yaml"++requestListImports :: ListImports -> TestTree+requestListImports =+  req+    "ListImports"+    "fixture/ListImports.yaml"++requestListIntents :: ListIntents -> TestTree+requestListIntents =+  req+    "ListIntents"+    "fixture/ListIntents.yaml"++requestListRecommendedIntents :: ListRecommendedIntents -> TestTree+requestListRecommendedIntents =+  req+    "ListRecommendedIntents"+    "fixture/ListRecommendedIntents.yaml"++requestListSlotTypes :: ListSlotTypes -> TestTree+requestListSlotTypes =+  req+    "ListSlotTypes"+    "fixture/ListSlotTypes.yaml"++requestListSlots :: ListSlots -> TestTree+requestListSlots =+  req+    "ListSlots"+    "fixture/ListSlots.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestSearchAssociatedTranscripts :: SearchAssociatedTranscripts -> TestTree+requestSearchAssociatedTranscripts =+  req+    "SearchAssociatedTranscripts"+    "fixture/SearchAssociatedTranscripts.yaml"++requestStartBotRecommendation :: StartBotRecommendation -> TestTree+requestStartBotRecommendation =+  req+    "StartBotRecommendation"+    "fixture/StartBotRecommendation.yaml"++requestStartImport :: StartImport -> TestTree+requestStartImport =+  req+    "StartImport"+    "fixture/StartImport.yaml"++requestStopBotRecommendation :: StopBotRecommendation -> TestTree+requestStopBotRecommendation =+  req+    "StopBotRecommendation"+    "fixture/StopBotRecommendation.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateBot :: UpdateBot -> TestTree+requestUpdateBot =+  req+    "UpdateBot"+    "fixture/UpdateBot.yaml"++requestUpdateBotAlias :: UpdateBotAlias -> TestTree+requestUpdateBotAlias =+  req+    "UpdateBotAlias"+    "fixture/UpdateBotAlias.yaml"++requestUpdateBotLocale :: UpdateBotLocale -> TestTree+requestUpdateBotLocale =+  req+    "UpdateBotLocale"+    "fixture/UpdateBotLocale.yaml"++requestUpdateBotRecommendation :: UpdateBotRecommendation -> TestTree+requestUpdateBotRecommendation =+  req+    "UpdateBotRecommendation"+    "fixture/UpdateBotRecommendation.yaml"++requestUpdateExport :: UpdateExport -> TestTree+requestUpdateExport =+  req+    "UpdateExport"+    "fixture/UpdateExport.yaml"++requestUpdateIntent :: UpdateIntent -> TestTree+requestUpdateIntent =+  req+    "UpdateIntent"+    "fixture/UpdateIntent.yaml"++requestUpdateResourcePolicy :: UpdateResourcePolicy -> TestTree+requestUpdateResourcePolicy =+  req+    "UpdateResourcePolicy"+    "fixture/UpdateResourcePolicy.yaml"++requestUpdateSlot :: UpdateSlot -> TestTree+requestUpdateSlot =+  req+    "UpdateSlot"+    "fixture/UpdateSlot.yaml"++requestUpdateSlotType :: UpdateSlotType -> TestTree+requestUpdateSlotType =+  req+    "UpdateSlotType"+    "fixture/UpdateSlotType.yaml"++-- Responses++responseBatchCreateCustomVocabularyItem :: BatchCreateCustomVocabularyItemResponse -> TestTree+responseBatchCreateCustomVocabularyItem =+  res+    "BatchCreateCustomVocabularyItemResponse"+    "fixture/BatchCreateCustomVocabularyItemResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchCreateCustomVocabularyItem)++responseBatchDeleteCustomVocabularyItem :: BatchDeleteCustomVocabularyItemResponse -> TestTree+responseBatchDeleteCustomVocabularyItem =+  res+    "BatchDeleteCustomVocabularyItemResponse"+    "fixture/BatchDeleteCustomVocabularyItemResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchDeleteCustomVocabularyItem)++responseBatchUpdateCustomVocabularyItem :: BatchUpdateCustomVocabularyItemResponse -> TestTree+responseBatchUpdateCustomVocabularyItem =+  res+    "BatchUpdateCustomVocabularyItemResponse"+    "fixture/BatchUpdateCustomVocabularyItemResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchUpdateCustomVocabularyItem)++responseBuildBotLocale :: BuildBotLocaleResponse -> TestTree+responseBuildBotLocale =+  res+    "BuildBotLocaleResponse"+    "fixture/BuildBotLocaleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BuildBotLocale)++responseCreateBot :: CreateBotResponse -> TestTree+responseCreateBot =+  res+    "CreateBotResponse"+    "fixture/CreateBotResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateBot)++responseCreateBotAlias :: CreateBotAliasResponse -> TestTree+responseCreateBotAlias =+  res+    "CreateBotAliasResponse"+    "fixture/CreateBotAliasResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateBotAlias)++responseCreateBotLocale :: CreateBotLocaleResponse -> TestTree+responseCreateBotLocale =+  res+    "CreateBotLocaleResponse"+    "fixture/CreateBotLocaleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateBotLocale)++responseCreateBotVersion :: CreateBotVersionResponse -> TestTree+responseCreateBotVersion =+  res+    "CreateBotVersionResponse"+    "fixture/CreateBotVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateBotVersion)++responseCreateExport :: CreateExportResponse -> TestTree+responseCreateExport =+  res+    "CreateExportResponse"+    "fixture/CreateExportResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateExport)++responseCreateIntent :: CreateIntentResponse -> TestTree+responseCreateIntent =+  res+    "CreateIntentResponse"+    "fixture/CreateIntentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateIntent)++responseCreateResourcePolicy :: CreateResourcePolicyResponse -> TestTree+responseCreateResourcePolicy =+  res+    "CreateResourcePolicyResponse"+    "fixture/CreateResourcePolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateResourcePolicy)++responseCreateResourcePolicyStatement :: CreateResourcePolicyStatementResponse -> TestTree+responseCreateResourcePolicyStatement =+  res+    "CreateResourcePolicyStatementResponse"+    "fixture/CreateResourcePolicyStatementResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateResourcePolicyStatement)++responseCreateSlot :: CreateSlotResponse -> TestTree+responseCreateSlot =+  res+    "CreateSlotResponse"+    "fixture/CreateSlotResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateSlot)++responseCreateSlotType :: CreateSlotTypeResponse -> TestTree+responseCreateSlotType =+  res+    "CreateSlotTypeResponse"+    "fixture/CreateSlotTypeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateSlotType)++responseCreateUploadUrl :: CreateUploadUrlResponse -> TestTree+responseCreateUploadUrl =+  res+    "CreateUploadUrlResponse"+    "fixture/CreateUploadUrlResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateUploadUrl)++responseDeleteBot :: DeleteBotResponse -> TestTree+responseDeleteBot =+  res+    "DeleteBotResponse"+    "fixture/DeleteBotResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteBot)++responseDeleteBotAlias :: DeleteBotAliasResponse -> TestTree+responseDeleteBotAlias =+  res+    "DeleteBotAliasResponse"+    "fixture/DeleteBotAliasResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteBotAlias)++responseDeleteBotLocale :: DeleteBotLocaleResponse -> TestTree+responseDeleteBotLocale =+  res+    "DeleteBotLocaleResponse"+    "fixture/DeleteBotLocaleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteBotLocale)++responseDeleteBotVersion :: DeleteBotVersionResponse -> TestTree+responseDeleteBotVersion =+  res+    "DeleteBotVersionResponse"+    "fixture/DeleteBotVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteBotVersion)++responseDeleteCustomVocabulary :: DeleteCustomVocabularyResponse -> TestTree+responseDeleteCustomVocabulary =+  res+    "DeleteCustomVocabularyResponse"+    "fixture/DeleteCustomVocabularyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteCustomVocabulary)++responseDeleteExport :: DeleteExportResponse -> TestTree+responseDeleteExport =+  res+    "DeleteExportResponse"+    "fixture/DeleteExportResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteExport)++responseDeleteImport :: DeleteImportResponse -> TestTree+responseDeleteImport =+  res+    "DeleteImportResponse"+    "fixture/DeleteImportResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteImport)++responseDeleteIntent :: DeleteIntentResponse -> TestTree+responseDeleteIntent =+  res+    "DeleteIntentResponse"+    "fixture/DeleteIntentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteIntent)++responseDeleteResourcePolicy :: DeleteResourcePolicyResponse -> TestTree+responseDeleteResourcePolicy =+  res+    "DeleteResourcePolicyResponse"+    "fixture/DeleteResourcePolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteResourcePolicy)++responseDeleteResourcePolicyStatement :: DeleteResourcePolicyStatementResponse -> TestTree+responseDeleteResourcePolicyStatement =+  res+    "DeleteResourcePolicyStatementResponse"+    "fixture/DeleteResourcePolicyStatementResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteResourcePolicyStatement)++responseDeleteSlot :: DeleteSlotResponse -> TestTree+responseDeleteSlot =+  res+    "DeleteSlotResponse"+    "fixture/DeleteSlotResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteSlot)++responseDeleteSlotType :: DeleteSlotTypeResponse -> TestTree+responseDeleteSlotType =+  res+    "DeleteSlotTypeResponse"+    "fixture/DeleteSlotTypeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteSlotType)++responseDeleteUtterances :: DeleteUtterancesResponse -> TestTree+responseDeleteUtterances =+  res+    "DeleteUtterancesResponse"+    "fixture/DeleteUtterancesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteUtterances)++responseDescribeBot :: DescribeBotResponse -> TestTree+responseDescribeBot =+  res+    "DescribeBotResponse"+    "fixture/DescribeBotResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeBot)++responseDescribeBotAlias :: DescribeBotAliasResponse -> TestTree+responseDescribeBotAlias =+  res+    "DescribeBotAliasResponse"+    "fixture/DescribeBotAliasResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeBotAlias)++responseDescribeBotLocale :: DescribeBotLocaleResponse -> TestTree+responseDescribeBotLocale =+  res+    "DescribeBotLocaleResponse"+    "fixture/DescribeBotLocaleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeBotLocale)++responseDescribeBotRecommendation :: DescribeBotRecommendationResponse -> TestTree+responseDescribeBotRecommendation =+  res+    "DescribeBotRecommendationResponse"+    "fixture/DescribeBotRecommendationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeBotRecommendation)++responseDescribeBotVersion :: DescribeBotVersionResponse -> TestTree+responseDescribeBotVersion =+  res+    "DescribeBotVersionResponse"+    "fixture/DescribeBotVersionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeBotVersion)++responseDescribeCustomVocabularyMetadata :: DescribeCustomVocabularyMetadataResponse -> TestTree+responseDescribeCustomVocabularyMetadata =+  res+    "DescribeCustomVocabularyMetadataResponse"+    "fixture/DescribeCustomVocabularyMetadataResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeCustomVocabularyMetadata)++responseDescribeExport :: DescribeExportResponse -> TestTree+responseDescribeExport =+  res+    "DescribeExportResponse"+    "fixture/DescribeExportResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeExport)++responseDescribeImport :: DescribeImportResponse -> TestTree+responseDescribeImport =+  res+    "DescribeImportResponse"+    "fixture/DescribeImportResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeImport)++responseDescribeIntent :: DescribeIntentResponse -> TestTree+responseDescribeIntent =+  res+    "DescribeIntentResponse"+    "fixture/DescribeIntentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeIntent)++responseDescribeResourcePolicy :: DescribeResourcePolicyResponse -> TestTree+responseDescribeResourcePolicy =+  res+    "DescribeResourcePolicyResponse"+    "fixture/DescribeResourcePolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeResourcePolicy)++responseDescribeSlot :: DescribeSlotResponse -> TestTree+responseDescribeSlot =+  res+    "DescribeSlotResponse"+    "fixture/DescribeSlotResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeSlot)++responseDescribeSlotType :: DescribeSlotTypeResponse -> TestTree+responseDescribeSlotType =+  res+    "DescribeSlotTypeResponse"+    "fixture/DescribeSlotTypeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeSlotType)++responseListAggregatedUtterances :: ListAggregatedUtterancesResponse -> TestTree+responseListAggregatedUtterances =+  res+    "ListAggregatedUtterancesResponse"+    "fixture/ListAggregatedUtterancesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAggregatedUtterances)++responseListBotAliases :: ListBotAliasesResponse -> TestTree+responseListBotAliases =+  res+    "ListBotAliasesResponse"+    "fixture/ListBotAliasesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListBotAliases)++responseListBotLocales :: ListBotLocalesResponse -> TestTree+responseListBotLocales =+  res+    "ListBotLocalesResponse"+    "fixture/ListBotLocalesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListBotLocales)++responseListBotRecommendations :: ListBotRecommendationsResponse -> TestTree+responseListBotRecommendations =+  res+    "ListBotRecommendationsResponse"+    "fixture/ListBotRecommendationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListBotRecommendations)++responseListBotVersions :: ListBotVersionsResponse -> TestTree+responseListBotVersions =+  res+    "ListBotVersionsResponse"+    "fixture/ListBotVersionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListBotVersions)++responseListBots :: ListBotsResponse -> TestTree+responseListBots =+  res+    "ListBotsResponse"+    "fixture/ListBotsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListBots)++responseListBuiltInIntents :: ListBuiltInIntentsResponse -> TestTree+responseListBuiltInIntents =+  res+    "ListBuiltInIntentsResponse"+    "fixture/ListBuiltInIntentsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListBuiltInIntents)++responseListBuiltInSlotTypes :: ListBuiltInSlotTypesResponse -> TestTree+responseListBuiltInSlotTypes =+  res+    "ListBuiltInSlotTypesResponse"+    "fixture/ListBuiltInSlotTypesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListBuiltInSlotTypes)++responseListCustomVocabularyItems :: ListCustomVocabularyItemsResponse -> TestTree+responseListCustomVocabularyItems =+  res+    "ListCustomVocabularyItemsResponse"+    "fixture/ListCustomVocabularyItemsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListCustomVocabularyItems)++responseListExports :: ListExportsResponse -> TestTree+responseListExports =+  res+    "ListExportsResponse"+    "fixture/ListExportsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListExports)++responseListImports :: ListImportsResponse -> TestTree+responseListImports =+  res+    "ListImportsResponse"+    "fixture/ListImportsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListImports)++responseListIntents :: ListIntentsResponse -> TestTree+responseListIntents =+  res+    "ListIntentsResponse"+    "fixture/ListIntentsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListIntents)++responseListRecommendedIntents :: ListRecommendedIntentsResponse -> TestTree+responseListRecommendedIntents =+  res+    "ListRecommendedIntentsResponse"+    "fixture/ListRecommendedIntentsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListRecommendedIntents)++responseListSlotTypes :: ListSlotTypesResponse -> TestTree+responseListSlotTypes =+  res+    "ListSlotTypesResponse"+    "fixture/ListSlotTypesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSlotTypes)++responseListSlots :: ListSlotsResponse -> TestTree+responseListSlots =+  res+    "ListSlotsResponse"+    "fixture/ListSlotsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSlots)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseSearchAssociatedTranscripts :: SearchAssociatedTranscriptsResponse -> TestTree+responseSearchAssociatedTranscripts =+  res+    "SearchAssociatedTranscriptsResponse"+    "fixture/SearchAssociatedTranscriptsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy SearchAssociatedTranscripts)++responseStartBotRecommendation :: StartBotRecommendationResponse -> TestTree+responseStartBotRecommendation =+  res+    "StartBotRecommendationResponse"+    "fixture/StartBotRecommendationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartBotRecommendation)++responseStartImport :: StartImportResponse -> TestTree+responseStartImport =+  res+    "StartImportResponse"+    "fixture/StartImportResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartImport)++responseStopBotRecommendation :: StopBotRecommendationResponse -> TestTree+responseStopBotRecommendation =+  res+    "StopBotRecommendationResponse"+    "fixture/StopBotRecommendationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StopBotRecommendation)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+  res+    "TagResourceResponse"+    "fixture/TagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy TagResource)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+  res+    "UntagResourceResponse"+    "fixture/UntagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UntagResource)++responseUpdateBot :: UpdateBotResponse -> TestTree+responseUpdateBot =+  res+    "UpdateBotResponse"+    "fixture/UpdateBotResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateBot)++responseUpdateBotAlias :: UpdateBotAliasResponse -> TestTree+responseUpdateBotAlias =+  res+    "UpdateBotAliasResponse"+    "fixture/UpdateBotAliasResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateBotAlias)++responseUpdateBotLocale :: UpdateBotLocaleResponse -> TestTree+responseUpdateBotLocale =+  res+    "UpdateBotLocaleResponse"+    "fixture/UpdateBotLocaleResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateBotLocale)++responseUpdateBotRecommendation :: UpdateBotRecommendationResponse -> TestTree+responseUpdateBotRecommendation =+  res+    "UpdateBotRecommendationResponse"+    "fixture/UpdateBotRecommendationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateBotRecommendation)++responseUpdateExport :: UpdateExportResponse -> TestTree+responseUpdateExport =+  res+    "UpdateExportResponse"+    "fixture/UpdateExportResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateExport)++responseUpdateIntent :: UpdateIntentResponse -> TestTree+responseUpdateIntent =+  res+    "UpdateIntentResponse"+    "fixture/UpdateIntentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateIntent)++responseUpdateResourcePolicy :: UpdateResourcePolicyResponse -> TestTree+responseUpdateResourcePolicy =+  res+    "UpdateResourcePolicyResponse"+    "fixture/UpdateResourcePolicyResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateResourcePolicy)++responseUpdateSlot :: UpdateSlotResponse -> TestTree+responseUpdateSlot =+  res+    "UpdateSlotResponse"+    "fixture/UpdateSlotResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateSlot)++responseUpdateSlotType :: UpdateSlotTypeResponse -> TestTree+responseUpdateSlotType =+  res+    "UpdateSlotTypeResponse"+    "fixture/UpdateSlotTypeResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateSlotType)
+ test/Test/Amazonka/LexV2Models.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.LexV2Models+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.LexV2Models+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/LexV2Models/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.LexV2Models.Internal+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Test.Amazonka.LexV2Models.Internal where