packages feed

amazonka-kendra (empty) → 2.0

raw patch · 388 files changed

+49579/−0 lines, 388 filesdep +amazonka-coredep +amazonka-kendradep +amazonka-test

Dependencies added: amazonka-core, amazonka-kendra, 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 KendraFrontendService SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version+ +`2.0` - Derived from API version @2019-02-03@ of the AWS service descriptions, licensed under Apache 2.0.++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-kendra)+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.Kendra](http://hackage.haskell.org/package/amazonka-kendra/docs/Amazonka-Kendra.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-kendra` 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-kendra.cabal view
@@ -0,0 +1,337 @@+cabal-version:      2.2+name:               amazonka-kendra+version:            2.0+synopsis:           Amazon KendraFrontendService 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 @2019-02-03@ 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.Kendra.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.Kendra" 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-kendra++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.Kendra+    Amazonka.Kendra.AssociateEntitiesToExperience+    Amazonka.Kendra.AssociatePersonasToEntities+    Amazonka.Kendra.BatchDeleteDocument+    Amazonka.Kendra.BatchGetDocumentStatus+    Amazonka.Kendra.BatchPutDocument+    Amazonka.Kendra.ClearQuerySuggestions+    Amazonka.Kendra.CreateAccessControlConfiguration+    Amazonka.Kendra.CreateDataSource+    Amazonka.Kendra.CreateExperience+    Amazonka.Kendra.CreateFaq+    Amazonka.Kendra.CreateIndex+    Amazonka.Kendra.CreateQuerySuggestionsBlockList+    Amazonka.Kendra.CreateThesaurus+    Amazonka.Kendra.DeleteAccessControlConfiguration+    Amazonka.Kendra.DeleteDataSource+    Amazonka.Kendra.DeleteExperience+    Amazonka.Kendra.DeleteFaq+    Amazonka.Kendra.DeleteIndex+    Amazonka.Kendra.DeletePrincipalMapping+    Amazonka.Kendra.DeleteQuerySuggestionsBlockList+    Amazonka.Kendra.DeleteThesaurus+    Amazonka.Kendra.DescribeAccessControlConfiguration+    Amazonka.Kendra.DescribeDataSource+    Amazonka.Kendra.DescribeExperience+    Amazonka.Kendra.DescribeFaq+    Amazonka.Kendra.DescribeIndex+    Amazonka.Kendra.DescribePrincipalMapping+    Amazonka.Kendra.DescribeQuerySuggestionsBlockList+    Amazonka.Kendra.DescribeQuerySuggestionsConfig+    Amazonka.Kendra.DescribeThesaurus+    Amazonka.Kendra.DisassociateEntitiesFromExperience+    Amazonka.Kendra.DisassociatePersonasFromEntities+    Amazonka.Kendra.GetQuerySuggestions+    Amazonka.Kendra.GetSnapshots+    Amazonka.Kendra.Lens+    Amazonka.Kendra.ListAccessControlConfigurations+    Amazonka.Kendra.ListDataSources+    Amazonka.Kendra.ListDataSourceSyncJobs+    Amazonka.Kendra.ListEntityPersonas+    Amazonka.Kendra.ListExperienceEntities+    Amazonka.Kendra.ListExperiences+    Amazonka.Kendra.ListFaqs+    Amazonka.Kendra.ListGroupsOlderThanOrderingId+    Amazonka.Kendra.ListIndices+    Amazonka.Kendra.ListQuerySuggestionsBlockLists+    Amazonka.Kendra.ListTagsForResource+    Amazonka.Kendra.ListThesauri+    Amazonka.Kendra.PutPrincipalMapping+    Amazonka.Kendra.Query+    Amazonka.Kendra.StartDataSourceSyncJob+    Amazonka.Kendra.StopDataSourceSyncJob+    Amazonka.Kendra.SubmitFeedback+    Amazonka.Kendra.TagResource+    Amazonka.Kendra.Types+    Amazonka.Kendra.Types.AccessControlConfigurationSummary+    Amazonka.Kendra.Types.AccessControlListConfiguration+    Amazonka.Kendra.Types.AclConfiguration+    Amazonka.Kendra.Types.AdditionalResultAttribute+    Amazonka.Kendra.Types.AdditionalResultAttributeValue+    Amazonka.Kendra.Types.AdditionalResultAttributeValueType+    Amazonka.Kendra.Types.AlfrescoConfiguration+    Amazonka.Kendra.Types.AlfrescoEntity+    Amazonka.Kendra.Types.AttributeFilter+    Amazonka.Kendra.Types.AuthenticationConfiguration+    Amazonka.Kendra.Types.BasicAuthenticationConfiguration+    Amazonka.Kendra.Types.BatchDeleteDocumentResponseFailedDocument+    Amazonka.Kendra.Types.BatchGetDocumentStatusResponseError+    Amazonka.Kendra.Types.BatchPutDocumentResponseFailedDocument+    Amazonka.Kendra.Types.BoxConfiguration+    Amazonka.Kendra.Types.CapacityUnitsConfiguration+    Amazonka.Kendra.Types.ClickFeedback+    Amazonka.Kendra.Types.ColumnConfiguration+    Amazonka.Kendra.Types.ConditionOperator+    Amazonka.Kendra.Types.ConfluenceAttachmentConfiguration+    Amazonka.Kendra.Types.ConfluenceAttachmentFieldName+    Amazonka.Kendra.Types.ConfluenceAttachmentToIndexFieldMapping+    Amazonka.Kendra.Types.ConfluenceAuthenticationType+    Amazonka.Kendra.Types.ConfluenceBlogConfiguration+    Amazonka.Kendra.Types.ConfluenceBlogFieldName+    Amazonka.Kendra.Types.ConfluenceBlogToIndexFieldMapping+    Amazonka.Kendra.Types.ConfluenceConfiguration+    Amazonka.Kendra.Types.ConfluencePageConfiguration+    Amazonka.Kendra.Types.ConfluencePageFieldName+    Amazonka.Kendra.Types.ConfluencePageToIndexFieldMapping+    Amazonka.Kendra.Types.ConfluenceSpaceConfiguration+    Amazonka.Kendra.Types.ConfluenceSpaceFieldName+    Amazonka.Kendra.Types.ConfluenceSpaceToIndexFieldMapping+    Amazonka.Kendra.Types.ConfluenceVersion+    Amazonka.Kendra.Types.ConnectionConfiguration+    Amazonka.Kendra.Types.ContentSourceConfiguration+    Amazonka.Kendra.Types.ContentType+    Amazonka.Kendra.Types.Correction+    Amazonka.Kendra.Types.CustomDocumentEnrichmentConfiguration+    Amazonka.Kendra.Types.DatabaseConfiguration+    Amazonka.Kendra.Types.DatabaseEngineType+    Amazonka.Kendra.Types.DataSourceConfiguration+    Amazonka.Kendra.Types.DataSourceGroup+    Amazonka.Kendra.Types.DataSourceStatus+    Amazonka.Kendra.Types.DataSourceSummary+    Amazonka.Kendra.Types.DataSourceSyncJob+    Amazonka.Kendra.Types.DataSourceSyncJobMetrics+    Amazonka.Kendra.Types.DataSourceSyncJobMetricTarget+    Amazonka.Kendra.Types.DataSourceSyncJobStatus+    Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+    Amazonka.Kendra.Types.DataSourceType+    Amazonka.Kendra.Types.DataSourceVpcConfiguration+    Amazonka.Kendra.Types.Document+    Amazonka.Kendra.Types.DocumentAttribute+    Amazonka.Kendra.Types.DocumentAttributeCondition+    Amazonka.Kendra.Types.DocumentAttributeTarget+    Amazonka.Kendra.Types.DocumentAttributeValue+    Amazonka.Kendra.Types.DocumentAttributeValueCountPair+    Amazonka.Kendra.Types.DocumentAttributeValueType+    Amazonka.Kendra.Types.DocumentInfo+    Amazonka.Kendra.Types.DocumentMetadataConfiguration+    Amazonka.Kendra.Types.DocumentRelevanceConfiguration+    Amazonka.Kendra.Types.DocumentsMetadataConfiguration+    Amazonka.Kendra.Types.DocumentStatus+    Amazonka.Kendra.Types.EndpointType+    Amazonka.Kendra.Types.EntityConfiguration+    Amazonka.Kendra.Types.EntityDisplayData+    Amazonka.Kendra.Types.EntityPersonaConfiguration+    Amazonka.Kendra.Types.EntityType+    Amazonka.Kendra.Types.ErrorCode+    Amazonka.Kendra.Types.ExperienceConfiguration+    Amazonka.Kendra.Types.ExperienceEndpoint+    Amazonka.Kendra.Types.ExperienceEntitiesSummary+    Amazonka.Kendra.Types.ExperiencesSummary+    Amazonka.Kendra.Types.ExperienceStatus+    Amazonka.Kendra.Types.Facet+    Amazonka.Kendra.Types.FacetResult+    Amazonka.Kendra.Types.FailedEntity+    Amazonka.Kendra.Types.FaqFileFormat+    Amazonka.Kendra.Types.FaqStatistics+    Amazonka.Kendra.Types.FaqStatus+    Amazonka.Kendra.Types.FaqSummary+    Amazonka.Kendra.Types.FsxConfiguration+    Amazonka.Kendra.Types.FsxFileSystemType+    Amazonka.Kendra.Types.GitHubConfiguration+    Amazonka.Kendra.Types.GitHubDocumentCrawlProperties+    Amazonka.Kendra.Types.GoogleDriveConfiguration+    Amazonka.Kendra.Types.GroupMembers+    Amazonka.Kendra.Types.GroupOrderingIdSummary+    Amazonka.Kendra.Types.GroupSummary+    Amazonka.Kendra.Types.HierarchicalPrincipal+    Amazonka.Kendra.Types.Highlight+    Amazonka.Kendra.Types.HighlightType+    Amazonka.Kendra.Types.HookConfiguration+    Amazonka.Kendra.Types.IndexConfigurationSummary+    Amazonka.Kendra.Types.IndexEdition+    Amazonka.Kendra.Types.IndexStatistics+    Amazonka.Kendra.Types.IndexStatus+    Amazonka.Kendra.Types.InlineCustomDocumentEnrichmentConfiguration+    Amazonka.Kendra.Types.Interval+    Amazonka.Kendra.Types.IssueSubEntity+    Amazonka.Kendra.Types.JiraConfiguration+    Amazonka.Kendra.Types.JsonTokenTypeConfiguration+    Amazonka.Kendra.Types.JwtTokenTypeConfiguration+    Amazonka.Kendra.Types.KeyLocation+    Amazonka.Kendra.Types.MemberGroup+    Amazonka.Kendra.Types.MemberUser+    Amazonka.Kendra.Types.MetricType+    Amazonka.Kendra.Types.Mode+    Amazonka.Kendra.Types.OneDriveConfiguration+    Amazonka.Kendra.Types.OneDriveUsers+    Amazonka.Kendra.Types.OnPremiseConfiguration+    Amazonka.Kendra.Types.Order+    Amazonka.Kendra.Types.Persona+    Amazonka.Kendra.Types.PersonasSummary+    Amazonka.Kendra.Types.Principal+    Amazonka.Kendra.Types.PrincipalMappingStatus+    Amazonka.Kendra.Types.PrincipalType+    Amazonka.Kendra.Types.ProxyConfiguration+    Amazonka.Kendra.Types.QueryIdentifiersEnclosingOption+    Amazonka.Kendra.Types.QueryResultFormat+    Amazonka.Kendra.Types.QueryResultItem+    Amazonka.Kendra.Types.QueryResultType+    Amazonka.Kendra.Types.QuerySuggestionsBlockListStatus+    Amazonka.Kendra.Types.QuerySuggestionsBlockListSummary+    Amazonka.Kendra.Types.QuerySuggestionsStatus+    Amazonka.Kendra.Types.QuipConfiguration+    Amazonka.Kendra.Types.ReadAccessType+    Amazonka.Kendra.Types.Relevance+    Amazonka.Kendra.Types.RelevanceFeedback+    Amazonka.Kendra.Types.RelevanceType+    Amazonka.Kendra.Types.S3DataSourceConfiguration+    Amazonka.Kendra.Types.S3Path+    Amazonka.Kendra.Types.SaaSConfiguration+    Amazonka.Kendra.Types.SalesforceChatterFeedConfiguration+    Amazonka.Kendra.Types.SalesforceChatterFeedIncludeFilterType+    Amazonka.Kendra.Types.SalesforceConfiguration+    Amazonka.Kendra.Types.SalesforceCustomKnowledgeArticleTypeConfiguration+    Amazonka.Kendra.Types.SalesforceKnowledgeArticleConfiguration+    Amazonka.Kendra.Types.SalesforceKnowledgeArticleState+    Amazonka.Kendra.Types.SalesforceStandardKnowledgeArticleTypeConfiguration+    Amazonka.Kendra.Types.SalesforceStandardObjectAttachmentConfiguration+    Amazonka.Kendra.Types.SalesforceStandardObjectConfiguration+    Amazonka.Kendra.Types.SalesforceStandardObjectName+    Amazonka.Kendra.Types.ScoreAttributes+    Amazonka.Kendra.Types.ScoreConfidence+    Amazonka.Kendra.Types.Search+    Amazonka.Kendra.Types.SeedUrlConfiguration+    Amazonka.Kendra.Types.ServerSideEncryptionConfiguration+    Amazonka.Kendra.Types.ServiceNowAuthenticationType+    Amazonka.Kendra.Types.ServiceNowBuildVersionType+    Amazonka.Kendra.Types.ServiceNowConfiguration+    Amazonka.Kendra.Types.ServiceNowKnowledgeArticleConfiguration+    Amazonka.Kendra.Types.ServiceNowServiceCatalogConfiguration+    Amazonka.Kendra.Types.SharePointConfiguration+    Amazonka.Kendra.Types.SharePointOnlineAuthenticationType+    Amazonka.Kendra.Types.SharePointVersion+    Amazonka.Kendra.Types.SiteMapsConfiguration+    Amazonka.Kendra.Types.SlackConfiguration+    Amazonka.Kendra.Types.SlackEntity+    Amazonka.Kendra.Types.SortingConfiguration+    Amazonka.Kendra.Types.SortOrder+    Amazonka.Kendra.Types.SpellCorrectedQuery+    Amazonka.Kendra.Types.SpellCorrectionConfiguration+    Amazonka.Kendra.Types.SqlConfiguration+    Amazonka.Kendra.Types.Status+    Amazonka.Kendra.Types.Suggestion+    Amazonka.Kendra.Types.SuggestionHighlight+    Amazonka.Kendra.Types.SuggestionTextWithHighlights+    Amazonka.Kendra.Types.SuggestionValue+    Amazonka.Kendra.Types.TableCell+    Amazonka.Kendra.Types.TableExcerpt+    Amazonka.Kendra.Types.TableRow+    Amazonka.Kendra.Types.Tag+    Amazonka.Kendra.Types.Template+    Amazonka.Kendra.Types.TemplateConfiguration+    Amazonka.Kendra.Types.TextDocumentStatistics+    Amazonka.Kendra.Types.TextWithHighlights+    Amazonka.Kendra.Types.ThesaurusStatus+    Amazonka.Kendra.Types.ThesaurusSummary+    Amazonka.Kendra.Types.TimeRange+    Amazonka.Kendra.Types.Type+    Amazonka.Kendra.Types.Urls+    Amazonka.Kendra.Types.UserContext+    Amazonka.Kendra.Types.UserContextPolicy+    Amazonka.Kendra.Types.UserGroupResolutionConfiguration+    Amazonka.Kendra.Types.UserGroupResolutionMode+    Amazonka.Kendra.Types.UserIdentityConfiguration+    Amazonka.Kendra.Types.UserTokenConfiguration+    Amazonka.Kendra.Types.Warning+    Amazonka.Kendra.Types.WarningCode+    Amazonka.Kendra.Types.WebCrawlerConfiguration+    Amazonka.Kendra.Types.WebCrawlerMode+    Amazonka.Kendra.Types.WorkDocsConfiguration+    Amazonka.Kendra.UntagResource+    Amazonka.Kendra.UpdateAccessControlConfiguration+    Amazonka.Kendra.UpdateDataSource+    Amazonka.Kendra.UpdateExperience+    Amazonka.Kendra.UpdateIndex+    Amazonka.Kendra.UpdateQuerySuggestionsBlockList+    Amazonka.Kendra.UpdateQuerySuggestionsConfig+    Amazonka.Kendra.UpdateThesaurus+    Amazonka.Kendra.Waiters++  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5++test-suite amazonka-kendra-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.Kendra+    Test.Amazonka.Kendra+    Test.Amazonka.Kendra.Internal++  build-depends:+    , amazonka-core         >=2.0 && <2.1+    , amazonka-kendra+    , amazonka-test         >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/AssociateEntitiesToExperience.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/AssociateEntitiesToExperienceResponse.proto view
+ fixture/AssociatePersonasToEntities.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/AssociatePersonasToEntitiesResponse.proto view
+ fixture/BatchDeleteDocument.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/BatchDeleteDocumentResponse.proto view
+ fixture/BatchGetDocumentStatus.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/BatchGetDocumentStatusResponse.proto view
+ fixture/BatchPutDocument.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/BatchPutDocumentResponse.proto view
+ fixture/ClearQuerySuggestions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/ClearQuerySuggestionsResponse.proto view
+ fixture/CreateAccessControlConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/CreateAccessControlConfigurationResponse.proto view
+ fixture/CreateDataSource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/CreateDataSourceResponse.proto view
+ fixture/CreateExperience.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/CreateExperienceResponse.proto view
+ fixture/CreateFaq.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/CreateFaqResponse.proto view
+ fixture/CreateIndex.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/CreateIndexResponse.proto view
+ fixture/CreateQuerySuggestionsBlockList.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/CreateQuerySuggestionsBlockListResponse.proto view
+ fixture/CreateThesaurus.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/CreateThesaurusResponse.proto view
+ fixture/DeleteAccessControlConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DeleteAccessControlConfigurationResponse.proto view
+ fixture/DeleteDataSource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DeleteDataSourceResponse.proto view
+ fixture/DeleteExperience.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DeleteExperienceResponse.proto view
+ fixture/DeleteFaq.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DeleteFaqResponse.proto view
+ fixture/DeleteIndex.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DeleteIndexResponse.proto view
+ fixture/DeletePrincipalMapping.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DeletePrincipalMappingResponse.proto view
+ fixture/DeleteQuerySuggestionsBlockList.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DeleteQuerySuggestionsBlockListResponse.proto view
+ fixture/DeleteThesaurus.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DeleteThesaurusResponse.proto view
+ fixture/DescribeAccessControlConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DescribeAccessControlConfigurationResponse.proto view
+ fixture/DescribeDataSource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DescribeDataSourceResponse.proto view
+ fixture/DescribeExperience.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DescribeExperienceResponse.proto view
+ fixture/DescribeFaq.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DescribeFaqResponse.proto view
+ fixture/DescribeIndex.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DescribeIndexResponse.proto view
+ fixture/DescribePrincipalMapping.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DescribePrincipalMappingResponse.proto view
+ fixture/DescribeQuerySuggestionsBlockList.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DescribeQuerySuggestionsBlockListResponse.proto view
+ fixture/DescribeQuerySuggestionsConfig.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DescribeQuerySuggestionsConfigResponse.proto view
+ fixture/DescribeThesaurus.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DescribeThesaurusResponse.proto view
+ fixture/DisassociateEntitiesFromExperience.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DisassociateEntitiesFromExperienceResponse.proto view
+ fixture/DisassociatePersonasFromEntities.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/DisassociatePersonasFromEntitiesResponse.proto view
+ fixture/GetQuerySuggestions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/GetQuerySuggestionsResponse.proto view
+ fixture/GetSnapshots.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/GetSnapshotsResponse.proto view
+ fixture/ListAccessControlConfigurations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/ListAccessControlConfigurationsResponse.proto view
+ fixture/ListDataSourceSyncJobs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/ListDataSourceSyncJobsResponse.proto view
+ fixture/ListDataSources.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/ListDataSourcesResponse.proto view
+ fixture/ListEntityPersonas.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/ListEntityPersonasResponse.proto view
+ fixture/ListExperienceEntities.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/ListExperienceEntitiesResponse.proto view
+ fixture/ListExperiences.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/ListExperiencesResponse.proto view
+ fixture/ListFaqs.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/ListFaqsResponse.proto view
+ fixture/ListGroupsOlderThanOrderingId.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/ListGroupsOlderThanOrderingIdResponse.proto view
+ fixture/ListIndices.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/ListIndicesResponse.proto view
+ fixture/ListQuerySuggestionsBlockLists.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/ListQuerySuggestionsBlockListsResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/ListThesauri.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/ListThesauriResponse.proto view
+ fixture/PutPrincipalMapping.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/PutPrincipalMappingResponse.proto view
+ fixture/Query.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/QueryResponse.proto view
+ fixture/StartDataSourceSyncJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/StartDataSourceSyncJobResponse.proto view
+ fixture/StopDataSourceSyncJob.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/StopDataSourceSyncJobResponse.proto view
+ fixture/SubmitFeedback.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/SubmitFeedbackResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/UpdateAccessControlConfiguration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/UpdateAccessControlConfigurationResponse.proto view
+ fixture/UpdateDataSource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/UpdateDataSourceResponse.proto view
+ fixture/UpdateExperience.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/UpdateExperienceResponse.proto view
+ fixture/UpdateIndex.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/UpdateIndexResponse.proto view
+ fixture/UpdateQuerySuggestionsBlockList.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/UpdateQuerySuggestionsBlockListResponse.proto view
+ fixture/UpdateQuerySuggestionsConfig.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/UpdateQuerySuggestionsConfigResponse.proto view
+ fixture/UpdateThesaurus.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/kendra/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  kendra.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/UpdateThesaurusResponse.proto view
+ gen/Amazonka/Kendra.hs view
@@ -0,0 +1,1232 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.Kendra+-- 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 @2019-02-03@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon Kendra is a service for indexing large document sets.+module Amazonka.Kendra+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** AccessDeniedException+    _AccessDeniedException,++    -- ** ConflictException+    _ConflictException,++    -- ** InternalServerException+    _InternalServerException,++    -- ** InvalidRequestException+    _InvalidRequestException,++    -- ** ResourceAlreadyExistException+    _ResourceAlreadyExistException,++    -- ** ResourceInUseException+    _ResourceInUseException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ResourceUnavailableException+    _ResourceUnavailableException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** ThrottlingException+    _ThrottlingException,++    -- ** ValidationException+    _ValidationException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** AssociateEntitiesToExperience+    AssociateEntitiesToExperience (AssociateEntitiesToExperience'),+    newAssociateEntitiesToExperience,+    AssociateEntitiesToExperienceResponse (AssociateEntitiesToExperienceResponse'),+    newAssociateEntitiesToExperienceResponse,++    -- ** AssociatePersonasToEntities+    AssociatePersonasToEntities (AssociatePersonasToEntities'),+    newAssociatePersonasToEntities,+    AssociatePersonasToEntitiesResponse (AssociatePersonasToEntitiesResponse'),+    newAssociatePersonasToEntitiesResponse,++    -- ** BatchDeleteDocument+    BatchDeleteDocument (BatchDeleteDocument'),+    newBatchDeleteDocument,+    BatchDeleteDocumentResponse (BatchDeleteDocumentResponse'),+    newBatchDeleteDocumentResponse,++    -- ** BatchGetDocumentStatus+    BatchGetDocumentStatus (BatchGetDocumentStatus'),+    newBatchGetDocumentStatus,+    BatchGetDocumentStatusResponse (BatchGetDocumentStatusResponse'),+    newBatchGetDocumentStatusResponse,++    -- ** BatchPutDocument+    BatchPutDocument (BatchPutDocument'),+    newBatchPutDocument,+    BatchPutDocumentResponse (BatchPutDocumentResponse'),+    newBatchPutDocumentResponse,++    -- ** ClearQuerySuggestions+    ClearQuerySuggestions (ClearQuerySuggestions'),+    newClearQuerySuggestions,+    ClearQuerySuggestionsResponse (ClearQuerySuggestionsResponse'),+    newClearQuerySuggestionsResponse,++    -- ** CreateAccessControlConfiguration+    CreateAccessControlConfiguration (CreateAccessControlConfiguration'),+    newCreateAccessControlConfiguration,+    CreateAccessControlConfigurationResponse (CreateAccessControlConfigurationResponse'),+    newCreateAccessControlConfigurationResponse,++    -- ** CreateDataSource+    CreateDataSource (CreateDataSource'),+    newCreateDataSource,+    CreateDataSourceResponse (CreateDataSourceResponse'),+    newCreateDataSourceResponse,++    -- ** CreateExperience+    CreateExperience (CreateExperience'),+    newCreateExperience,+    CreateExperienceResponse (CreateExperienceResponse'),+    newCreateExperienceResponse,++    -- ** CreateFaq+    CreateFaq (CreateFaq'),+    newCreateFaq,+    CreateFaqResponse (CreateFaqResponse'),+    newCreateFaqResponse,++    -- ** CreateIndex+    CreateIndex (CreateIndex'),+    newCreateIndex,+    CreateIndexResponse (CreateIndexResponse'),+    newCreateIndexResponse,++    -- ** CreateQuerySuggestionsBlockList+    CreateQuerySuggestionsBlockList (CreateQuerySuggestionsBlockList'),+    newCreateQuerySuggestionsBlockList,+    CreateQuerySuggestionsBlockListResponse (CreateQuerySuggestionsBlockListResponse'),+    newCreateQuerySuggestionsBlockListResponse,++    -- ** CreateThesaurus+    CreateThesaurus (CreateThesaurus'),+    newCreateThesaurus,+    CreateThesaurusResponse (CreateThesaurusResponse'),+    newCreateThesaurusResponse,++    -- ** DeleteAccessControlConfiguration+    DeleteAccessControlConfiguration (DeleteAccessControlConfiguration'),+    newDeleteAccessControlConfiguration,+    DeleteAccessControlConfigurationResponse (DeleteAccessControlConfigurationResponse'),+    newDeleteAccessControlConfigurationResponse,++    -- ** DeleteDataSource+    DeleteDataSource (DeleteDataSource'),+    newDeleteDataSource,+    DeleteDataSourceResponse (DeleteDataSourceResponse'),+    newDeleteDataSourceResponse,++    -- ** DeleteExperience+    DeleteExperience (DeleteExperience'),+    newDeleteExperience,+    DeleteExperienceResponse (DeleteExperienceResponse'),+    newDeleteExperienceResponse,++    -- ** DeleteFaq+    DeleteFaq (DeleteFaq'),+    newDeleteFaq,+    DeleteFaqResponse (DeleteFaqResponse'),+    newDeleteFaqResponse,++    -- ** DeleteIndex+    DeleteIndex (DeleteIndex'),+    newDeleteIndex,+    DeleteIndexResponse (DeleteIndexResponse'),+    newDeleteIndexResponse,++    -- ** DeletePrincipalMapping+    DeletePrincipalMapping (DeletePrincipalMapping'),+    newDeletePrincipalMapping,+    DeletePrincipalMappingResponse (DeletePrincipalMappingResponse'),+    newDeletePrincipalMappingResponse,++    -- ** DeleteQuerySuggestionsBlockList+    DeleteQuerySuggestionsBlockList (DeleteQuerySuggestionsBlockList'),+    newDeleteQuerySuggestionsBlockList,+    DeleteQuerySuggestionsBlockListResponse (DeleteQuerySuggestionsBlockListResponse'),+    newDeleteQuerySuggestionsBlockListResponse,++    -- ** DeleteThesaurus+    DeleteThesaurus (DeleteThesaurus'),+    newDeleteThesaurus,+    DeleteThesaurusResponse (DeleteThesaurusResponse'),+    newDeleteThesaurusResponse,++    -- ** DescribeAccessControlConfiguration+    DescribeAccessControlConfiguration (DescribeAccessControlConfiguration'),+    newDescribeAccessControlConfiguration,+    DescribeAccessControlConfigurationResponse (DescribeAccessControlConfigurationResponse'),+    newDescribeAccessControlConfigurationResponse,++    -- ** DescribeDataSource+    DescribeDataSource (DescribeDataSource'),+    newDescribeDataSource,+    DescribeDataSourceResponse (DescribeDataSourceResponse'),+    newDescribeDataSourceResponse,++    -- ** DescribeExperience+    DescribeExperience (DescribeExperience'),+    newDescribeExperience,+    DescribeExperienceResponse (DescribeExperienceResponse'),+    newDescribeExperienceResponse,++    -- ** DescribeFaq+    DescribeFaq (DescribeFaq'),+    newDescribeFaq,+    DescribeFaqResponse (DescribeFaqResponse'),+    newDescribeFaqResponse,++    -- ** DescribeIndex+    DescribeIndex (DescribeIndex'),+    newDescribeIndex,+    DescribeIndexResponse (DescribeIndexResponse'),+    newDescribeIndexResponse,++    -- ** DescribePrincipalMapping+    DescribePrincipalMapping (DescribePrincipalMapping'),+    newDescribePrincipalMapping,+    DescribePrincipalMappingResponse (DescribePrincipalMappingResponse'),+    newDescribePrincipalMappingResponse,++    -- ** DescribeQuerySuggestionsBlockList+    DescribeQuerySuggestionsBlockList (DescribeQuerySuggestionsBlockList'),+    newDescribeQuerySuggestionsBlockList,+    DescribeQuerySuggestionsBlockListResponse (DescribeQuerySuggestionsBlockListResponse'),+    newDescribeQuerySuggestionsBlockListResponse,++    -- ** DescribeQuerySuggestionsConfig+    DescribeQuerySuggestionsConfig (DescribeQuerySuggestionsConfig'),+    newDescribeQuerySuggestionsConfig,+    DescribeQuerySuggestionsConfigResponse (DescribeQuerySuggestionsConfigResponse'),+    newDescribeQuerySuggestionsConfigResponse,++    -- ** DescribeThesaurus+    DescribeThesaurus (DescribeThesaurus'),+    newDescribeThesaurus,+    DescribeThesaurusResponse (DescribeThesaurusResponse'),+    newDescribeThesaurusResponse,++    -- ** DisassociateEntitiesFromExperience+    DisassociateEntitiesFromExperience (DisassociateEntitiesFromExperience'),+    newDisassociateEntitiesFromExperience,+    DisassociateEntitiesFromExperienceResponse (DisassociateEntitiesFromExperienceResponse'),+    newDisassociateEntitiesFromExperienceResponse,++    -- ** DisassociatePersonasFromEntities+    DisassociatePersonasFromEntities (DisassociatePersonasFromEntities'),+    newDisassociatePersonasFromEntities,+    DisassociatePersonasFromEntitiesResponse (DisassociatePersonasFromEntitiesResponse'),+    newDisassociatePersonasFromEntitiesResponse,++    -- ** GetQuerySuggestions+    GetQuerySuggestions (GetQuerySuggestions'),+    newGetQuerySuggestions,+    GetQuerySuggestionsResponse (GetQuerySuggestionsResponse'),+    newGetQuerySuggestionsResponse,++    -- ** GetSnapshots+    GetSnapshots (GetSnapshots'),+    newGetSnapshots,+    GetSnapshotsResponse (GetSnapshotsResponse'),+    newGetSnapshotsResponse,++    -- ** ListAccessControlConfigurations+    ListAccessControlConfigurations (ListAccessControlConfigurations'),+    newListAccessControlConfigurations,+    ListAccessControlConfigurationsResponse (ListAccessControlConfigurationsResponse'),+    newListAccessControlConfigurationsResponse,++    -- ** ListDataSourceSyncJobs+    ListDataSourceSyncJobs (ListDataSourceSyncJobs'),+    newListDataSourceSyncJobs,+    ListDataSourceSyncJobsResponse (ListDataSourceSyncJobsResponse'),+    newListDataSourceSyncJobsResponse,++    -- ** ListDataSources+    ListDataSources (ListDataSources'),+    newListDataSources,+    ListDataSourcesResponse (ListDataSourcesResponse'),+    newListDataSourcesResponse,++    -- ** ListEntityPersonas+    ListEntityPersonas (ListEntityPersonas'),+    newListEntityPersonas,+    ListEntityPersonasResponse (ListEntityPersonasResponse'),+    newListEntityPersonasResponse,++    -- ** ListExperienceEntities+    ListExperienceEntities (ListExperienceEntities'),+    newListExperienceEntities,+    ListExperienceEntitiesResponse (ListExperienceEntitiesResponse'),+    newListExperienceEntitiesResponse,++    -- ** ListExperiences+    ListExperiences (ListExperiences'),+    newListExperiences,+    ListExperiencesResponse (ListExperiencesResponse'),+    newListExperiencesResponse,++    -- ** ListFaqs+    ListFaqs (ListFaqs'),+    newListFaqs,+    ListFaqsResponse (ListFaqsResponse'),+    newListFaqsResponse,++    -- ** ListGroupsOlderThanOrderingId+    ListGroupsOlderThanOrderingId (ListGroupsOlderThanOrderingId'),+    newListGroupsOlderThanOrderingId,+    ListGroupsOlderThanOrderingIdResponse (ListGroupsOlderThanOrderingIdResponse'),+    newListGroupsOlderThanOrderingIdResponse,++    -- ** ListIndices+    ListIndices (ListIndices'),+    newListIndices,+    ListIndicesResponse (ListIndicesResponse'),+    newListIndicesResponse,++    -- ** ListQuerySuggestionsBlockLists+    ListQuerySuggestionsBlockLists (ListQuerySuggestionsBlockLists'),+    newListQuerySuggestionsBlockLists,+    ListQuerySuggestionsBlockListsResponse (ListQuerySuggestionsBlockListsResponse'),+    newListQuerySuggestionsBlockListsResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** ListThesauri+    ListThesauri (ListThesauri'),+    newListThesauri,+    ListThesauriResponse (ListThesauriResponse'),+    newListThesauriResponse,++    -- ** PutPrincipalMapping+    PutPrincipalMapping (PutPrincipalMapping'),+    newPutPrincipalMapping,+    PutPrincipalMappingResponse (PutPrincipalMappingResponse'),+    newPutPrincipalMappingResponse,++    -- ** Query+    Query (Query'),+    newQuery,+    QueryResponse (QueryResponse'),+    newQueryResponse,++    -- ** StartDataSourceSyncJob+    StartDataSourceSyncJob (StartDataSourceSyncJob'),+    newStartDataSourceSyncJob,+    StartDataSourceSyncJobResponse (StartDataSourceSyncJobResponse'),+    newStartDataSourceSyncJobResponse,++    -- ** StopDataSourceSyncJob+    StopDataSourceSyncJob (StopDataSourceSyncJob'),+    newStopDataSourceSyncJob,+    StopDataSourceSyncJobResponse (StopDataSourceSyncJobResponse'),+    newStopDataSourceSyncJobResponse,++    -- ** SubmitFeedback+    SubmitFeedback (SubmitFeedback'),+    newSubmitFeedback,+    SubmitFeedbackResponse (SubmitFeedbackResponse'),+    newSubmitFeedbackResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateAccessControlConfiguration+    UpdateAccessControlConfiguration (UpdateAccessControlConfiguration'),+    newUpdateAccessControlConfiguration,+    UpdateAccessControlConfigurationResponse (UpdateAccessControlConfigurationResponse'),+    newUpdateAccessControlConfigurationResponse,++    -- ** UpdateDataSource+    UpdateDataSource (UpdateDataSource'),+    newUpdateDataSource,+    UpdateDataSourceResponse (UpdateDataSourceResponse'),+    newUpdateDataSourceResponse,++    -- ** UpdateExperience+    UpdateExperience (UpdateExperience'),+    newUpdateExperience,+    UpdateExperienceResponse (UpdateExperienceResponse'),+    newUpdateExperienceResponse,++    -- ** UpdateIndex+    UpdateIndex (UpdateIndex'),+    newUpdateIndex,+    UpdateIndexResponse (UpdateIndexResponse'),+    newUpdateIndexResponse,++    -- ** UpdateQuerySuggestionsBlockList+    UpdateQuerySuggestionsBlockList (UpdateQuerySuggestionsBlockList'),+    newUpdateQuerySuggestionsBlockList,+    UpdateQuerySuggestionsBlockListResponse (UpdateQuerySuggestionsBlockListResponse'),+    newUpdateQuerySuggestionsBlockListResponse,++    -- ** UpdateQuerySuggestionsConfig+    UpdateQuerySuggestionsConfig (UpdateQuerySuggestionsConfig'),+    newUpdateQuerySuggestionsConfig,+    UpdateQuerySuggestionsConfigResponse (UpdateQuerySuggestionsConfigResponse'),+    newUpdateQuerySuggestionsConfigResponse,++    -- ** UpdateThesaurus+    UpdateThesaurus (UpdateThesaurus'),+    newUpdateThesaurus,+    UpdateThesaurusResponse (UpdateThesaurusResponse'),+    newUpdateThesaurusResponse,++    -- * Types++    -- ** AdditionalResultAttributeValueType+    AdditionalResultAttributeValueType (..),++    -- ** AlfrescoEntity+    AlfrescoEntity (..),++    -- ** ConditionOperator+    ConditionOperator (..),++    -- ** ConfluenceAttachmentFieldName+    ConfluenceAttachmentFieldName (..),++    -- ** ConfluenceAuthenticationType+    ConfluenceAuthenticationType (..),++    -- ** ConfluenceBlogFieldName+    ConfluenceBlogFieldName (..),++    -- ** ConfluencePageFieldName+    ConfluencePageFieldName (..),++    -- ** ConfluenceSpaceFieldName+    ConfluenceSpaceFieldName (..),++    -- ** ConfluenceVersion+    ConfluenceVersion (..),++    -- ** ContentType+    ContentType (..),++    -- ** DataSourceStatus+    DataSourceStatus (..),++    -- ** DataSourceSyncJobStatus+    DataSourceSyncJobStatus (..),++    -- ** DataSourceType+    DataSourceType (..),++    -- ** DatabaseEngineType+    DatabaseEngineType (..),++    -- ** DocumentAttributeValueType+    DocumentAttributeValueType (..),++    -- ** DocumentStatus+    DocumentStatus (..),++    -- ** EndpointType+    EndpointType (..),++    -- ** EntityType+    EntityType (..),++    -- ** ErrorCode+    ErrorCode (..),++    -- ** ExperienceStatus+    ExperienceStatus (..),++    -- ** FaqFileFormat+    FaqFileFormat (..),++    -- ** FaqStatus+    FaqStatus (..),++    -- ** FsxFileSystemType+    FsxFileSystemType (..),++    -- ** HighlightType+    HighlightType (..),++    -- ** IndexEdition+    IndexEdition (..),++    -- ** IndexStatus+    IndexStatus (..),++    -- ** Interval+    Interval (..),++    -- ** IssueSubEntity+    IssueSubEntity (..),++    -- ** KeyLocation+    KeyLocation (..),++    -- ** MetricType+    MetricType (..),++    -- ** Mode+    Mode (..),++    -- ** Order+    Order (..),++    -- ** Persona+    Persona (..),++    -- ** PrincipalMappingStatus+    PrincipalMappingStatus (..),++    -- ** PrincipalType+    PrincipalType (..),++    -- ** QueryIdentifiersEnclosingOption+    QueryIdentifiersEnclosingOption (..),++    -- ** QueryResultFormat+    QueryResultFormat (..),++    -- ** QueryResultType+    QueryResultType (..),++    -- ** QuerySuggestionsBlockListStatus+    QuerySuggestionsBlockListStatus (..),++    -- ** QuerySuggestionsStatus+    QuerySuggestionsStatus (..),++    -- ** ReadAccessType+    ReadAccessType (..),++    -- ** RelevanceType+    RelevanceType (..),++    -- ** SalesforceChatterFeedIncludeFilterType+    SalesforceChatterFeedIncludeFilterType (..),++    -- ** SalesforceKnowledgeArticleState+    SalesforceKnowledgeArticleState (..),++    -- ** SalesforceStandardObjectName+    SalesforceStandardObjectName (..),++    -- ** ScoreConfidence+    ScoreConfidence (..),++    -- ** ServiceNowAuthenticationType+    ServiceNowAuthenticationType (..),++    -- ** ServiceNowBuildVersionType+    ServiceNowBuildVersionType (..),++    -- ** SharePointOnlineAuthenticationType+    SharePointOnlineAuthenticationType (..),++    -- ** SharePointVersion+    SharePointVersion (..),++    -- ** SlackEntity+    SlackEntity (..),++    -- ** SortOrder+    SortOrder (..),++    -- ** ThesaurusStatus+    ThesaurusStatus (..),++    -- ** Type+    Type (..),++    -- ** UserContextPolicy+    UserContextPolicy (..),++    -- ** UserGroupResolutionMode+    UserGroupResolutionMode (..),++    -- ** WarningCode+    WarningCode (..),++    -- ** WebCrawlerMode+    WebCrawlerMode (..),++    -- ** AccessControlConfigurationSummary+    AccessControlConfigurationSummary (AccessControlConfigurationSummary'),+    newAccessControlConfigurationSummary,++    -- ** AccessControlListConfiguration+    AccessControlListConfiguration (AccessControlListConfiguration'),+    newAccessControlListConfiguration,++    -- ** AclConfiguration+    AclConfiguration (AclConfiguration'),+    newAclConfiguration,++    -- ** AdditionalResultAttribute+    AdditionalResultAttribute (AdditionalResultAttribute'),+    newAdditionalResultAttribute,++    -- ** AdditionalResultAttributeValue+    AdditionalResultAttributeValue (AdditionalResultAttributeValue'),+    newAdditionalResultAttributeValue,++    -- ** AlfrescoConfiguration+    AlfrescoConfiguration (AlfrescoConfiguration'),+    newAlfrescoConfiguration,++    -- ** AttributeFilter+    AttributeFilter (AttributeFilter'),+    newAttributeFilter,++    -- ** AuthenticationConfiguration+    AuthenticationConfiguration (AuthenticationConfiguration'),+    newAuthenticationConfiguration,++    -- ** BasicAuthenticationConfiguration+    BasicAuthenticationConfiguration (BasicAuthenticationConfiguration'),+    newBasicAuthenticationConfiguration,++    -- ** BatchDeleteDocumentResponseFailedDocument+    BatchDeleteDocumentResponseFailedDocument (BatchDeleteDocumentResponseFailedDocument'),+    newBatchDeleteDocumentResponseFailedDocument,++    -- ** BatchGetDocumentStatusResponseError+    BatchGetDocumentStatusResponseError (BatchGetDocumentStatusResponseError'),+    newBatchGetDocumentStatusResponseError,++    -- ** BatchPutDocumentResponseFailedDocument+    BatchPutDocumentResponseFailedDocument (BatchPutDocumentResponseFailedDocument'),+    newBatchPutDocumentResponseFailedDocument,++    -- ** BoxConfiguration+    BoxConfiguration (BoxConfiguration'),+    newBoxConfiguration,++    -- ** CapacityUnitsConfiguration+    CapacityUnitsConfiguration (CapacityUnitsConfiguration'),+    newCapacityUnitsConfiguration,++    -- ** ClickFeedback+    ClickFeedback (ClickFeedback'),+    newClickFeedback,++    -- ** ColumnConfiguration+    ColumnConfiguration (ColumnConfiguration'),+    newColumnConfiguration,++    -- ** ConfluenceAttachmentConfiguration+    ConfluenceAttachmentConfiguration (ConfluenceAttachmentConfiguration'),+    newConfluenceAttachmentConfiguration,++    -- ** ConfluenceAttachmentToIndexFieldMapping+    ConfluenceAttachmentToIndexFieldMapping (ConfluenceAttachmentToIndexFieldMapping'),+    newConfluenceAttachmentToIndexFieldMapping,++    -- ** ConfluenceBlogConfiguration+    ConfluenceBlogConfiguration (ConfluenceBlogConfiguration'),+    newConfluenceBlogConfiguration,++    -- ** ConfluenceBlogToIndexFieldMapping+    ConfluenceBlogToIndexFieldMapping (ConfluenceBlogToIndexFieldMapping'),+    newConfluenceBlogToIndexFieldMapping,++    -- ** ConfluenceConfiguration+    ConfluenceConfiguration (ConfluenceConfiguration'),+    newConfluenceConfiguration,++    -- ** ConfluencePageConfiguration+    ConfluencePageConfiguration (ConfluencePageConfiguration'),+    newConfluencePageConfiguration,++    -- ** ConfluencePageToIndexFieldMapping+    ConfluencePageToIndexFieldMapping (ConfluencePageToIndexFieldMapping'),+    newConfluencePageToIndexFieldMapping,++    -- ** ConfluenceSpaceConfiguration+    ConfluenceSpaceConfiguration (ConfluenceSpaceConfiguration'),+    newConfluenceSpaceConfiguration,++    -- ** ConfluenceSpaceToIndexFieldMapping+    ConfluenceSpaceToIndexFieldMapping (ConfluenceSpaceToIndexFieldMapping'),+    newConfluenceSpaceToIndexFieldMapping,++    -- ** ConnectionConfiguration+    ConnectionConfiguration (ConnectionConfiguration'),+    newConnectionConfiguration,++    -- ** ContentSourceConfiguration+    ContentSourceConfiguration (ContentSourceConfiguration'),+    newContentSourceConfiguration,++    -- ** Correction+    Correction (Correction'),+    newCorrection,++    -- ** CustomDocumentEnrichmentConfiguration+    CustomDocumentEnrichmentConfiguration (CustomDocumentEnrichmentConfiguration'),+    newCustomDocumentEnrichmentConfiguration,++    -- ** DataSourceConfiguration+    DataSourceConfiguration (DataSourceConfiguration'),+    newDataSourceConfiguration,++    -- ** DataSourceGroup+    DataSourceGroup (DataSourceGroup'),+    newDataSourceGroup,++    -- ** DataSourceSummary+    DataSourceSummary (DataSourceSummary'),+    newDataSourceSummary,++    -- ** DataSourceSyncJob+    DataSourceSyncJob (DataSourceSyncJob'),+    newDataSourceSyncJob,++    -- ** DataSourceSyncJobMetricTarget+    DataSourceSyncJobMetricTarget (DataSourceSyncJobMetricTarget'),+    newDataSourceSyncJobMetricTarget,++    -- ** DataSourceSyncJobMetrics+    DataSourceSyncJobMetrics (DataSourceSyncJobMetrics'),+    newDataSourceSyncJobMetrics,++    -- ** DataSourceToIndexFieldMapping+    DataSourceToIndexFieldMapping (DataSourceToIndexFieldMapping'),+    newDataSourceToIndexFieldMapping,++    -- ** DataSourceVpcConfiguration+    DataSourceVpcConfiguration (DataSourceVpcConfiguration'),+    newDataSourceVpcConfiguration,++    -- ** DatabaseConfiguration+    DatabaseConfiguration (DatabaseConfiguration'),+    newDatabaseConfiguration,++    -- ** Document+    Document (Document'),+    newDocument,++    -- ** DocumentAttribute+    DocumentAttribute (DocumentAttribute'),+    newDocumentAttribute,++    -- ** DocumentAttributeCondition+    DocumentAttributeCondition (DocumentAttributeCondition'),+    newDocumentAttributeCondition,++    -- ** DocumentAttributeTarget+    DocumentAttributeTarget (DocumentAttributeTarget'),+    newDocumentAttributeTarget,++    -- ** DocumentAttributeValue+    DocumentAttributeValue (DocumentAttributeValue'),+    newDocumentAttributeValue,++    -- ** DocumentAttributeValueCountPair+    DocumentAttributeValueCountPair (DocumentAttributeValueCountPair'),+    newDocumentAttributeValueCountPair,++    -- ** DocumentInfo+    DocumentInfo (DocumentInfo'),+    newDocumentInfo,++    -- ** DocumentMetadataConfiguration+    DocumentMetadataConfiguration (DocumentMetadataConfiguration'),+    newDocumentMetadataConfiguration,++    -- ** DocumentRelevanceConfiguration+    DocumentRelevanceConfiguration (DocumentRelevanceConfiguration'),+    newDocumentRelevanceConfiguration,++    -- ** DocumentsMetadataConfiguration+    DocumentsMetadataConfiguration (DocumentsMetadataConfiguration'),+    newDocumentsMetadataConfiguration,++    -- ** EntityConfiguration+    EntityConfiguration (EntityConfiguration'),+    newEntityConfiguration,++    -- ** EntityDisplayData+    EntityDisplayData (EntityDisplayData'),+    newEntityDisplayData,++    -- ** EntityPersonaConfiguration+    EntityPersonaConfiguration (EntityPersonaConfiguration'),+    newEntityPersonaConfiguration,++    -- ** ExperienceConfiguration+    ExperienceConfiguration (ExperienceConfiguration'),+    newExperienceConfiguration,++    -- ** ExperienceEndpoint+    ExperienceEndpoint (ExperienceEndpoint'),+    newExperienceEndpoint,++    -- ** ExperienceEntitiesSummary+    ExperienceEntitiesSummary (ExperienceEntitiesSummary'),+    newExperienceEntitiesSummary,++    -- ** ExperiencesSummary+    ExperiencesSummary (ExperiencesSummary'),+    newExperiencesSummary,++    -- ** Facet+    Facet (Facet'),+    newFacet,++    -- ** FacetResult+    FacetResult (FacetResult'),+    newFacetResult,++    -- ** FailedEntity+    FailedEntity (FailedEntity'),+    newFailedEntity,++    -- ** FaqStatistics+    FaqStatistics (FaqStatistics'),+    newFaqStatistics,++    -- ** FaqSummary+    FaqSummary (FaqSummary'),+    newFaqSummary,++    -- ** FsxConfiguration+    FsxConfiguration (FsxConfiguration'),+    newFsxConfiguration,++    -- ** GitHubConfiguration+    GitHubConfiguration (GitHubConfiguration'),+    newGitHubConfiguration,++    -- ** GitHubDocumentCrawlProperties+    GitHubDocumentCrawlProperties (GitHubDocumentCrawlProperties'),+    newGitHubDocumentCrawlProperties,++    -- ** GoogleDriveConfiguration+    GoogleDriveConfiguration (GoogleDriveConfiguration'),+    newGoogleDriveConfiguration,++    -- ** GroupMembers+    GroupMembers (GroupMembers'),+    newGroupMembers,++    -- ** GroupOrderingIdSummary+    GroupOrderingIdSummary (GroupOrderingIdSummary'),+    newGroupOrderingIdSummary,++    -- ** GroupSummary+    GroupSummary (GroupSummary'),+    newGroupSummary,++    -- ** HierarchicalPrincipal+    HierarchicalPrincipal (HierarchicalPrincipal'),+    newHierarchicalPrincipal,++    -- ** Highlight+    Highlight (Highlight'),+    newHighlight,++    -- ** HookConfiguration+    HookConfiguration (HookConfiguration'),+    newHookConfiguration,++    -- ** IndexConfigurationSummary+    IndexConfigurationSummary (IndexConfigurationSummary'),+    newIndexConfigurationSummary,++    -- ** IndexStatistics+    IndexStatistics (IndexStatistics'),+    newIndexStatistics,++    -- ** InlineCustomDocumentEnrichmentConfiguration+    InlineCustomDocumentEnrichmentConfiguration (InlineCustomDocumentEnrichmentConfiguration'),+    newInlineCustomDocumentEnrichmentConfiguration,++    -- ** JiraConfiguration+    JiraConfiguration (JiraConfiguration'),+    newJiraConfiguration,++    -- ** JsonTokenTypeConfiguration+    JsonTokenTypeConfiguration (JsonTokenTypeConfiguration'),+    newJsonTokenTypeConfiguration,++    -- ** JwtTokenTypeConfiguration+    JwtTokenTypeConfiguration (JwtTokenTypeConfiguration'),+    newJwtTokenTypeConfiguration,++    -- ** MemberGroup+    MemberGroup (MemberGroup'),+    newMemberGroup,++    -- ** MemberUser+    MemberUser (MemberUser'),+    newMemberUser,++    -- ** OnPremiseConfiguration+    OnPremiseConfiguration (OnPremiseConfiguration'),+    newOnPremiseConfiguration,++    -- ** OneDriveConfiguration+    OneDriveConfiguration (OneDriveConfiguration'),+    newOneDriveConfiguration,++    -- ** OneDriveUsers+    OneDriveUsers (OneDriveUsers'),+    newOneDriveUsers,++    -- ** PersonasSummary+    PersonasSummary (PersonasSummary'),+    newPersonasSummary,++    -- ** Principal+    Principal (Principal'),+    newPrincipal,++    -- ** ProxyConfiguration+    ProxyConfiguration (ProxyConfiguration'),+    newProxyConfiguration,++    -- ** QueryResultItem+    QueryResultItem (QueryResultItem'),+    newQueryResultItem,++    -- ** QuerySuggestionsBlockListSummary+    QuerySuggestionsBlockListSummary (QuerySuggestionsBlockListSummary'),+    newQuerySuggestionsBlockListSummary,++    -- ** QuipConfiguration+    QuipConfiguration (QuipConfiguration'),+    newQuipConfiguration,++    -- ** Relevance+    Relevance (Relevance'),+    newRelevance,++    -- ** RelevanceFeedback+    RelevanceFeedback (RelevanceFeedback'),+    newRelevanceFeedback,++    -- ** S3DataSourceConfiguration+    S3DataSourceConfiguration (S3DataSourceConfiguration'),+    newS3DataSourceConfiguration,++    -- ** S3Path+    S3Path (S3Path'),+    newS3Path,++    -- ** SaaSConfiguration+    SaaSConfiguration (SaaSConfiguration'),+    newSaaSConfiguration,++    -- ** SalesforceChatterFeedConfiguration+    SalesforceChatterFeedConfiguration (SalesforceChatterFeedConfiguration'),+    newSalesforceChatterFeedConfiguration,++    -- ** SalesforceConfiguration+    SalesforceConfiguration (SalesforceConfiguration'),+    newSalesforceConfiguration,++    -- ** SalesforceCustomKnowledgeArticleTypeConfiguration+    SalesforceCustomKnowledgeArticleTypeConfiguration (SalesforceCustomKnowledgeArticleTypeConfiguration'),+    newSalesforceCustomKnowledgeArticleTypeConfiguration,++    -- ** SalesforceKnowledgeArticleConfiguration+    SalesforceKnowledgeArticleConfiguration (SalesforceKnowledgeArticleConfiguration'),+    newSalesforceKnowledgeArticleConfiguration,++    -- ** SalesforceStandardKnowledgeArticleTypeConfiguration+    SalesforceStandardKnowledgeArticleTypeConfiguration (SalesforceStandardKnowledgeArticleTypeConfiguration'),+    newSalesforceStandardKnowledgeArticleTypeConfiguration,++    -- ** SalesforceStandardObjectAttachmentConfiguration+    SalesforceStandardObjectAttachmentConfiguration (SalesforceStandardObjectAttachmentConfiguration'),+    newSalesforceStandardObjectAttachmentConfiguration,++    -- ** SalesforceStandardObjectConfiguration+    SalesforceStandardObjectConfiguration (SalesforceStandardObjectConfiguration'),+    newSalesforceStandardObjectConfiguration,++    -- ** ScoreAttributes+    ScoreAttributes (ScoreAttributes'),+    newScoreAttributes,++    -- ** Search+    Search (Search'),+    newSearch,++    -- ** SeedUrlConfiguration+    SeedUrlConfiguration (SeedUrlConfiguration'),+    newSeedUrlConfiguration,++    -- ** ServerSideEncryptionConfiguration+    ServerSideEncryptionConfiguration (ServerSideEncryptionConfiguration'),+    newServerSideEncryptionConfiguration,++    -- ** ServiceNowConfiguration+    ServiceNowConfiguration (ServiceNowConfiguration'),+    newServiceNowConfiguration,++    -- ** ServiceNowKnowledgeArticleConfiguration+    ServiceNowKnowledgeArticleConfiguration (ServiceNowKnowledgeArticleConfiguration'),+    newServiceNowKnowledgeArticleConfiguration,++    -- ** ServiceNowServiceCatalogConfiguration+    ServiceNowServiceCatalogConfiguration (ServiceNowServiceCatalogConfiguration'),+    newServiceNowServiceCatalogConfiguration,++    -- ** SharePointConfiguration+    SharePointConfiguration (SharePointConfiguration'),+    newSharePointConfiguration,++    -- ** SiteMapsConfiguration+    SiteMapsConfiguration (SiteMapsConfiguration'),+    newSiteMapsConfiguration,++    -- ** SlackConfiguration+    SlackConfiguration (SlackConfiguration'),+    newSlackConfiguration,++    -- ** SortingConfiguration+    SortingConfiguration (SortingConfiguration'),+    newSortingConfiguration,++    -- ** SpellCorrectedQuery+    SpellCorrectedQuery (SpellCorrectedQuery'),+    newSpellCorrectedQuery,++    -- ** SpellCorrectionConfiguration+    SpellCorrectionConfiguration (SpellCorrectionConfiguration'),+    newSpellCorrectionConfiguration,++    -- ** SqlConfiguration+    SqlConfiguration (SqlConfiguration'),+    newSqlConfiguration,++    -- ** Status+    Status (Status'),+    newStatus,++    -- ** Suggestion+    Suggestion (Suggestion'),+    newSuggestion,++    -- ** SuggestionHighlight+    SuggestionHighlight (SuggestionHighlight'),+    newSuggestionHighlight,++    -- ** SuggestionTextWithHighlights+    SuggestionTextWithHighlights (SuggestionTextWithHighlights'),+    newSuggestionTextWithHighlights,++    -- ** SuggestionValue+    SuggestionValue (SuggestionValue'),+    newSuggestionValue,++    -- ** TableCell+    TableCell (TableCell'),+    newTableCell,++    -- ** TableExcerpt+    TableExcerpt (TableExcerpt'),+    newTableExcerpt,++    -- ** TableRow+    TableRow (TableRow'),+    newTableRow,++    -- ** Tag+    Tag (Tag'),+    newTag,++    -- ** Template+    Template (Template'),+    newTemplate,++    -- ** TemplateConfiguration+    TemplateConfiguration (TemplateConfiguration'),+    newTemplateConfiguration,++    -- ** TextDocumentStatistics+    TextDocumentStatistics (TextDocumentStatistics'),+    newTextDocumentStatistics,++    -- ** TextWithHighlights+    TextWithHighlights (TextWithHighlights'),+    newTextWithHighlights,++    -- ** ThesaurusSummary+    ThesaurusSummary (ThesaurusSummary'),+    newThesaurusSummary,++    -- ** TimeRange+    TimeRange (TimeRange'),+    newTimeRange,++    -- ** Urls+    Urls (Urls'),+    newUrls,++    -- ** UserContext+    UserContext (UserContext'),+    newUserContext,++    -- ** UserGroupResolutionConfiguration+    UserGroupResolutionConfiguration (UserGroupResolutionConfiguration'),+    newUserGroupResolutionConfiguration,++    -- ** UserIdentityConfiguration+    UserIdentityConfiguration (UserIdentityConfiguration'),+    newUserIdentityConfiguration,++    -- ** UserTokenConfiguration+    UserTokenConfiguration (UserTokenConfiguration'),+    newUserTokenConfiguration,++    -- ** Warning+    Warning (Warning'),+    newWarning,++    -- ** WebCrawlerConfiguration+    WebCrawlerConfiguration (WebCrawlerConfiguration'),+    newWebCrawlerConfiguration,++    -- ** WorkDocsConfiguration+    WorkDocsConfiguration (WorkDocsConfiguration'),+    newWorkDocsConfiguration,+  )+where++import Amazonka.Kendra.AssociateEntitiesToExperience+import Amazonka.Kendra.AssociatePersonasToEntities+import Amazonka.Kendra.BatchDeleteDocument+import Amazonka.Kendra.BatchGetDocumentStatus+import Amazonka.Kendra.BatchPutDocument+import Amazonka.Kendra.ClearQuerySuggestions+import Amazonka.Kendra.CreateAccessControlConfiguration+import Amazonka.Kendra.CreateDataSource+import Amazonka.Kendra.CreateExperience+import Amazonka.Kendra.CreateFaq+import Amazonka.Kendra.CreateIndex+import Amazonka.Kendra.CreateQuerySuggestionsBlockList+import Amazonka.Kendra.CreateThesaurus+import Amazonka.Kendra.DeleteAccessControlConfiguration+import Amazonka.Kendra.DeleteDataSource+import Amazonka.Kendra.DeleteExperience+import Amazonka.Kendra.DeleteFaq+import Amazonka.Kendra.DeleteIndex+import Amazonka.Kendra.DeletePrincipalMapping+import Amazonka.Kendra.DeleteQuerySuggestionsBlockList+import Amazonka.Kendra.DeleteThesaurus+import Amazonka.Kendra.DescribeAccessControlConfiguration+import Amazonka.Kendra.DescribeDataSource+import Amazonka.Kendra.DescribeExperience+import Amazonka.Kendra.DescribeFaq+import Amazonka.Kendra.DescribeIndex+import Amazonka.Kendra.DescribePrincipalMapping+import Amazonka.Kendra.DescribeQuerySuggestionsBlockList+import Amazonka.Kendra.DescribeQuerySuggestionsConfig+import Amazonka.Kendra.DescribeThesaurus+import Amazonka.Kendra.DisassociateEntitiesFromExperience+import Amazonka.Kendra.DisassociatePersonasFromEntities+import Amazonka.Kendra.GetQuerySuggestions+import Amazonka.Kendra.GetSnapshots+import Amazonka.Kendra.Lens+import Amazonka.Kendra.ListAccessControlConfigurations+import Amazonka.Kendra.ListDataSourceSyncJobs+import Amazonka.Kendra.ListDataSources+import Amazonka.Kendra.ListEntityPersonas+import Amazonka.Kendra.ListExperienceEntities+import Amazonka.Kendra.ListExperiences+import Amazonka.Kendra.ListFaqs+import Amazonka.Kendra.ListGroupsOlderThanOrderingId+import Amazonka.Kendra.ListIndices+import Amazonka.Kendra.ListQuerySuggestionsBlockLists+import Amazonka.Kendra.ListTagsForResource+import Amazonka.Kendra.ListThesauri+import Amazonka.Kendra.PutPrincipalMapping+import Amazonka.Kendra.Query+import Amazonka.Kendra.StartDataSourceSyncJob+import Amazonka.Kendra.StopDataSourceSyncJob+import Amazonka.Kendra.SubmitFeedback+import Amazonka.Kendra.TagResource+import Amazonka.Kendra.Types+import Amazonka.Kendra.UntagResource+import Amazonka.Kendra.UpdateAccessControlConfiguration+import Amazonka.Kendra.UpdateDataSource+import Amazonka.Kendra.UpdateExperience+import Amazonka.Kendra.UpdateIndex+import Amazonka.Kendra.UpdateQuerySuggestionsBlockList+import Amazonka.Kendra.UpdateQuerySuggestionsConfig+import Amazonka.Kendra.UpdateThesaurus+import Amazonka.Kendra.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 'Kendra'.++-- $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/Kendra/AssociateEntitiesToExperience.hs view
@@ -0,0 +1,223 @@+{-# 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.Kendra.AssociateEntitiesToExperience+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Grants users or groups in your IAM Identity Center identity source+-- access to your Amazon Kendra experience. You can create an Amazon Kendra+-- experience such as a search application. For more information on+-- creating a search application experience, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html Building a search experience with no code>.+module Amazonka.Kendra.AssociateEntitiesToExperience+  ( -- * Creating a Request+    AssociateEntitiesToExperience (..),+    newAssociateEntitiesToExperience,++    -- * Request Lenses+    associateEntitiesToExperience_id,+    associateEntitiesToExperience_indexId,+    associateEntitiesToExperience_entityList,++    -- * Destructuring the Response+    AssociateEntitiesToExperienceResponse (..),+    newAssociateEntitiesToExperienceResponse,++    -- * Response Lenses+    associateEntitiesToExperienceResponse_failedEntityList,+    associateEntitiesToExperienceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAssociateEntitiesToExperience' smart constructor.+data AssociateEntitiesToExperience = AssociateEntitiesToExperience'+  { -- | The identifier of your Amazon Kendra experience.+    id :: Prelude.Text,+    -- | The identifier of the index for your Amazon Kendra experience.+    indexId :: Prelude.Text,+    -- | Lists users or groups in your IAM Identity Center identity source.+    entityList :: Prelude.NonEmpty EntityConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateEntitiesToExperience' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'associateEntitiesToExperience_id' - The identifier of your Amazon Kendra experience.+--+-- 'indexId', 'associateEntitiesToExperience_indexId' - The identifier of the index for your Amazon Kendra experience.+--+-- 'entityList', 'associateEntitiesToExperience_entityList' - Lists users or groups in your IAM Identity Center identity source.+newAssociateEntitiesToExperience ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  -- | 'entityList'+  Prelude.NonEmpty EntityConfiguration ->+  AssociateEntitiesToExperience+newAssociateEntitiesToExperience+  pId_+  pIndexId_+  pEntityList_ =+    AssociateEntitiesToExperience'+      { id = pId_,+        indexId = pIndexId_,+        entityList =+          Lens.coerced Lens.# pEntityList_+      }++-- | The identifier of your Amazon Kendra experience.+associateEntitiesToExperience_id :: Lens.Lens' AssociateEntitiesToExperience Prelude.Text+associateEntitiesToExperience_id = Lens.lens (\AssociateEntitiesToExperience' {id} -> id) (\s@AssociateEntitiesToExperience' {} a -> s {id = a} :: AssociateEntitiesToExperience)++-- | The identifier of the index for your Amazon Kendra experience.+associateEntitiesToExperience_indexId :: Lens.Lens' AssociateEntitiesToExperience Prelude.Text+associateEntitiesToExperience_indexId = Lens.lens (\AssociateEntitiesToExperience' {indexId} -> indexId) (\s@AssociateEntitiesToExperience' {} a -> s {indexId = a} :: AssociateEntitiesToExperience)++-- | Lists users or groups in your IAM Identity Center identity source.+associateEntitiesToExperience_entityList :: Lens.Lens' AssociateEntitiesToExperience (Prelude.NonEmpty EntityConfiguration)+associateEntitiesToExperience_entityList = Lens.lens (\AssociateEntitiesToExperience' {entityList} -> entityList) (\s@AssociateEntitiesToExperience' {} a -> s {entityList = a} :: AssociateEntitiesToExperience) Prelude.. Lens.coerced++instance+  Core.AWSRequest+    AssociateEntitiesToExperience+  where+  type+    AWSResponse AssociateEntitiesToExperience =+      AssociateEntitiesToExperienceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          AssociateEntitiesToExperienceResponse'+            Prelude.<$> (x Data..?> "FailedEntityList")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    AssociateEntitiesToExperience+  where+  hashWithSalt _salt AssociateEntitiesToExperience' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId+      `Prelude.hashWithSalt` entityList++instance Prelude.NFData AssociateEntitiesToExperience where+  rnf AssociateEntitiesToExperience' {..} =+    Prelude.rnf id+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf entityList++instance Data.ToHeaders AssociateEntitiesToExperience where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.AssociateEntitiesToExperience" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON AssociateEntitiesToExperience where+  toJSON AssociateEntitiesToExperience' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("EntityList" Data..= entityList)+          ]+      )++instance Data.ToPath AssociateEntitiesToExperience where+  toPath = Prelude.const "/"++instance Data.ToQuery AssociateEntitiesToExperience where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAssociateEntitiesToExperienceResponse' smart constructor.+data AssociateEntitiesToExperienceResponse = AssociateEntitiesToExperienceResponse'+  { -- | Lists the users or groups in your IAM Identity Center identity source+    -- that failed to properly configure with your Amazon Kendra experience.+    failedEntityList :: Prelude.Maybe (Prelude.NonEmpty FailedEntity),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociateEntitiesToExperienceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failedEntityList', 'associateEntitiesToExperienceResponse_failedEntityList' - Lists the users or groups in your IAM Identity Center identity source+-- that failed to properly configure with your Amazon Kendra experience.+--+-- 'httpStatus', 'associateEntitiesToExperienceResponse_httpStatus' - The response's http status code.+newAssociateEntitiesToExperienceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AssociateEntitiesToExperienceResponse+newAssociateEntitiesToExperienceResponse pHttpStatus_ =+  AssociateEntitiesToExperienceResponse'+    { failedEntityList =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Lists the users or groups in your IAM Identity Center identity source+-- that failed to properly configure with your Amazon Kendra experience.+associateEntitiesToExperienceResponse_failedEntityList :: Lens.Lens' AssociateEntitiesToExperienceResponse (Prelude.Maybe (Prelude.NonEmpty FailedEntity))+associateEntitiesToExperienceResponse_failedEntityList = Lens.lens (\AssociateEntitiesToExperienceResponse' {failedEntityList} -> failedEntityList) (\s@AssociateEntitiesToExperienceResponse' {} a -> s {failedEntityList = a} :: AssociateEntitiesToExperienceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+associateEntitiesToExperienceResponse_httpStatus :: Lens.Lens' AssociateEntitiesToExperienceResponse Prelude.Int+associateEntitiesToExperienceResponse_httpStatus = Lens.lens (\AssociateEntitiesToExperienceResponse' {httpStatus} -> httpStatus) (\s@AssociateEntitiesToExperienceResponse' {} a -> s {httpStatus = a} :: AssociateEntitiesToExperienceResponse)++instance+  Prelude.NFData+    AssociateEntitiesToExperienceResponse+  where+  rnf AssociateEntitiesToExperienceResponse' {..} =+    Prelude.rnf failedEntityList+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/AssociatePersonasToEntities.hs view
@@ -0,0 +1,228 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.AssociatePersonasToEntities+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Defines the specific permissions of users or groups in your IAM Identity+-- Center identity source with access to your Amazon Kendra experience. You+-- can create an Amazon Kendra experience such as a search application. For+-- more information on creating a search application experience, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html Building a search experience with no code>.+module Amazonka.Kendra.AssociatePersonasToEntities+  ( -- * Creating a Request+    AssociatePersonasToEntities (..),+    newAssociatePersonasToEntities,++    -- * Request Lenses+    associatePersonasToEntities_id,+    associatePersonasToEntities_indexId,+    associatePersonasToEntities_personas,++    -- * Destructuring the Response+    AssociatePersonasToEntitiesResponse (..),+    newAssociatePersonasToEntitiesResponse,++    -- * Response Lenses+    associatePersonasToEntitiesResponse_failedEntityList,+    associatePersonasToEntitiesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newAssociatePersonasToEntities' smart constructor.+data AssociatePersonasToEntities = AssociatePersonasToEntities'+  { -- | The identifier of your Amazon Kendra experience.+    id :: Prelude.Text,+    -- | The identifier of the index for your Amazon Kendra experience.+    indexId :: Prelude.Text,+    -- | The personas that define the specific permissions of users or groups in+    -- your IAM Identity Center identity source. The available personas or+    -- access roles are @Owner@ and @Viewer@. For more information on these+    -- personas, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html#access-search-experience Providing access to your search page>.+    personas :: Prelude.NonEmpty EntityPersonaConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociatePersonasToEntities' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'associatePersonasToEntities_id' - The identifier of your Amazon Kendra experience.+--+-- 'indexId', 'associatePersonasToEntities_indexId' - The identifier of the index for your Amazon Kendra experience.+--+-- 'personas', 'associatePersonasToEntities_personas' - The personas that define the specific permissions of users or groups in+-- your IAM Identity Center identity source. The available personas or+-- access roles are @Owner@ and @Viewer@. For more information on these+-- personas, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html#access-search-experience Providing access to your search page>.+newAssociatePersonasToEntities ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  -- | 'personas'+  Prelude.NonEmpty EntityPersonaConfiguration ->+  AssociatePersonasToEntities+newAssociatePersonasToEntities+  pId_+  pIndexId_+  pPersonas_ =+    AssociatePersonasToEntities'+      { id = pId_,+        indexId = pIndexId_,+        personas = Lens.coerced Lens.# pPersonas_+      }++-- | The identifier of your Amazon Kendra experience.+associatePersonasToEntities_id :: Lens.Lens' AssociatePersonasToEntities Prelude.Text+associatePersonasToEntities_id = Lens.lens (\AssociatePersonasToEntities' {id} -> id) (\s@AssociatePersonasToEntities' {} a -> s {id = a} :: AssociatePersonasToEntities)++-- | The identifier of the index for your Amazon Kendra experience.+associatePersonasToEntities_indexId :: Lens.Lens' AssociatePersonasToEntities Prelude.Text+associatePersonasToEntities_indexId = Lens.lens (\AssociatePersonasToEntities' {indexId} -> indexId) (\s@AssociatePersonasToEntities' {} a -> s {indexId = a} :: AssociatePersonasToEntities)++-- | The personas that define the specific permissions of users or groups in+-- your IAM Identity Center identity source. The available personas or+-- access roles are @Owner@ and @Viewer@. For more information on these+-- personas, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html#access-search-experience Providing access to your search page>.+associatePersonasToEntities_personas :: Lens.Lens' AssociatePersonasToEntities (Prelude.NonEmpty EntityPersonaConfiguration)+associatePersonasToEntities_personas = Lens.lens (\AssociatePersonasToEntities' {personas} -> personas) (\s@AssociatePersonasToEntities' {} a -> s {personas = a} :: AssociatePersonasToEntities) Prelude.. Lens.coerced++instance Core.AWSRequest AssociatePersonasToEntities where+  type+    AWSResponse AssociatePersonasToEntities =+      AssociatePersonasToEntitiesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          AssociatePersonasToEntitiesResponse'+            Prelude.<$> (x Data..?> "FailedEntityList")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable AssociatePersonasToEntities where+  hashWithSalt _salt AssociatePersonasToEntities' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId+      `Prelude.hashWithSalt` personas++instance Prelude.NFData AssociatePersonasToEntities where+  rnf AssociatePersonasToEntities' {..} =+    Prelude.rnf id+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf personas++instance Data.ToHeaders AssociatePersonasToEntities where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.AssociatePersonasToEntities" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON AssociatePersonasToEntities where+  toJSON AssociatePersonasToEntities' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("Personas" Data..= personas)+          ]+      )++instance Data.ToPath AssociatePersonasToEntities where+  toPath = Prelude.const "/"++instance Data.ToQuery AssociatePersonasToEntities where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newAssociatePersonasToEntitiesResponse' smart constructor.+data AssociatePersonasToEntitiesResponse = AssociatePersonasToEntitiesResponse'+  { -- | Lists the users or groups in your IAM Identity Center identity source+    -- that failed to properly configure with your Amazon Kendra experience.+    failedEntityList :: Prelude.Maybe (Prelude.NonEmpty FailedEntity),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AssociatePersonasToEntitiesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failedEntityList', 'associatePersonasToEntitiesResponse_failedEntityList' - Lists the users or groups in your IAM Identity Center identity source+-- that failed to properly configure with your Amazon Kendra experience.+--+-- 'httpStatus', 'associatePersonasToEntitiesResponse_httpStatus' - The response's http status code.+newAssociatePersonasToEntitiesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  AssociatePersonasToEntitiesResponse+newAssociatePersonasToEntitiesResponse pHttpStatus_ =+  AssociatePersonasToEntitiesResponse'+    { failedEntityList =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Lists the users or groups in your IAM Identity Center identity source+-- that failed to properly configure with your Amazon Kendra experience.+associatePersonasToEntitiesResponse_failedEntityList :: Lens.Lens' AssociatePersonasToEntitiesResponse (Prelude.Maybe (Prelude.NonEmpty FailedEntity))+associatePersonasToEntitiesResponse_failedEntityList = Lens.lens (\AssociatePersonasToEntitiesResponse' {failedEntityList} -> failedEntityList) (\s@AssociatePersonasToEntitiesResponse' {} a -> s {failedEntityList = a} :: AssociatePersonasToEntitiesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+associatePersonasToEntitiesResponse_httpStatus :: Lens.Lens' AssociatePersonasToEntitiesResponse Prelude.Int+associatePersonasToEntitiesResponse_httpStatus = Lens.lens (\AssociatePersonasToEntitiesResponse' {httpStatus} -> httpStatus) (\s@AssociatePersonasToEntitiesResponse' {} a -> s {httpStatus = a} :: AssociatePersonasToEntitiesResponse)++instance+  Prelude.NFData+    AssociatePersonasToEntitiesResponse+  where+  rnf AssociatePersonasToEntitiesResponse' {..} =+    Prelude.rnf failedEntityList+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/BatchDeleteDocument.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.Kendra.BatchDeleteDocument+-- 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 one or more documents from an index. The documents must have+-- been added with the @BatchPutDocument@ API.+--+-- The documents are deleted asynchronously. You can see the progress of+-- the deletion by using Amazon Web Services CloudWatch. Any error messages+-- related to the processing of the batch are sent to you CloudWatch log.+module Amazonka.Kendra.BatchDeleteDocument+  ( -- * Creating a Request+    BatchDeleteDocument (..),+    newBatchDeleteDocument,++    -- * Request Lenses+    batchDeleteDocument_dataSourceSyncJobMetricTarget,+    batchDeleteDocument_indexId,+    batchDeleteDocument_documentIdList,++    -- * Destructuring the Response+    BatchDeleteDocumentResponse (..),+    newBatchDeleteDocumentResponse,++    -- * Response Lenses+    batchDeleteDocumentResponse_failedDocuments,+    batchDeleteDocumentResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchDeleteDocument' smart constructor.+data BatchDeleteDocument = BatchDeleteDocument'+  { dataSourceSyncJobMetricTarget :: Prelude.Maybe DataSourceSyncJobMetricTarget,+    -- | The identifier of the index that contains the documents to delete.+    indexId :: Prelude.Text,+    -- | One or more identifiers for documents to delete from the index.+    documentIdList :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchDeleteDocument' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSourceSyncJobMetricTarget', 'batchDeleteDocument_dataSourceSyncJobMetricTarget' - Undocumented member.+--+-- 'indexId', 'batchDeleteDocument_indexId' - The identifier of the index that contains the documents to delete.+--+-- 'documentIdList', 'batchDeleteDocument_documentIdList' - One or more identifiers for documents to delete from the index.+newBatchDeleteDocument ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'documentIdList'+  Prelude.NonEmpty Prelude.Text ->+  BatchDeleteDocument+newBatchDeleteDocument pIndexId_ pDocumentIdList_ =+  BatchDeleteDocument'+    { dataSourceSyncJobMetricTarget =+        Prelude.Nothing,+      indexId = pIndexId_,+      documentIdList =+        Lens.coerced Lens.# pDocumentIdList_+    }++-- | Undocumented member.+batchDeleteDocument_dataSourceSyncJobMetricTarget :: Lens.Lens' BatchDeleteDocument (Prelude.Maybe DataSourceSyncJobMetricTarget)+batchDeleteDocument_dataSourceSyncJobMetricTarget = Lens.lens (\BatchDeleteDocument' {dataSourceSyncJobMetricTarget} -> dataSourceSyncJobMetricTarget) (\s@BatchDeleteDocument' {} a -> s {dataSourceSyncJobMetricTarget = a} :: BatchDeleteDocument)++-- | The identifier of the index that contains the documents to delete.+batchDeleteDocument_indexId :: Lens.Lens' BatchDeleteDocument Prelude.Text+batchDeleteDocument_indexId = Lens.lens (\BatchDeleteDocument' {indexId} -> indexId) (\s@BatchDeleteDocument' {} a -> s {indexId = a} :: BatchDeleteDocument)++-- | One or more identifiers for documents to delete from the index.+batchDeleteDocument_documentIdList :: Lens.Lens' BatchDeleteDocument (Prelude.NonEmpty Prelude.Text)+batchDeleteDocument_documentIdList = Lens.lens (\BatchDeleteDocument' {documentIdList} -> documentIdList) (\s@BatchDeleteDocument' {} a -> s {documentIdList = a} :: BatchDeleteDocument) Prelude.. Lens.coerced++instance Core.AWSRequest BatchDeleteDocument where+  type+    AWSResponse BatchDeleteDocument =+      BatchDeleteDocumentResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchDeleteDocumentResponse'+            Prelude.<$> ( x+                            Data..?> "FailedDocuments"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable BatchDeleteDocument where+  hashWithSalt _salt BatchDeleteDocument' {..} =+    _salt+      `Prelude.hashWithSalt` dataSourceSyncJobMetricTarget+      `Prelude.hashWithSalt` indexId+      `Prelude.hashWithSalt` documentIdList++instance Prelude.NFData BatchDeleteDocument where+  rnf BatchDeleteDocument' {..} =+    Prelude.rnf dataSourceSyncJobMetricTarget+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf documentIdList++instance Data.ToHeaders BatchDeleteDocument where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.BatchDeleteDocument" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchDeleteDocument where+  toJSON BatchDeleteDocument' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataSourceSyncJobMetricTarget" Data..=)+              Prelude.<$> dataSourceSyncJobMetricTarget,+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just+              ("DocumentIdList" Data..= documentIdList)+          ]+      )++instance Data.ToPath BatchDeleteDocument where+  toPath = Prelude.const "/"++instance Data.ToQuery BatchDeleteDocument where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchDeleteDocumentResponse' smart constructor.+data BatchDeleteDocumentResponse = BatchDeleteDocumentResponse'+  { -- | A list of documents that could not be removed from the index. Each entry+    -- contains an error message that indicates why the document couldn\'t be+    -- removed from the index.+    failedDocuments :: Prelude.Maybe [BatchDeleteDocumentResponseFailedDocument],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchDeleteDocumentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failedDocuments', 'batchDeleteDocumentResponse_failedDocuments' - A list of documents that could not be removed from the index. Each entry+-- contains an error message that indicates why the document couldn\'t be+-- removed from the index.+--+-- 'httpStatus', 'batchDeleteDocumentResponse_httpStatus' - The response's http status code.+newBatchDeleteDocumentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchDeleteDocumentResponse+newBatchDeleteDocumentResponse pHttpStatus_ =+  BatchDeleteDocumentResponse'+    { failedDocuments =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of documents that could not be removed from the index. Each entry+-- contains an error message that indicates why the document couldn\'t be+-- removed from the index.+batchDeleteDocumentResponse_failedDocuments :: Lens.Lens' BatchDeleteDocumentResponse (Prelude.Maybe [BatchDeleteDocumentResponseFailedDocument])+batchDeleteDocumentResponse_failedDocuments = Lens.lens (\BatchDeleteDocumentResponse' {failedDocuments} -> failedDocuments) (\s@BatchDeleteDocumentResponse' {} a -> s {failedDocuments = a} :: BatchDeleteDocumentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchDeleteDocumentResponse_httpStatus :: Lens.Lens' BatchDeleteDocumentResponse Prelude.Int+batchDeleteDocumentResponse_httpStatus = Lens.lens (\BatchDeleteDocumentResponse' {httpStatus} -> httpStatus) (\s@BatchDeleteDocumentResponse' {} a -> s {httpStatus = a} :: BatchDeleteDocumentResponse)++instance Prelude.NFData BatchDeleteDocumentResponse where+  rnf BatchDeleteDocumentResponse' {..} =+    Prelude.rnf failedDocuments+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/BatchGetDocumentStatus.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.Kendra.BatchGetDocumentStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the indexing status for one or more documents submitted with the+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_BatchPutDocument.html BatchPutDocument>+-- API.+--+-- When you use the @BatchPutDocument@ API, documents are indexed+-- asynchronously. You can use the @BatchGetDocumentStatus@ API to get the+-- current status of a list of documents so that you can determine if they+-- have been successfully indexed.+--+-- You can also use the @BatchGetDocumentStatus@ API to check the status of+-- the+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_BatchDeleteDocument.html BatchDeleteDocument>+-- API. When a document is deleted from the index, Amazon Kendra returns+-- @NOT_FOUND@ as the status.+module Amazonka.Kendra.BatchGetDocumentStatus+  ( -- * Creating a Request+    BatchGetDocumentStatus (..),+    newBatchGetDocumentStatus,++    -- * Request Lenses+    batchGetDocumentStatus_indexId,+    batchGetDocumentStatus_documentInfoList,++    -- * Destructuring the Response+    BatchGetDocumentStatusResponse (..),+    newBatchGetDocumentStatusResponse,++    -- * Response Lenses+    batchGetDocumentStatusResponse_documentStatusList,+    batchGetDocumentStatusResponse_errors,+    batchGetDocumentStatusResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchGetDocumentStatus' smart constructor.+data BatchGetDocumentStatus = BatchGetDocumentStatus'+  { -- | The identifier of the index to add documents to. The index ID is+    -- returned by the+    -- <https://docs.aws.amazon.com/kendra/latest/dg/API_CreateIndex.html CreateIndex>+    -- API.+    indexId :: Prelude.Text,+    -- | A list of @DocumentInfo@ objects that identify the documents for which+    -- to get the status. You identify the documents by their document ID and+    -- optional attributes.+    documentInfoList :: Prelude.NonEmpty DocumentInfo+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetDocumentStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'indexId', 'batchGetDocumentStatus_indexId' - The identifier of the index to add documents to. The index ID is+-- returned by the+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_CreateIndex.html CreateIndex>+-- API.+--+-- 'documentInfoList', 'batchGetDocumentStatus_documentInfoList' - A list of @DocumentInfo@ objects that identify the documents for which+-- to get the status. You identify the documents by their document ID and+-- optional attributes.+newBatchGetDocumentStatus ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'documentInfoList'+  Prelude.NonEmpty DocumentInfo ->+  BatchGetDocumentStatus+newBatchGetDocumentStatus+  pIndexId_+  pDocumentInfoList_ =+    BatchGetDocumentStatus'+      { indexId = pIndexId_,+        documentInfoList =+          Lens.coerced Lens.# pDocumentInfoList_+      }++-- | The identifier of the index to add documents to. The index ID is+-- returned by the+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_CreateIndex.html CreateIndex>+-- API.+batchGetDocumentStatus_indexId :: Lens.Lens' BatchGetDocumentStatus Prelude.Text+batchGetDocumentStatus_indexId = Lens.lens (\BatchGetDocumentStatus' {indexId} -> indexId) (\s@BatchGetDocumentStatus' {} a -> s {indexId = a} :: BatchGetDocumentStatus)++-- | A list of @DocumentInfo@ objects that identify the documents for which+-- to get the status. You identify the documents by their document ID and+-- optional attributes.+batchGetDocumentStatus_documentInfoList :: Lens.Lens' BatchGetDocumentStatus (Prelude.NonEmpty DocumentInfo)+batchGetDocumentStatus_documentInfoList = Lens.lens (\BatchGetDocumentStatus' {documentInfoList} -> documentInfoList) (\s@BatchGetDocumentStatus' {} a -> s {documentInfoList = a} :: BatchGetDocumentStatus) Prelude.. Lens.coerced++instance Core.AWSRequest BatchGetDocumentStatus where+  type+    AWSResponse BatchGetDocumentStatus =+      BatchGetDocumentStatusResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchGetDocumentStatusResponse'+            Prelude.<$> ( x+                            Data..?> "DocumentStatusList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "Errors" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable BatchGetDocumentStatus where+  hashWithSalt _salt BatchGetDocumentStatus' {..} =+    _salt+      `Prelude.hashWithSalt` indexId+      `Prelude.hashWithSalt` documentInfoList++instance Prelude.NFData BatchGetDocumentStatus where+  rnf BatchGetDocumentStatus' {..} =+    Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf documentInfoList++instance Data.ToHeaders BatchGetDocumentStatus where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.BatchGetDocumentStatus" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchGetDocumentStatus where+  toJSON BatchGetDocumentStatus' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just+              ("DocumentInfoList" Data..= documentInfoList)+          ]+      )++instance Data.ToPath BatchGetDocumentStatus where+  toPath = Prelude.const "/"++instance Data.ToQuery BatchGetDocumentStatus where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchGetDocumentStatusResponse' smart constructor.+data BatchGetDocumentStatusResponse = BatchGetDocumentStatusResponse'+  { -- | The status of documents. The status indicates if the document is waiting+    -- to be indexed, is in the process of indexing, has completed indexing, or+    -- failed indexing. If a document failed indexing, the status provides the+    -- reason why.+    documentStatusList :: Prelude.Maybe [Status],+    -- | A list of documents that Amazon Kendra couldn\'t get the status for. The+    -- list includes the ID of the document and the reason that the status+    -- couldn\'t be found.+    errors :: Prelude.Maybe [BatchGetDocumentStatusResponseError],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetDocumentStatusResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'documentStatusList', 'batchGetDocumentStatusResponse_documentStatusList' - The status of documents. The status indicates if the document is waiting+-- to be indexed, is in the process of indexing, has completed indexing, or+-- failed indexing. If a document failed indexing, the status provides the+-- reason why.+--+-- 'errors', 'batchGetDocumentStatusResponse_errors' - A list of documents that Amazon Kendra couldn\'t get the status for. The+-- list includes the ID of the document and the reason that the status+-- couldn\'t be found.+--+-- 'httpStatus', 'batchGetDocumentStatusResponse_httpStatus' - The response's http status code.+newBatchGetDocumentStatusResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchGetDocumentStatusResponse+newBatchGetDocumentStatusResponse pHttpStatus_ =+  BatchGetDocumentStatusResponse'+    { documentStatusList =+        Prelude.Nothing,+      errors = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The status of documents. The status indicates if the document is waiting+-- to be indexed, is in the process of indexing, has completed indexing, or+-- failed indexing. If a document failed indexing, the status provides the+-- reason why.+batchGetDocumentStatusResponse_documentStatusList :: Lens.Lens' BatchGetDocumentStatusResponse (Prelude.Maybe [Status])+batchGetDocumentStatusResponse_documentStatusList = Lens.lens (\BatchGetDocumentStatusResponse' {documentStatusList} -> documentStatusList) (\s@BatchGetDocumentStatusResponse' {} a -> s {documentStatusList = a} :: BatchGetDocumentStatusResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of documents that Amazon Kendra couldn\'t get the status for. The+-- list includes the ID of the document and the reason that the status+-- couldn\'t be found.+batchGetDocumentStatusResponse_errors :: Lens.Lens' BatchGetDocumentStatusResponse (Prelude.Maybe [BatchGetDocumentStatusResponseError])+batchGetDocumentStatusResponse_errors = Lens.lens (\BatchGetDocumentStatusResponse' {errors} -> errors) (\s@BatchGetDocumentStatusResponse' {} a -> s {errors = a} :: BatchGetDocumentStatusResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchGetDocumentStatusResponse_httpStatus :: Lens.Lens' BatchGetDocumentStatusResponse Prelude.Int+batchGetDocumentStatusResponse_httpStatus = Lens.lens (\BatchGetDocumentStatusResponse' {httpStatus} -> httpStatus) (\s@BatchGetDocumentStatusResponse' {} a -> s {httpStatus = a} :: BatchGetDocumentStatusResponse)++instance+  Prelude.NFData+    BatchGetDocumentStatusResponse+  where+  rnf BatchGetDocumentStatusResponse' {..} =+    Prelude.rnf documentStatusList+      `Prelude.seq` Prelude.rnf errors+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/BatchPutDocument.hs view
@@ -0,0 +1,318 @@+{-# 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.Kendra.BatchPutDocument+-- 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 one or more documents to an index.+--+-- The @BatchPutDocument@ API enables you to ingest inline documents or a+-- set of documents stored in an Amazon S3 bucket. Use this API to ingest+-- your text and unstructured text into an index, add custom attributes to+-- the documents, and to attach an access control list to the documents+-- added to the index.+--+-- The documents are indexed asynchronously. You can see the progress of+-- the batch using Amazon Web Services CloudWatch. Any error messages+-- related to processing the batch are sent to your Amazon Web Services+-- CloudWatch log.+--+-- For an example of ingesting inline documents using Python and Java SDKs,+-- see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-binary-doc.html Adding files directly to an index>.+module Amazonka.Kendra.BatchPutDocument+  ( -- * Creating a Request+    BatchPutDocument (..),+    newBatchPutDocument,++    -- * Request Lenses+    batchPutDocument_customDocumentEnrichmentConfiguration,+    batchPutDocument_roleArn,+    batchPutDocument_indexId,+    batchPutDocument_documents,++    -- * Destructuring the Response+    BatchPutDocumentResponse (..),+    newBatchPutDocumentResponse,++    -- * Response Lenses+    batchPutDocumentResponse_failedDocuments,+    batchPutDocumentResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newBatchPutDocument' smart constructor.+data BatchPutDocument = BatchPutDocument'+  { -- | Configuration information for altering your document metadata and+    -- content during the document ingestion process when you use the+    -- @BatchPutDocument@ API.+    --+    -- For more information on how to create, modify and delete document+    -- metadata, or make other content alterations when you ingest documents+    -- into Amazon Kendra, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html Customizing document metadata during the ingestion process>.+    customDocumentEnrichmentConfiguration :: Prelude.Maybe CustomDocumentEnrichmentConfiguration,+    -- | The Amazon Resource Name (ARN) of a role that is allowed to run the+    -- @BatchPutDocument@ API. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM Roles for Amazon Kendra>.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the index to add the documents to. You need to create+    -- the index first using the @CreateIndex@ API.+    indexId :: Prelude.Text,+    -- | One or more documents to add to the index.+    --+    -- Documents have the following file size limits.+    --+    -- -   5 MB total size for inline documents+    --+    -- -   50 MB total size for files from an S3 bucket+    --+    -- -   5 MB extracted text for any file+    --+    -- For more information about file size and transaction per second quotas,+    -- see <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas>.+    documents :: Prelude.NonEmpty Document+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchPutDocument' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'customDocumentEnrichmentConfiguration', 'batchPutDocument_customDocumentEnrichmentConfiguration' - Configuration information for altering your document metadata and+-- content during the document ingestion process when you use the+-- @BatchPutDocument@ API.+--+-- For more information on how to create, modify and delete document+-- metadata, or make other content alterations when you ingest documents+-- into Amazon Kendra, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html Customizing document metadata during the ingestion process>.+--+-- 'roleArn', 'batchPutDocument_roleArn' - The Amazon Resource Name (ARN) of a role that is allowed to run the+-- @BatchPutDocument@ API. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM Roles for Amazon Kendra>.+--+-- 'indexId', 'batchPutDocument_indexId' - The identifier of the index to add the documents to. You need to create+-- the index first using the @CreateIndex@ API.+--+-- 'documents', 'batchPutDocument_documents' - One or more documents to add to the index.+--+-- Documents have the following file size limits.+--+-- -   5 MB total size for inline documents+--+-- -   50 MB total size for files from an S3 bucket+--+-- -   5 MB extracted text for any file+--+-- For more information about file size and transaction per second quotas,+-- see <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas>.+newBatchPutDocument ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'documents'+  Prelude.NonEmpty Document ->+  BatchPutDocument+newBatchPutDocument pIndexId_ pDocuments_ =+  BatchPutDocument'+    { customDocumentEnrichmentConfiguration =+        Prelude.Nothing,+      roleArn = Prelude.Nothing,+      indexId = pIndexId_,+      documents = Lens.coerced Lens.# pDocuments_+    }++-- | Configuration information for altering your document metadata and+-- content during the document ingestion process when you use the+-- @BatchPutDocument@ API.+--+-- For more information on how to create, modify and delete document+-- metadata, or make other content alterations when you ingest documents+-- into Amazon Kendra, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html Customizing document metadata during the ingestion process>.+batchPutDocument_customDocumentEnrichmentConfiguration :: Lens.Lens' BatchPutDocument (Prelude.Maybe CustomDocumentEnrichmentConfiguration)+batchPutDocument_customDocumentEnrichmentConfiguration = Lens.lens (\BatchPutDocument' {customDocumentEnrichmentConfiguration} -> customDocumentEnrichmentConfiguration) (\s@BatchPutDocument' {} a -> s {customDocumentEnrichmentConfiguration = a} :: BatchPutDocument)++-- | The Amazon Resource Name (ARN) of a role that is allowed to run the+-- @BatchPutDocument@ API. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM Roles for Amazon Kendra>.+batchPutDocument_roleArn :: Lens.Lens' BatchPutDocument (Prelude.Maybe Prelude.Text)+batchPutDocument_roleArn = Lens.lens (\BatchPutDocument' {roleArn} -> roleArn) (\s@BatchPutDocument' {} a -> s {roleArn = a} :: BatchPutDocument)++-- | The identifier of the index to add the documents to. You need to create+-- the index first using the @CreateIndex@ API.+batchPutDocument_indexId :: Lens.Lens' BatchPutDocument Prelude.Text+batchPutDocument_indexId = Lens.lens (\BatchPutDocument' {indexId} -> indexId) (\s@BatchPutDocument' {} a -> s {indexId = a} :: BatchPutDocument)++-- | One or more documents to add to the index.+--+-- Documents have the following file size limits.+--+-- -   5 MB total size for inline documents+--+-- -   50 MB total size for files from an S3 bucket+--+-- -   5 MB extracted text for any file+--+-- For more information about file size and transaction per second quotas,+-- see <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas>.+batchPutDocument_documents :: Lens.Lens' BatchPutDocument (Prelude.NonEmpty Document)+batchPutDocument_documents = Lens.lens (\BatchPutDocument' {documents} -> documents) (\s@BatchPutDocument' {} a -> s {documents = a} :: BatchPutDocument) Prelude.. Lens.coerced++instance Core.AWSRequest BatchPutDocument where+  type+    AWSResponse BatchPutDocument =+      BatchPutDocumentResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          BatchPutDocumentResponse'+            Prelude.<$> ( x+                            Data..?> "FailedDocuments"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable BatchPutDocument where+  hashWithSalt _salt BatchPutDocument' {..} =+    _salt+      `Prelude.hashWithSalt` customDocumentEnrichmentConfiguration+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` indexId+      `Prelude.hashWithSalt` documents++instance Prelude.NFData BatchPutDocument where+  rnf BatchPutDocument' {..} =+    Prelude.rnf customDocumentEnrichmentConfiguration+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf documents++instance Data.ToHeaders BatchPutDocument where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.BatchPutDocument" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON BatchPutDocument where+  toJSON BatchPutDocument' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CustomDocumentEnrichmentConfiguration" Data..=)+              Prelude.<$> customDocumentEnrichmentConfiguration,+            ("RoleArn" Data..=) Prelude.<$> roleArn,+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("Documents" Data..= documents)+          ]+      )++instance Data.ToPath BatchPutDocument where+  toPath = Prelude.const "/"++instance Data.ToQuery BatchPutDocument where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newBatchPutDocumentResponse' smart constructor.+data BatchPutDocumentResponse = BatchPutDocumentResponse'+  { -- | A list of documents that were not added to the index because the+    -- document failed a validation check. Each document contains an error+    -- message that indicates why the document couldn\'t be added to the index.+    --+    -- If there was an error adding a document to an index the error is+    -- reported in your Amazon Web Services CloudWatch log. For more+    -- information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/cloudwatch-logs.html Monitoring Amazon Kendra with Amazon CloudWatch Logs>+    failedDocuments :: Prelude.Maybe [BatchPutDocumentResponseFailedDocument],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchPutDocumentResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failedDocuments', 'batchPutDocumentResponse_failedDocuments' - A list of documents that were not added to the index because the+-- document failed a validation check. Each document contains an error+-- message that indicates why the document couldn\'t be added to the index.+--+-- If there was an error adding a document to an index the error is+-- reported in your Amazon Web Services CloudWatch log. For more+-- information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/cloudwatch-logs.html Monitoring Amazon Kendra with Amazon CloudWatch Logs>+--+-- 'httpStatus', 'batchPutDocumentResponse_httpStatus' - The response's http status code.+newBatchPutDocumentResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  BatchPutDocumentResponse+newBatchPutDocumentResponse pHttpStatus_ =+  BatchPutDocumentResponse'+    { failedDocuments =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of documents that were not added to the index because the+-- document failed a validation check. Each document contains an error+-- message that indicates why the document couldn\'t be added to the index.+--+-- If there was an error adding a document to an index the error is+-- reported in your Amazon Web Services CloudWatch log. For more+-- information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/cloudwatch-logs.html Monitoring Amazon Kendra with Amazon CloudWatch Logs>+batchPutDocumentResponse_failedDocuments :: Lens.Lens' BatchPutDocumentResponse (Prelude.Maybe [BatchPutDocumentResponseFailedDocument])+batchPutDocumentResponse_failedDocuments = Lens.lens (\BatchPutDocumentResponse' {failedDocuments} -> failedDocuments) (\s@BatchPutDocumentResponse' {} a -> s {failedDocuments = a} :: BatchPutDocumentResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+batchPutDocumentResponse_httpStatus :: Lens.Lens' BatchPutDocumentResponse Prelude.Int+batchPutDocumentResponse_httpStatus = Lens.lens (\BatchPutDocumentResponse' {httpStatus} -> httpStatus) (\s@BatchPutDocumentResponse' {} a -> s {httpStatus = a} :: BatchPutDocumentResponse)++instance Prelude.NFData BatchPutDocumentResponse where+  rnf BatchPutDocumentResponse' {..} =+    Prelude.rnf failedDocuments+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/ClearQuerySuggestions.hs view
@@ -0,0 +1,142 @@+{-# 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.Kendra.ClearQuerySuggestions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Clears existing query suggestions from an index.+--+-- This deletes existing suggestions only, not the queries in the query+-- log. After you clear suggestions, Amazon Kendra learns new suggestions+-- based on new queries added to the query log from the time you cleared+-- suggestions. If you do not see any new suggestions, then please allow+-- Amazon Kendra to collect enough queries to learn new suggestions.+--+-- @ClearQuerySuggestions@ is currently not supported in the Amazon Web+-- Services GovCloud (US-West) region.+module Amazonka.Kendra.ClearQuerySuggestions+  ( -- * Creating a Request+    ClearQuerySuggestions (..),+    newClearQuerySuggestions,++    -- * Request Lenses+    clearQuerySuggestions_indexId,++    -- * Destructuring the Response+    ClearQuerySuggestionsResponse (..),+    newClearQuerySuggestionsResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newClearQuerySuggestions' smart constructor.+data ClearQuerySuggestions = ClearQuerySuggestions'+  { -- | The identifier of the index you want to clear query suggestions from.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClearQuerySuggestions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'indexId', 'clearQuerySuggestions_indexId' - The identifier of the index you want to clear query suggestions from.+newClearQuerySuggestions ::+  -- | 'indexId'+  Prelude.Text ->+  ClearQuerySuggestions+newClearQuerySuggestions pIndexId_ =+  ClearQuerySuggestions' {indexId = pIndexId_}++-- | The identifier of the index you want to clear query suggestions from.+clearQuerySuggestions_indexId :: Lens.Lens' ClearQuerySuggestions Prelude.Text+clearQuerySuggestions_indexId = Lens.lens (\ClearQuerySuggestions' {indexId} -> indexId) (\s@ClearQuerySuggestions' {} a -> s {indexId = a} :: ClearQuerySuggestions)++instance Core.AWSRequest ClearQuerySuggestions where+  type+    AWSResponse ClearQuerySuggestions =+      ClearQuerySuggestionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull ClearQuerySuggestionsResponse'++instance Prelude.Hashable ClearQuerySuggestions where+  hashWithSalt _salt ClearQuerySuggestions' {..} =+    _salt `Prelude.hashWithSalt` indexId++instance Prelude.NFData ClearQuerySuggestions where+  rnf ClearQuerySuggestions' {..} = Prelude.rnf indexId++instance Data.ToHeaders ClearQuerySuggestions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.ClearQuerySuggestions" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ClearQuerySuggestions where+  toJSON ClearQuerySuggestions' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("IndexId" Data..= indexId)]+      )++instance Data.ToPath ClearQuerySuggestions where+  toPath = Prelude.const "/"++instance Data.ToQuery ClearQuerySuggestions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newClearQuerySuggestionsResponse' smart constructor.+data ClearQuerySuggestionsResponse = ClearQuerySuggestionsResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClearQuerySuggestionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newClearQuerySuggestionsResponse ::+  ClearQuerySuggestionsResponse+newClearQuerySuggestionsResponse =+  ClearQuerySuggestionsResponse'++instance Prelude.NFData ClearQuerySuggestionsResponse where+  rnf _ = ()
+ gen/Amazonka/Kendra/CreateAccessControlConfiguration.hs view
@@ -0,0 +1,327 @@+{-# 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.Kendra.CreateAccessControlConfiguration+-- 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 access configuration for your documents. This includes user+-- and group access information for your documents. This is useful for user+-- context filtering, where search results are filtered based on the user+-- or their group access to documents.+--+-- You can use this to re-configure your existing document level access+-- control without indexing all of your documents again. For example, your+-- index contains top-secret company documents that only certain employees+-- or users should access. One of these users leaves the company or+-- switches to a team that should be blocked from accessing top-secret+-- documents. The user still has access to top-secret documents because the+-- user had access when your documents were previously indexed. You can+-- create a specific access control configuration for the user with deny+-- access. You can later update the access control configuration to allow+-- access if the user returns to the company and re-joins the+-- \'top-secret\' team. You can re-configure access control for your+-- documents as circumstances change.+--+-- To apply your access control configuration to certain documents, you+-- call the+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_BatchPutDocument.html BatchPutDocument>+-- API with the @AccessControlConfigurationId@ included in the+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_Document.html Document>+-- object. If you use an S3 bucket as a data source, you update the+-- @.metadata.json@ with the @AccessControlConfigurationId@ and synchronize+-- your data source. Amazon Kendra currently only supports access control+-- configuration for S3 data sources and documents indexed using the+-- @BatchPutDocument@ API.+module Amazonka.Kendra.CreateAccessControlConfiguration+  ( -- * Creating a Request+    CreateAccessControlConfiguration (..),+    newCreateAccessControlConfiguration,++    -- * Request Lenses+    createAccessControlConfiguration_accessControlList,+    createAccessControlConfiguration_clientToken,+    createAccessControlConfiguration_description,+    createAccessControlConfiguration_hierarchicalAccessControlList,+    createAccessControlConfiguration_indexId,+    createAccessControlConfiguration_name,++    -- * Destructuring the Response+    CreateAccessControlConfigurationResponse (..),+    newCreateAccessControlConfigurationResponse,++    -- * Response Lenses+    createAccessControlConfigurationResponse_httpStatus,+    createAccessControlConfigurationResponse_id,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateAccessControlConfiguration' smart constructor.+data CreateAccessControlConfiguration = CreateAccessControlConfiguration'+  { -- | Information on principals (users and\/or groups) and which documents+    -- they should have access to. This is useful for user context filtering,+    -- where search results are filtered based on the user or their group+    -- access to documents.+    accessControlList :: Prelude.Maybe [Principal],+    -- | A token that you provide to identify the request to create an access+    -- control configuration. Multiple calls to the+    -- @CreateAccessControlConfiguration@ API with the same client token will+    -- create only one access control configuration.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A description for the access control configuration.+    description :: Prelude.Maybe Prelude.Text,+    -- | The list of+    -- <https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html principal>+    -- lists that define the hierarchy for which documents users should have+    -- access to.+    hierarchicalAccessControlList :: Prelude.Maybe (Prelude.NonEmpty HierarchicalPrincipal),+    -- | The identifier of the index to create an access control configuration+    -- for your documents.+    indexId :: Prelude.Text,+    -- | A name for the access control configuration.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAccessControlConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessControlList', 'createAccessControlConfiguration_accessControlList' - Information on principals (users and\/or groups) and which documents+-- they should have access to. This is useful for user context filtering,+-- where search results are filtered based on the user or their group+-- access to documents.+--+-- 'clientToken', 'createAccessControlConfiguration_clientToken' - A token that you provide to identify the request to create an access+-- control configuration. Multiple calls to the+-- @CreateAccessControlConfiguration@ API with the same client token will+-- create only one access control configuration.+--+-- 'description', 'createAccessControlConfiguration_description' - A description for the access control configuration.+--+-- 'hierarchicalAccessControlList', 'createAccessControlConfiguration_hierarchicalAccessControlList' - The list of+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html principal>+-- lists that define the hierarchy for which documents users should have+-- access to.+--+-- 'indexId', 'createAccessControlConfiguration_indexId' - The identifier of the index to create an access control configuration+-- for your documents.+--+-- 'name', 'createAccessControlConfiguration_name' - A name for the access control configuration.+newCreateAccessControlConfiguration ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  CreateAccessControlConfiguration+newCreateAccessControlConfiguration pIndexId_ pName_ =+  CreateAccessControlConfiguration'+    { accessControlList =+        Prelude.Nothing,+      clientToken = Prelude.Nothing,+      description = Prelude.Nothing,+      hierarchicalAccessControlList =+        Prelude.Nothing,+      indexId = pIndexId_,+      name = pName_+    }++-- | Information on principals (users and\/or groups) and which documents+-- they should have access to. This is useful for user context filtering,+-- where search results are filtered based on the user or their group+-- access to documents.+createAccessControlConfiguration_accessControlList :: Lens.Lens' CreateAccessControlConfiguration (Prelude.Maybe [Principal])+createAccessControlConfiguration_accessControlList = Lens.lens (\CreateAccessControlConfiguration' {accessControlList} -> accessControlList) (\s@CreateAccessControlConfiguration' {} a -> s {accessControlList = a} :: CreateAccessControlConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A token that you provide to identify the request to create an access+-- control configuration. Multiple calls to the+-- @CreateAccessControlConfiguration@ API with the same client token will+-- create only one access control configuration.+createAccessControlConfiguration_clientToken :: Lens.Lens' CreateAccessControlConfiguration (Prelude.Maybe Prelude.Text)+createAccessControlConfiguration_clientToken = Lens.lens (\CreateAccessControlConfiguration' {clientToken} -> clientToken) (\s@CreateAccessControlConfiguration' {} a -> s {clientToken = a} :: CreateAccessControlConfiguration)++-- | A description for the access control configuration.+createAccessControlConfiguration_description :: Lens.Lens' CreateAccessControlConfiguration (Prelude.Maybe Prelude.Text)+createAccessControlConfiguration_description = Lens.lens (\CreateAccessControlConfiguration' {description} -> description) (\s@CreateAccessControlConfiguration' {} a -> s {description = a} :: CreateAccessControlConfiguration)++-- | The list of+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html principal>+-- lists that define the hierarchy for which documents users should have+-- access to.+createAccessControlConfiguration_hierarchicalAccessControlList :: Lens.Lens' CreateAccessControlConfiguration (Prelude.Maybe (Prelude.NonEmpty HierarchicalPrincipal))+createAccessControlConfiguration_hierarchicalAccessControlList = Lens.lens (\CreateAccessControlConfiguration' {hierarchicalAccessControlList} -> hierarchicalAccessControlList) (\s@CreateAccessControlConfiguration' {} a -> s {hierarchicalAccessControlList = a} :: CreateAccessControlConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The identifier of the index to create an access control configuration+-- for your documents.+createAccessControlConfiguration_indexId :: Lens.Lens' CreateAccessControlConfiguration Prelude.Text+createAccessControlConfiguration_indexId = Lens.lens (\CreateAccessControlConfiguration' {indexId} -> indexId) (\s@CreateAccessControlConfiguration' {} a -> s {indexId = a} :: CreateAccessControlConfiguration)++-- | A name for the access control configuration.+createAccessControlConfiguration_name :: Lens.Lens' CreateAccessControlConfiguration Prelude.Text+createAccessControlConfiguration_name = Lens.lens (\CreateAccessControlConfiguration' {name} -> name) (\s@CreateAccessControlConfiguration' {} a -> s {name = a} :: CreateAccessControlConfiguration)++instance+  Core.AWSRequest+    CreateAccessControlConfiguration+  where+  type+    AWSResponse CreateAccessControlConfiguration =+      CreateAccessControlConfigurationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateAccessControlConfigurationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Id")+      )++instance+  Prelude.Hashable+    CreateAccessControlConfiguration+  where+  hashWithSalt+    _salt+    CreateAccessControlConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` accessControlList+        `Prelude.hashWithSalt` clientToken+        `Prelude.hashWithSalt` description+        `Prelude.hashWithSalt` hierarchicalAccessControlList+        `Prelude.hashWithSalt` indexId+        `Prelude.hashWithSalt` name++instance+  Prelude.NFData+    CreateAccessControlConfiguration+  where+  rnf CreateAccessControlConfiguration' {..} =+    Prelude.rnf accessControlList+      `Prelude.seq` Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf hierarchicalAccessControlList+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf name++instance+  Data.ToHeaders+    CreateAccessControlConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.CreateAccessControlConfiguration" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateAccessControlConfiguration where+  toJSON CreateAccessControlConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AccessControlList" Data..=)+              Prelude.<$> accessControlList,+            ("ClientToken" Data..=) Prelude.<$> clientToken,+            ("Description" Data..=) Prelude.<$> description,+            ("HierarchicalAccessControlList" Data..=)+              Prelude.<$> hierarchicalAccessControlList,+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("Name" Data..= name)+          ]+      )++instance Data.ToPath CreateAccessControlConfiguration where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    CreateAccessControlConfiguration+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateAccessControlConfigurationResponse' smart constructor.+data CreateAccessControlConfigurationResponse = CreateAccessControlConfigurationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The identifier of the access control configuration for your documents in+    -- an index.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAccessControlConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createAccessControlConfigurationResponse_httpStatus' - The response's http status code.+--+-- 'id', 'createAccessControlConfigurationResponse_id' - The identifier of the access control configuration for your documents in+-- an index.+newCreateAccessControlConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'id'+  Prelude.Text ->+  CreateAccessControlConfigurationResponse+newCreateAccessControlConfigurationResponse+  pHttpStatus_+  pId_ =+    CreateAccessControlConfigurationResponse'+      { httpStatus =+          pHttpStatus_,+        id = pId_+      }++-- | The response's http status code.+createAccessControlConfigurationResponse_httpStatus :: Lens.Lens' CreateAccessControlConfigurationResponse Prelude.Int+createAccessControlConfigurationResponse_httpStatus = Lens.lens (\CreateAccessControlConfigurationResponse' {httpStatus} -> httpStatus) (\s@CreateAccessControlConfigurationResponse' {} a -> s {httpStatus = a} :: CreateAccessControlConfigurationResponse)++-- | The identifier of the access control configuration for your documents in+-- an index.+createAccessControlConfigurationResponse_id :: Lens.Lens' CreateAccessControlConfigurationResponse Prelude.Text+createAccessControlConfigurationResponse_id = Lens.lens (\CreateAccessControlConfigurationResponse' {id} -> id) (\s@CreateAccessControlConfigurationResponse' {} a -> s {id = a} :: CreateAccessControlConfigurationResponse)++instance+  Prelude.NFData+    CreateAccessControlConfigurationResponse+  where+  rnf CreateAccessControlConfigurationResponse' {..} =+    Prelude.rnf httpStatus `Prelude.seq` Prelude.rnf id
+ gen/Amazonka/Kendra/CreateDataSource.hs view
@@ -0,0 +1,459 @@+{-# 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.Kendra.CreateDataSource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a data source connector that you want to use with an Amazon+-- Kendra index.+--+-- You specify a name, data source connector type and description for your+-- data source. You also specify configuration information for the data+-- source connector.+--+-- @CreateDataSource@ is a synchronous operation. The operation returns 200+-- if the data source was successfully created. Otherwise, an exception is+-- raised.+--+-- Amazon S3 and+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-custom.html custom>+-- data sources are the only supported data sources in the Amazon Web+-- Services GovCloud (US-West) region.+--+-- For an example of creating an index and data source using the Python+-- SDK, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/gs-python.html Getting started with Python SDK>.+-- For an example of creating an index and data source using the Java SDK,+-- see+-- <https://docs.aws.amazon.com/kendra/latest/dg/gs-java.html Getting started with Java SDK>.+module Amazonka.Kendra.CreateDataSource+  ( -- * Creating a Request+    CreateDataSource (..),+    newCreateDataSource,++    -- * Request Lenses+    createDataSource_clientToken,+    createDataSource_configuration,+    createDataSource_customDocumentEnrichmentConfiguration,+    createDataSource_description,+    createDataSource_languageCode,+    createDataSource_roleArn,+    createDataSource_schedule,+    createDataSource_tags,+    createDataSource_vpcConfiguration,+    createDataSource_name,+    createDataSource_indexId,+    createDataSource_type,++    -- * Destructuring the Response+    CreateDataSourceResponse (..),+    newCreateDataSourceResponse,++    -- * Response Lenses+    createDataSourceResponse_httpStatus,+    createDataSourceResponse_id,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateDataSource' smart constructor.+data CreateDataSource = CreateDataSource'+  { -- | A token that you provide to identify the request to create a data source+    -- connector. Multiple calls to the @CreateDataSource@ API with the same+    -- client token will create only one data source connector.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | Configuration information to connect to your data source repository.+    --+    -- You can\'t specify the @Configuration@ parameter when the @Type@+    -- parameter is set to @CUSTOM@. If you do, you receive a+    -- @ValidationException@ exception.+    --+    -- The @Configuration@ parameter is required for all other data sources.+    configuration :: Prelude.Maybe DataSourceConfiguration,+    -- | Configuration information for altering document metadata and content+    -- during the document ingestion process.+    --+    -- For more information on how to create, modify and delete document+    -- metadata, or make other content alterations when you ingest documents+    -- into Amazon Kendra, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html Customizing document metadata during the ingestion process>.+    customDocumentEnrichmentConfiguration :: Prelude.Maybe CustomDocumentEnrichmentConfiguration,+    -- | A description for the data source connector.+    description :: Prelude.Maybe Prelude.Text,+    -- | The code for a language. This allows you to support a language for all+    -- documents when creating the data source connector. English is supported+    -- by default. For more information on supported languages, including their+    -- codes, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+    languageCode :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of a role with permission to access the+    -- data source and required resources. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+    --+    -- You can\'t specify the @RoleArn@ parameter when the @Type@ parameter is+    -- set to @CUSTOM@. If you do, you receive a @ValidationException@+    -- exception.+    --+    -- The @RoleArn@ parameter is required for all other data sources.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | Sets the frequency for Amazon Kendra to check the documents in your data+    -- source repository and update the index. If you don\'t set a schedule+    -- Amazon Kendra will not periodically update the index. You can call the+    -- @StartDataSourceSyncJob@ API to update the index.+    --+    -- You can\'t specify the @Schedule@ parameter when the @Type@ parameter is+    -- set to @CUSTOM@. If you do, you receive a @ValidationException@+    -- exception.+    schedule :: Prelude.Maybe Prelude.Text,+    -- | A list of key-value pairs that identify the data source connector. You+    -- can use the tags to identify and organize your resources and to control+    -- access to resources.+    tags :: Prelude.Maybe [Tag],+    -- | Configuration information for an Amazon Virtual Private Cloud to connect+    -- to your data source. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+    vpcConfiguration :: Prelude.Maybe DataSourceVpcConfiguration,+    -- | A name for the data source connector.+    name :: Prelude.Text,+    -- | The identifier of the index you want to use with the data source+    -- connector.+    indexId :: Prelude.Text,+    -- | The type of data source repository. For example, @SHAREPOINT@.+    type' :: DataSourceType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDataSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createDataSource_clientToken' - A token that you provide to identify the request to create a data source+-- connector. Multiple calls to the @CreateDataSource@ API with the same+-- client token will create only one data source connector.+--+-- 'configuration', 'createDataSource_configuration' - Configuration information to connect to your data source repository.+--+-- You can\'t specify the @Configuration@ parameter when the @Type@+-- parameter is set to @CUSTOM@. If you do, you receive a+-- @ValidationException@ exception.+--+-- The @Configuration@ parameter is required for all other data sources.+--+-- 'customDocumentEnrichmentConfiguration', 'createDataSource_customDocumentEnrichmentConfiguration' - Configuration information for altering document metadata and content+-- during the document ingestion process.+--+-- For more information on how to create, modify and delete document+-- metadata, or make other content alterations when you ingest documents+-- into Amazon Kendra, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html Customizing document metadata during the ingestion process>.+--+-- 'description', 'createDataSource_description' - A description for the data source connector.+--+-- 'languageCode', 'createDataSource_languageCode' - The code for a language. This allows you to support a language for all+-- documents when creating the data source connector. English is supported+-- by default. For more information on supported languages, including their+-- codes, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+--+-- 'roleArn', 'createDataSource_roleArn' - The Amazon Resource Name (ARN) of a role with permission to access the+-- data source and required resources. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+--+-- You can\'t specify the @RoleArn@ parameter when the @Type@ parameter is+-- set to @CUSTOM@. If you do, you receive a @ValidationException@+-- exception.+--+-- The @RoleArn@ parameter is required for all other data sources.+--+-- 'schedule', 'createDataSource_schedule' - Sets the frequency for Amazon Kendra to check the documents in your data+-- source repository and update the index. If you don\'t set a schedule+-- Amazon Kendra will not periodically update the index. You can call the+-- @StartDataSourceSyncJob@ API to update the index.+--+-- You can\'t specify the @Schedule@ parameter when the @Type@ parameter is+-- set to @CUSTOM@. If you do, you receive a @ValidationException@+-- exception.+--+-- 'tags', 'createDataSource_tags' - A list of key-value pairs that identify the data source connector. You+-- can use the tags to identify and organize your resources and to control+-- access to resources.+--+-- 'vpcConfiguration', 'createDataSource_vpcConfiguration' - Configuration information for an Amazon Virtual Private Cloud to connect+-- to your data source. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+--+-- 'name', 'createDataSource_name' - A name for the data source connector.+--+-- 'indexId', 'createDataSource_indexId' - The identifier of the index you want to use with the data source+-- connector.+--+-- 'type'', 'createDataSource_type' - The type of data source repository. For example, @SHAREPOINT@.+newCreateDataSource ::+  -- | 'name'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  -- | 'type''+  DataSourceType ->+  CreateDataSource+newCreateDataSource pName_ pIndexId_ pType_ =+  CreateDataSource'+    { clientToken = Prelude.Nothing,+      configuration = Prelude.Nothing,+      customDocumentEnrichmentConfiguration =+        Prelude.Nothing,+      description = Prelude.Nothing,+      languageCode = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      schedule = Prelude.Nothing,+      tags = Prelude.Nothing,+      vpcConfiguration = Prelude.Nothing,+      name = pName_,+      indexId = pIndexId_,+      type' = pType_+    }++-- | A token that you provide to identify the request to create a data source+-- connector. Multiple calls to the @CreateDataSource@ API with the same+-- client token will create only one data source connector.+createDataSource_clientToken :: Lens.Lens' CreateDataSource (Prelude.Maybe Prelude.Text)+createDataSource_clientToken = Lens.lens (\CreateDataSource' {clientToken} -> clientToken) (\s@CreateDataSource' {} a -> s {clientToken = a} :: CreateDataSource)++-- | Configuration information to connect to your data source repository.+--+-- You can\'t specify the @Configuration@ parameter when the @Type@+-- parameter is set to @CUSTOM@. If you do, you receive a+-- @ValidationException@ exception.+--+-- The @Configuration@ parameter is required for all other data sources.+createDataSource_configuration :: Lens.Lens' CreateDataSource (Prelude.Maybe DataSourceConfiguration)+createDataSource_configuration = Lens.lens (\CreateDataSource' {configuration} -> configuration) (\s@CreateDataSource' {} a -> s {configuration = a} :: CreateDataSource)++-- | Configuration information for altering document metadata and content+-- during the document ingestion process.+--+-- For more information on how to create, modify and delete document+-- metadata, or make other content alterations when you ingest documents+-- into Amazon Kendra, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html Customizing document metadata during the ingestion process>.+createDataSource_customDocumentEnrichmentConfiguration :: Lens.Lens' CreateDataSource (Prelude.Maybe CustomDocumentEnrichmentConfiguration)+createDataSource_customDocumentEnrichmentConfiguration = Lens.lens (\CreateDataSource' {customDocumentEnrichmentConfiguration} -> customDocumentEnrichmentConfiguration) (\s@CreateDataSource' {} a -> s {customDocumentEnrichmentConfiguration = a} :: CreateDataSource)++-- | A description for the data source connector.+createDataSource_description :: Lens.Lens' CreateDataSource (Prelude.Maybe Prelude.Text)+createDataSource_description = Lens.lens (\CreateDataSource' {description} -> description) (\s@CreateDataSource' {} a -> s {description = a} :: CreateDataSource)++-- | The code for a language. This allows you to support a language for all+-- documents when creating the data source connector. English is supported+-- by default. For more information on supported languages, including their+-- codes, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+createDataSource_languageCode :: Lens.Lens' CreateDataSource (Prelude.Maybe Prelude.Text)+createDataSource_languageCode = Lens.lens (\CreateDataSource' {languageCode} -> languageCode) (\s@CreateDataSource' {} a -> s {languageCode = a} :: CreateDataSource)++-- | The Amazon Resource Name (ARN) of a role with permission to access the+-- data source and required resources. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+--+-- You can\'t specify the @RoleArn@ parameter when the @Type@ parameter is+-- set to @CUSTOM@. If you do, you receive a @ValidationException@+-- exception.+--+-- The @RoleArn@ parameter is required for all other data sources.+createDataSource_roleArn :: Lens.Lens' CreateDataSource (Prelude.Maybe Prelude.Text)+createDataSource_roleArn = Lens.lens (\CreateDataSource' {roleArn} -> roleArn) (\s@CreateDataSource' {} a -> s {roleArn = a} :: CreateDataSource)++-- | Sets the frequency for Amazon Kendra to check the documents in your data+-- source repository and update the index. If you don\'t set a schedule+-- Amazon Kendra will not periodically update the index. You can call the+-- @StartDataSourceSyncJob@ API to update the index.+--+-- You can\'t specify the @Schedule@ parameter when the @Type@ parameter is+-- set to @CUSTOM@. If you do, you receive a @ValidationException@+-- exception.+createDataSource_schedule :: Lens.Lens' CreateDataSource (Prelude.Maybe Prelude.Text)+createDataSource_schedule = Lens.lens (\CreateDataSource' {schedule} -> schedule) (\s@CreateDataSource' {} a -> s {schedule = a} :: CreateDataSource)++-- | A list of key-value pairs that identify the data source connector. You+-- can use the tags to identify and organize your resources and to control+-- access to resources.+createDataSource_tags :: Lens.Lens' CreateDataSource (Prelude.Maybe [Tag])+createDataSource_tags = Lens.lens (\CreateDataSource' {tags} -> tags) (\s@CreateDataSource' {} a -> s {tags = a} :: CreateDataSource) Prelude.. Lens.mapping Lens.coerced++-- | Configuration information for an Amazon Virtual Private Cloud to connect+-- to your data source. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+createDataSource_vpcConfiguration :: Lens.Lens' CreateDataSource (Prelude.Maybe DataSourceVpcConfiguration)+createDataSource_vpcConfiguration = Lens.lens (\CreateDataSource' {vpcConfiguration} -> vpcConfiguration) (\s@CreateDataSource' {} a -> s {vpcConfiguration = a} :: CreateDataSource)++-- | A name for the data source connector.+createDataSource_name :: Lens.Lens' CreateDataSource Prelude.Text+createDataSource_name = Lens.lens (\CreateDataSource' {name} -> name) (\s@CreateDataSource' {} a -> s {name = a} :: CreateDataSource)++-- | The identifier of the index you want to use with the data source+-- connector.+createDataSource_indexId :: Lens.Lens' CreateDataSource Prelude.Text+createDataSource_indexId = Lens.lens (\CreateDataSource' {indexId} -> indexId) (\s@CreateDataSource' {} a -> s {indexId = a} :: CreateDataSource)++-- | The type of data source repository. For example, @SHAREPOINT@.+createDataSource_type :: Lens.Lens' CreateDataSource DataSourceType+createDataSource_type = Lens.lens (\CreateDataSource' {type'} -> type') (\s@CreateDataSource' {} a -> s {type' = a} :: CreateDataSource)++instance Core.AWSRequest CreateDataSource where+  type+    AWSResponse CreateDataSource =+      CreateDataSourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateDataSourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Id")+      )++instance Prelude.Hashable CreateDataSource where+  hashWithSalt _salt CreateDataSource' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` configuration+      `Prelude.hashWithSalt` customDocumentEnrichmentConfiguration+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` languageCode+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` schedule+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` vpcConfiguration+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` indexId+      `Prelude.hashWithSalt` type'++instance Prelude.NFData CreateDataSource where+  rnf CreateDataSource' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf customDocumentEnrichmentConfiguration+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf languageCode+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf schedule+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf vpcConfiguration+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders CreateDataSource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.CreateDataSource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateDataSource where+  toJSON CreateDataSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientToken" Data..=) Prelude.<$> clientToken,+            ("Configuration" Data..=) Prelude.<$> configuration,+            ("CustomDocumentEnrichmentConfiguration" Data..=)+              Prelude.<$> customDocumentEnrichmentConfiguration,+            ("Description" Data..=) Prelude.<$> description,+            ("LanguageCode" Data..=) Prelude.<$> languageCode,+            ("RoleArn" Data..=) Prelude.<$> roleArn,+            ("Schedule" Data..=) Prelude.<$> schedule,+            ("Tags" Data..=) Prelude.<$> tags,+            ("VpcConfiguration" Data..=)+              Prelude.<$> vpcConfiguration,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("Type" Data..= type')+          ]+      )++instance Data.ToPath CreateDataSource where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateDataSource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateDataSourceResponse' smart constructor.+data CreateDataSourceResponse = CreateDataSourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The identifier of the data source connector.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateDataSourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createDataSourceResponse_httpStatus' - The response's http status code.+--+-- 'id', 'createDataSourceResponse_id' - The identifier of the data source connector.+newCreateDataSourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'id'+  Prelude.Text ->+  CreateDataSourceResponse+newCreateDataSourceResponse pHttpStatus_ pId_ =+  CreateDataSourceResponse'+    { httpStatus =+        pHttpStatus_,+      id = pId_+    }++-- | The response's http status code.+createDataSourceResponse_httpStatus :: Lens.Lens' CreateDataSourceResponse Prelude.Int+createDataSourceResponse_httpStatus = Lens.lens (\CreateDataSourceResponse' {httpStatus} -> httpStatus) (\s@CreateDataSourceResponse' {} a -> s {httpStatus = a} :: CreateDataSourceResponse)++-- | The identifier of the data source connector.+createDataSourceResponse_id :: Lens.Lens' CreateDataSourceResponse Prelude.Text+createDataSourceResponse_id = Lens.lens (\CreateDataSourceResponse' {id} -> id) (\s@CreateDataSourceResponse' {} a -> s {id = a} :: CreateDataSourceResponse)++instance Prelude.NFData CreateDataSourceResponse where+  rnf CreateDataSourceResponse' {..} =+    Prelude.rnf httpStatus `Prelude.seq` Prelude.rnf id
+ gen/Amazonka/Kendra/CreateExperience.hs view
@@ -0,0 +1,274 @@+{-# 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.Kendra.CreateExperience+-- 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 Kendra experience such as a search application. For+-- more information on creating a search application experience, including+-- using the Python and Java SDKs, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html Building a search experience with no code>.+module Amazonka.Kendra.CreateExperience+  ( -- * Creating a Request+    CreateExperience (..),+    newCreateExperience,++    -- * Request Lenses+    createExperience_clientToken,+    createExperience_configuration,+    createExperience_description,+    createExperience_roleArn,+    createExperience_name,+    createExperience_indexId,++    -- * Destructuring the Response+    CreateExperienceResponse (..),+    newCreateExperienceResponse,++    -- * Response Lenses+    createExperienceResponse_httpStatus,+    createExperienceResponse_id,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateExperience' smart constructor.+data CreateExperience = CreateExperience'+  { -- | A token that you provide to identify the request to create your Amazon+    -- Kendra experience. Multiple calls to the @CreateExperience@ API with the+    -- same client token creates only one Amazon Kendra experience.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | Configuration information for your Amazon Kendra experience. This+    -- includes @ContentSourceConfiguration@, which specifies the data source+    -- IDs and\/or FAQ IDs, and @UserIdentityConfiguration@, which specifies+    -- the user or group information to grant access to your Amazon Kendra+    -- experience.+    configuration :: Prelude.Maybe ExperienceConfiguration,+    -- | A description for your Amazon Kendra experience.+    description :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of a role with permission to access+    -- @Query@ API, @QuerySuggestions@ API, @SubmitFeedback@ API, and IAM+    -- Identity Center that stores your user and group information. For more+    -- information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | A name for your Amazon Kendra experience.+    name :: Prelude.Text,+    -- | The identifier of the index for your Amazon Kendra experience.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateExperience' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createExperience_clientToken' - A token that you provide to identify the request to create your Amazon+-- Kendra experience. Multiple calls to the @CreateExperience@ API with the+-- same client token creates only one Amazon Kendra experience.+--+-- 'configuration', 'createExperience_configuration' - Configuration information for your Amazon Kendra experience. This+-- includes @ContentSourceConfiguration@, which specifies the data source+-- IDs and\/or FAQ IDs, and @UserIdentityConfiguration@, which specifies+-- the user or group information to grant access to your Amazon Kendra+-- experience.+--+-- 'description', 'createExperience_description' - A description for your Amazon Kendra experience.+--+-- 'roleArn', 'createExperience_roleArn' - The Amazon Resource Name (ARN) of a role with permission to access+-- @Query@ API, @QuerySuggestions@ API, @SubmitFeedback@ API, and IAM+-- Identity Center that stores your user and group information. For more+-- information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+--+-- 'name', 'createExperience_name' - A name for your Amazon Kendra experience.+--+-- 'indexId', 'createExperience_indexId' - The identifier of the index for your Amazon Kendra experience.+newCreateExperience ::+  -- | 'name'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  CreateExperience+newCreateExperience pName_ pIndexId_ =+  CreateExperience'+    { clientToken = Prelude.Nothing,+      configuration = Prelude.Nothing,+      description = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      name = pName_,+      indexId = pIndexId_+    }++-- | A token that you provide to identify the request to create your Amazon+-- Kendra experience. Multiple calls to the @CreateExperience@ API with the+-- same client token creates only one Amazon Kendra experience.+createExperience_clientToken :: Lens.Lens' CreateExperience (Prelude.Maybe Prelude.Text)+createExperience_clientToken = Lens.lens (\CreateExperience' {clientToken} -> clientToken) (\s@CreateExperience' {} a -> s {clientToken = a} :: CreateExperience)++-- | Configuration information for your Amazon Kendra experience. This+-- includes @ContentSourceConfiguration@, which specifies the data source+-- IDs and\/or FAQ IDs, and @UserIdentityConfiguration@, which specifies+-- the user or group information to grant access to your Amazon Kendra+-- experience.+createExperience_configuration :: Lens.Lens' CreateExperience (Prelude.Maybe ExperienceConfiguration)+createExperience_configuration = Lens.lens (\CreateExperience' {configuration} -> configuration) (\s@CreateExperience' {} a -> s {configuration = a} :: CreateExperience)++-- | A description for your Amazon Kendra experience.+createExperience_description :: Lens.Lens' CreateExperience (Prelude.Maybe Prelude.Text)+createExperience_description = Lens.lens (\CreateExperience' {description} -> description) (\s@CreateExperience' {} a -> s {description = a} :: CreateExperience)++-- | The Amazon Resource Name (ARN) of a role with permission to access+-- @Query@ API, @QuerySuggestions@ API, @SubmitFeedback@ API, and IAM+-- Identity Center that stores your user and group information. For more+-- information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+createExperience_roleArn :: Lens.Lens' CreateExperience (Prelude.Maybe Prelude.Text)+createExperience_roleArn = Lens.lens (\CreateExperience' {roleArn} -> roleArn) (\s@CreateExperience' {} a -> s {roleArn = a} :: CreateExperience)++-- | A name for your Amazon Kendra experience.+createExperience_name :: Lens.Lens' CreateExperience Prelude.Text+createExperience_name = Lens.lens (\CreateExperience' {name} -> name) (\s@CreateExperience' {} a -> s {name = a} :: CreateExperience)++-- | The identifier of the index for your Amazon Kendra experience.+createExperience_indexId :: Lens.Lens' CreateExperience Prelude.Text+createExperience_indexId = Lens.lens (\CreateExperience' {indexId} -> indexId) (\s@CreateExperience' {} a -> s {indexId = a} :: CreateExperience)++instance Core.AWSRequest CreateExperience where+  type+    AWSResponse CreateExperience =+      CreateExperienceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateExperienceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Id")+      )++instance Prelude.Hashable CreateExperience where+  hashWithSalt _salt CreateExperience' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` configuration+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData CreateExperience where+  rnf CreateExperience' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders CreateExperience where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.CreateExperience" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateExperience where+  toJSON CreateExperience' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientToken" Data..=) Prelude.<$> clientToken,+            ("Configuration" Data..=) Prelude.<$> configuration,+            ("Description" Data..=) Prelude.<$> description,+            ("RoleArn" Data..=) Prelude.<$> roleArn,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath CreateExperience where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateExperience where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateExperienceResponse' smart constructor.+data CreateExperienceResponse = CreateExperienceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The identifier for your created Amazon Kendra experience.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateExperienceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'createExperienceResponse_httpStatus' - The response's http status code.+--+-- 'id', 'createExperienceResponse_id' - The identifier for your created Amazon Kendra experience.+newCreateExperienceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'id'+  Prelude.Text ->+  CreateExperienceResponse+newCreateExperienceResponse pHttpStatus_ pId_ =+  CreateExperienceResponse'+    { httpStatus =+        pHttpStatus_,+      id = pId_+    }++-- | The response's http status code.+createExperienceResponse_httpStatus :: Lens.Lens' CreateExperienceResponse Prelude.Int+createExperienceResponse_httpStatus = Lens.lens (\CreateExperienceResponse' {httpStatus} -> httpStatus) (\s@CreateExperienceResponse' {} a -> s {httpStatus = a} :: CreateExperienceResponse)++-- | The identifier for your created Amazon Kendra experience.+createExperienceResponse_id :: Lens.Lens' CreateExperienceResponse Prelude.Text+createExperienceResponse_id = Lens.lens (\CreateExperienceResponse' {id} -> id) (\s@CreateExperienceResponse' {} a -> s {id = a} :: CreateExperienceResponse)++instance Prelude.NFData CreateExperienceResponse where+  rnf CreateExperienceResponse' {..} =+    Prelude.rnf httpStatus `Prelude.seq` Prelude.rnf id
+ gen/Amazonka/Kendra/CreateFaq.hs view
@@ -0,0 +1,334 @@+{-# 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.Kendra.CreateFaq+-- 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 new set of frequently asked question (FAQ) questions and+-- answers.+--+-- Adding FAQs to an index is an asynchronous operation.+--+-- For an example of adding an FAQ to an index using Python and Java SDKs,+-- see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-creating-faq.html#using-faq-file Using your FAQ file>.+module Amazonka.Kendra.CreateFaq+  ( -- * Creating a Request+    CreateFaq (..),+    newCreateFaq,++    -- * Request Lenses+    createFaq_clientToken,+    createFaq_description,+    createFaq_fileFormat,+    createFaq_languageCode,+    createFaq_tags,+    createFaq_indexId,+    createFaq_name,+    createFaq_s3Path,+    createFaq_roleArn,++    -- * Destructuring the Response+    CreateFaqResponse (..),+    newCreateFaqResponse,++    -- * Response Lenses+    createFaqResponse_id,+    createFaqResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateFaq' smart constructor.+data CreateFaq = CreateFaq'+  { -- | A token that you provide to identify the request to create a FAQ.+    -- Multiple calls to the @CreateFaqRequest@ API with the same client token+    -- will create only one FAQ.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A description for the FAQ.+    description :: Prelude.Maybe Prelude.Text,+    -- | The format of the FAQ input file. You can choose between a basic CSV+    -- format, a CSV format that includes customs attributes in a header, and a+    -- JSON format that includes custom attributes.+    --+    -- The format must match the format of the file stored in the S3 bucket+    -- identified in the @S3Path@ parameter.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/in-creating-faq.html Adding questions and answers>.+    fileFormat :: Prelude.Maybe FaqFileFormat,+    -- | The code for a language. This allows you to support a language for the+    -- FAQ document. English is supported by default. For more information on+    -- supported languages, including their codes, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+    languageCode :: Prelude.Maybe Prelude.Text,+    -- | A list of key-value pairs that identify the FAQ. You can use the tags to+    -- identify and organize your resources and to control access to resources.+    tags :: Prelude.Maybe [Tag],+    -- | The identifier of the index for the FAQ.+    indexId :: Prelude.Text,+    -- | A name for the FAQ.+    name :: Prelude.Text,+    -- | The path to the FAQ file in S3.+    s3Path :: S3Path,+    -- | The Amazon Resource Name (ARN) of a role with permission to access the+    -- S3 bucket that contains the FAQs. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM Roles for Amazon Kendra>.+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateFaq' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createFaq_clientToken' - A token that you provide to identify the request to create a FAQ.+-- Multiple calls to the @CreateFaqRequest@ API with the same client token+-- will create only one FAQ.+--+-- 'description', 'createFaq_description' - A description for the FAQ.+--+-- 'fileFormat', 'createFaq_fileFormat' - The format of the FAQ input file. You can choose between a basic CSV+-- format, a CSV format that includes customs attributes in a header, and a+-- JSON format that includes custom attributes.+--+-- The format must match the format of the file stored in the S3 bucket+-- identified in the @S3Path@ parameter.+--+-- For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-creating-faq.html Adding questions and answers>.+--+-- 'languageCode', 'createFaq_languageCode' - The code for a language. This allows you to support a language for the+-- FAQ document. English is supported by default. For more information on+-- supported languages, including their codes, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+--+-- 'tags', 'createFaq_tags' - A list of key-value pairs that identify the FAQ. You can use the tags to+-- identify and organize your resources and to control access to resources.+--+-- 'indexId', 'createFaq_indexId' - The identifier of the index for the FAQ.+--+-- 'name', 'createFaq_name' - A name for the FAQ.+--+-- 's3Path', 'createFaq_s3Path' - The path to the FAQ file in S3.+--+-- 'roleArn', 'createFaq_roleArn' - The Amazon Resource Name (ARN) of a role with permission to access the+-- S3 bucket that contains the FAQs. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM Roles for Amazon Kendra>.+newCreateFaq ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  -- | 's3Path'+  S3Path ->+  -- | 'roleArn'+  Prelude.Text ->+  CreateFaq+newCreateFaq pIndexId_ pName_ pS3Path_ pRoleArn_ =+  CreateFaq'+    { clientToken = Prelude.Nothing,+      description = Prelude.Nothing,+      fileFormat = Prelude.Nothing,+      languageCode = Prelude.Nothing,+      tags = Prelude.Nothing,+      indexId = pIndexId_,+      name = pName_,+      s3Path = pS3Path_,+      roleArn = pRoleArn_+    }++-- | A token that you provide to identify the request to create a FAQ.+-- Multiple calls to the @CreateFaqRequest@ API with the same client token+-- will create only one FAQ.+createFaq_clientToken :: Lens.Lens' CreateFaq (Prelude.Maybe Prelude.Text)+createFaq_clientToken = Lens.lens (\CreateFaq' {clientToken} -> clientToken) (\s@CreateFaq' {} a -> s {clientToken = a} :: CreateFaq)++-- | A description for the FAQ.+createFaq_description :: Lens.Lens' CreateFaq (Prelude.Maybe Prelude.Text)+createFaq_description = Lens.lens (\CreateFaq' {description} -> description) (\s@CreateFaq' {} a -> s {description = a} :: CreateFaq)++-- | The format of the FAQ input file. You can choose between a basic CSV+-- format, a CSV format that includes customs attributes in a header, and a+-- JSON format that includes custom attributes.+--+-- The format must match the format of the file stored in the S3 bucket+-- identified in the @S3Path@ parameter.+--+-- For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-creating-faq.html Adding questions and answers>.+createFaq_fileFormat :: Lens.Lens' CreateFaq (Prelude.Maybe FaqFileFormat)+createFaq_fileFormat = Lens.lens (\CreateFaq' {fileFormat} -> fileFormat) (\s@CreateFaq' {} a -> s {fileFormat = a} :: CreateFaq)++-- | The code for a language. This allows you to support a language for the+-- FAQ document. English is supported by default. For more information on+-- supported languages, including their codes, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+createFaq_languageCode :: Lens.Lens' CreateFaq (Prelude.Maybe Prelude.Text)+createFaq_languageCode = Lens.lens (\CreateFaq' {languageCode} -> languageCode) (\s@CreateFaq' {} a -> s {languageCode = a} :: CreateFaq)++-- | A list of key-value pairs that identify the FAQ. You can use the tags to+-- identify and organize your resources and to control access to resources.+createFaq_tags :: Lens.Lens' CreateFaq (Prelude.Maybe [Tag])+createFaq_tags = Lens.lens (\CreateFaq' {tags} -> tags) (\s@CreateFaq' {} a -> s {tags = a} :: CreateFaq) Prelude.. Lens.mapping Lens.coerced++-- | The identifier of the index for the FAQ.+createFaq_indexId :: Lens.Lens' CreateFaq Prelude.Text+createFaq_indexId = Lens.lens (\CreateFaq' {indexId} -> indexId) (\s@CreateFaq' {} a -> s {indexId = a} :: CreateFaq)++-- | A name for the FAQ.+createFaq_name :: Lens.Lens' CreateFaq Prelude.Text+createFaq_name = Lens.lens (\CreateFaq' {name} -> name) (\s@CreateFaq' {} a -> s {name = a} :: CreateFaq)++-- | The path to the FAQ file in S3.+createFaq_s3Path :: Lens.Lens' CreateFaq S3Path+createFaq_s3Path = Lens.lens (\CreateFaq' {s3Path} -> s3Path) (\s@CreateFaq' {} a -> s {s3Path = a} :: CreateFaq)++-- | The Amazon Resource Name (ARN) of a role with permission to access the+-- S3 bucket that contains the FAQs. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM Roles for Amazon Kendra>.+createFaq_roleArn :: Lens.Lens' CreateFaq Prelude.Text+createFaq_roleArn = Lens.lens (\CreateFaq' {roleArn} -> roleArn) (\s@CreateFaq' {} a -> s {roleArn = a} :: CreateFaq)++instance Core.AWSRequest CreateFaq where+  type AWSResponse CreateFaq = CreateFaqResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateFaqResponse'+            Prelude.<$> (x Data..?> "Id")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateFaq where+  hashWithSalt _salt CreateFaq' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` fileFormat+      `Prelude.hashWithSalt` languageCode+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` indexId+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` s3Path+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData CreateFaq where+  rnf CreateFaq' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf fileFormat+      `Prelude.seq` Prelude.rnf languageCode+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf s3Path+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToHeaders CreateFaq where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.CreateFaq" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateFaq where+  toJSON CreateFaq' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientToken" Data..=) Prelude.<$> clientToken,+            ("Description" Data..=) Prelude.<$> description,+            ("FileFormat" Data..=) Prelude.<$> fileFormat,+            ("LanguageCode" Data..=) Prelude.<$> languageCode,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("S3Path" Data..= s3Path),+            Prelude.Just ("RoleArn" Data..= roleArn)+          ]+      )++instance Data.ToPath CreateFaq where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateFaq where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateFaqResponse' smart constructor.+data CreateFaqResponse = CreateFaqResponse'+  { -- | The identifier of the FAQ.+    id :: 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 'CreateFaqResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'createFaqResponse_id' - The identifier of the FAQ.+--+-- 'httpStatus', 'createFaqResponse_httpStatus' - The response's http status code.+newCreateFaqResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateFaqResponse+newCreateFaqResponse pHttpStatus_ =+  CreateFaqResponse'+    { id = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the FAQ.+createFaqResponse_id :: Lens.Lens' CreateFaqResponse (Prelude.Maybe Prelude.Text)+createFaqResponse_id = Lens.lens (\CreateFaqResponse' {id} -> id) (\s@CreateFaqResponse' {} a -> s {id = a} :: CreateFaqResponse)++-- | The response's http status code.+createFaqResponse_httpStatus :: Lens.Lens' CreateFaqResponse Prelude.Int+createFaqResponse_httpStatus = Lens.lens (\CreateFaqResponse' {httpStatus} -> httpStatus) (\s@CreateFaqResponse' {} a -> s {httpStatus = a} :: CreateFaqResponse)++instance Prelude.NFData CreateFaqResponse where+  rnf CreateFaqResponse' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/CreateIndex.hs view
@@ -0,0 +1,407 @@+{-# 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.Kendra.CreateIndex+-- 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 Kendra index. Index creation is an asynchronous API.+-- To determine if index creation has completed, check the @Status@ field+-- returned from a call to @DescribeIndex@. The @Status@ field is set to+-- @ACTIVE@ when the index is ready to use.+--+-- Once the index is active you can index your documents using the+-- @BatchPutDocument@ API or using one of the supported data sources.+--+-- For an example of creating an index and data source using the Python+-- SDK, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/gs-python.html Getting started with Python SDK>.+-- For an example of creating an index and data source using the Java SDK,+-- see+-- <https://docs.aws.amazon.com/kendra/latest/dg/gs-java.html Getting started with Java SDK>.+module Amazonka.Kendra.CreateIndex+  ( -- * Creating a Request+    CreateIndex (..),+    newCreateIndex,++    -- * Request Lenses+    createIndex_clientToken,+    createIndex_description,+    createIndex_edition,+    createIndex_serverSideEncryptionConfiguration,+    createIndex_tags,+    createIndex_userContextPolicy,+    createIndex_userGroupResolutionConfiguration,+    createIndex_userTokenConfigurations,+    createIndex_name,+    createIndex_roleArn,++    -- * Destructuring the Response+    CreateIndexResponse (..),+    newCreateIndexResponse,++    -- * Response Lenses+    createIndexResponse_id,+    createIndexResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateIndex' smart constructor.+data CreateIndex = CreateIndex'+  { -- | A token that you provide to identify the request to create an index.+    -- Multiple calls to the @CreateIndex@ API with the same client token will+    -- create only one index.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A description for the index.+    description :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Kendra edition to use for the index. Choose+    -- @DEVELOPER_EDITION@ for indexes intended for development, testing, or+    -- proof of concept. Use @ENTERPRISE_EDITION@ for your production+    -- databases. Once you set the edition for an index, it can\'t be changed.+    --+    -- The @Edition@ parameter is optional. If you don\'t supply a value, the+    -- default is @ENTERPRISE_EDITION@.+    --+    -- For more information on quota limits for enterprise and developer+    -- editions, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas>.+    edition :: Prelude.Maybe IndexEdition,+    -- | The identifier of the KMS customer managed key (CMK) that\'s used to+    -- encrypt data indexed by Amazon Kendra. Amazon Kendra doesn\'t support+    -- asymmetric CMKs.+    serverSideEncryptionConfiguration :: Prelude.Maybe ServerSideEncryptionConfiguration,+    -- | A list of key-value pairs that identify the index. You can use the tags+    -- to identify and organize your resources and to control access to+    -- resources.+    tags :: Prelude.Maybe [Tag],+    -- | The user context policy.+    --+    -- [ATTRIBUTE_FILTER]+    --     All indexed content is searchable and displayable for all users. If+    --     you want to filter search results on user context, you can use the+    --     attribute filters of @_user_id@ and @_group_ids@ or you can provide+    --     user and group information in @UserContext@.+    --+    -- [USER_TOKEN]+    --     Enables token-based user access control to filter search results on+    --     user context. All documents with no access control and all documents+    --     accessible to the user will be searchable and displayable.+    userContextPolicy :: Prelude.Maybe UserContextPolicy,+    -- | Enables fetching access levels of groups and users from an IAM Identity+    -- Center (successor to Single Sign-On) identity source. To configure this,+    -- see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/API_UserGroupResolutionConfiguration.html UserGroupResolutionConfiguration>.+    userGroupResolutionConfiguration :: Prelude.Maybe UserGroupResolutionConfiguration,+    -- | The user token configuration.+    userTokenConfigurations :: Prelude.Maybe [UserTokenConfiguration],+    -- | A name for the index.+    name :: Prelude.Text,+    -- | An Identity and Access Management (IAM) role that gives Amazon Kendra+    -- permissions to access your Amazon CloudWatch logs and metrics. This is+    -- also the role you use when you call the @BatchPutDocument@ API to index+    -- documents from an Amazon S3 bucket.+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateIndex' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createIndex_clientToken' - A token that you provide to identify the request to create an index.+-- Multiple calls to the @CreateIndex@ API with the same client token will+-- create only one index.+--+-- 'description', 'createIndex_description' - A description for the index.+--+-- 'edition', 'createIndex_edition' - The Amazon Kendra edition to use for the index. Choose+-- @DEVELOPER_EDITION@ for indexes intended for development, testing, or+-- proof of concept. Use @ENTERPRISE_EDITION@ for your production+-- databases. Once you set the edition for an index, it can\'t be changed.+--+-- The @Edition@ parameter is optional. If you don\'t supply a value, the+-- default is @ENTERPRISE_EDITION@.+--+-- For more information on quota limits for enterprise and developer+-- editions, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas>.+--+-- 'serverSideEncryptionConfiguration', 'createIndex_serverSideEncryptionConfiguration' - The identifier of the KMS customer managed key (CMK) that\'s used to+-- encrypt data indexed by Amazon Kendra. Amazon Kendra doesn\'t support+-- asymmetric CMKs.+--+-- 'tags', 'createIndex_tags' - A list of key-value pairs that identify the index. You can use the tags+-- to identify and organize your resources and to control access to+-- resources.+--+-- 'userContextPolicy', 'createIndex_userContextPolicy' - The user context policy.+--+-- [ATTRIBUTE_FILTER]+--     All indexed content is searchable and displayable for all users. If+--     you want to filter search results on user context, you can use the+--     attribute filters of @_user_id@ and @_group_ids@ or you can provide+--     user and group information in @UserContext@.+--+-- [USER_TOKEN]+--     Enables token-based user access control to filter search results on+--     user context. All documents with no access control and all documents+--     accessible to the user will be searchable and displayable.+--+-- 'userGroupResolutionConfiguration', 'createIndex_userGroupResolutionConfiguration' - Enables fetching access levels of groups and users from an IAM Identity+-- Center (successor to Single Sign-On) identity source. To configure this,+-- see+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_UserGroupResolutionConfiguration.html UserGroupResolutionConfiguration>.+--+-- 'userTokenConfigurations', 'createIndex_userTokenConfigurations' - The user token configuration.+--+-- 'name', 'createIndex_name' - A name for the index.+--+-- 'roleArn', 'createIndex_roleArn' - An Identity and Access Management (IAM) role that gives Amazon Kendra+-- permissions to access your Amazon CloudWatch logs and metrics. This is+-- also the role you use when you call the @BatchPutDocument@ API to index+-- documents from an Amazon S3 bucket.+newCreateIndex ::+  -- | 'name'+  Prelude.Text ->+  -- | 'roleArn'+  Prelude.Text ->+  CreateIndex+newCreateIndex pName_ pRoleArn_ =+  CreateIndex'+    { clientToken = Prelude.Nothing,+      description = Prelude.Nothing,+      edition = Prelude.Nothing,+      serverSideEncryptionConfiguration = Prelude.Nothing,+      tags = Prelude.Nothing,+      userContextPolicy = Prelude.Nothing,+      userGroupResolutionConfiguration = Prelude.Nothing,+      userTokenConfigurations = Prelude.Nothing,+      name = pName_,+      roleArn = pRoleArn_+    }++-- | A token that you provide to identify the request to create an index.+-- Multiple calls to the @CreateIndex@ API with the same client token will+-- create only one index.+createIndex_clientToken :: Lens.Lens' CreateIndex (Prelude.Maybe Prelude.Text)+createIndex_clientToken = Lens.lens (\CreateIndex' {clientToken} -> clientToken) (\s@CreateIndex' {} a -> s {clientToken = a} :: CreateIndex)++-- | A description for the index.+createIndex_description :: Lens.Lens' CreateIndex (Prelude.Maybe Prelude.Text)+createIndex_description = Lens.lens (\CreateIndex' {description} -> description) (\s@CreateIndex' {} a -> s {description = a} :: CreateIndex)++-- | The Amazon Kendra edition to use for the index. Choose+-- @DEVELOPER_EDITION@ for indexes intended for development, testing, or+-- proof of concept. Use @ENTERPRISE_EDITION@ for your production+-- databases. Once you set the edition for an index, it can\'t be changed.+--+-- The @Edition@ parameter is optional. If you don\'t supply a value, the+-- default is @ENTERPRISE_EDITION@.+--+-- For more information on quota limits for enterprise and developer+-- editions, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas>.+createIndex_edition :: Lens.Lens' CreateIndex (Prelude.Maybe IndexEdition)+createIndex_edition = Lens.lens (\CreateIndex' {edition} -> edition) (\s@CreateIndex' {} a -> s {edition = a} :: CreateIndex)++-- | The identifier of the KMS customer managed key (CMK) that\'s used to+-- encrypt data indexed by Amazon Kendra. Amazon Kendra doesn\'t support+-- asymmetric CMKs.+createIndex_serverSideEncryptionConfiguration :: Lens.Lens' CreateIndex (Prelude.Maybe ServerSideEncryptionConfiguration)+createIndex_serverSideEncryptionConfiguration = Lens.lens (\CreateIndex' {serverSideEncryptionConfiguration} -> serverSideEncryptionConfiguration) (\s@CreateIndex' {} a -> s {serverSideEncryptionConfiguration = a} :: CreateIndex)++-- | A list of key-value pairs that identify the index. You can use the tags+-- to identify and organize your resources and to control access to+-- resources.+createIndex_tags :: Lens.Lens' CreateIndex (Prelude.Maybe [Tag])+createIndex_tags = Lens.lens (\CreateIndex' {tags} -> tags) (\s@CreateIndex' {} a -> s {tags = a} :: CreateIndex) Prelude.. Lens.mapping Lens.coerced++-- | The user context policy.+--+-- [ATTRIBUTE_FILTER]+--     All indexed content is searchable and displayable for all users. If+--     you want to filter search results on user context, you can use the+--     attribute filters of @_user_id@ and @_group_ids@ or you can provide+--     user and group information in @UserContext@.+--+-- [USER_TOKEN]+--     Enables token-based user access control to filter search results on+--     user context. All documents with no access control and all documents+--     accessible to the user will be searchable and displayable.+createIndex_userContextPolicy :: Lens.Lens' CreateIndex (Prelude.Maybe UserContextPolicy)+createIndex_userContextPolicy = Lens.lens (\CreateIndex' {userContextPolicy} -> userContextPolicy) (\s@CreateIndex' {} a -> s {userContextPolicy = a} :: CreateIndex)++-- | Enables fetching access levels of groups and users from an IAM Identity+-- Center (successor to Single Sign-On) identity source. To configure this,+-- see+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_UserGroupResolutionConfiguration.html UserGroupResolutionConfiguration>.+createIndex_userGroupResolutionConfiguration :: Lens.Lens' CreateIndex (Prelude.Maybe UserGroupResolutionConfiguration)+createIndex_userGroupResolutionConfiguration = Lens.lens (\CreateIndex' {userGroupResolutionConfiguration} -> userGroupResolutionConfiguration) (\s@CreateIndex' {} a -> s {userGroupResolutionConfiguration = a} :: CreateIndex)++-- | The user token configuration.+createIndex_userTokenConfigurations :: Lens.Lens' CreateIndex (Prelude.Maybe [UserTokenConfiguration])+createIndex_userTokenConfigurations = Lens.lens (\CreateIndex' {userTokenConfigurations} -> userTokenConfigurations) (\s@CreateIndex' {} a -> s {userTokenConfigurations = a} :: CreateIndex) Prelude.. Lens.mapping Lens.coerced++-- | A name for the index.+createIndex_name :: Lens.Lens' CreateIndex Prelude.Text+createIndex_name = Lens.lens (\CreateIndex' {name} -> name) (\s@CreateIndex' {} a -> s {name = a} :: CreateIndex)++-- | An Identity and Access Management (IAM) role that gives Amazon Kendra+-- permissions to access your Amazon CloudWatch logs and metrics. This is+-- also the role you use when you call the @BatchPutDocument@ API to index+-- documents from an Amazon S3 bucket.+createIndex_roleArn :: Lens.Lens' CreateIndex Prelude.Text+createIndex_roleArn = Lens.lens (\CreateIndex' {roleArn} -> roleArn) (\s@CreateIndex' {} a -> s {roleArn = a} :: CreateIndex)++instance Core.AWSRequest CreateIndex where+  type AWSResponse CreateIndex = CreateIndexResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateIndexResponse'+            Prelude.<$> (x Data..?> "Id")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateIndex where+  hashWithSalt _salt CreateIndex' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` edition+      `Prelude.hashWithSalt` serverSideEncryptionConfiguration+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` userContextPolicy+      `Prelude.hashWithSalt` userGroupResolutionConfiguration+      `Prelude.hashWithSalt` userTokenConfigurations+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` roleArn++instance Prelude.NFData CreateIndex where+  rnf CreateIndex' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf edition+      `Prelude.seq` Prelude.rnf serverSideEncryptionConfiguration+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf userContextPolicy+      `Prelude.seq` Prelude.rnf userGroupResolutionConfiguration+      `Prelude.seq` Prelude.rnf userTokenConfigurations+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn++instance Data.ToHeaders CreateIndex where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.CreateIndex" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateIndex where+  toJSON CreateIndex' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientToken" Data..=) Prelude.<$> clientToken,+            ("Description" Data..=) Prelude.<$> description,+            ("Edition" Data..=) Prelude.<$> edition,+            ("ServerSideEncryptionConfiguration" Data..=)+              Prelude.<$> serverSideEncryptionConfiguration,+            ("Tags" Data..=) Prelude.<$> tags,+            ("UserContextPolicy" Data..=)+              Prelude.<$> userContextPolicy,+            ("UserGroupResolutionConfiguration" Data..=)+              Prelude.<$> userGroupResolutionConfiguration,+            ("UserTokenConfigurations" Data..=)+              Prelude.<$> userTokenConfigurations,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("RoleArn" Data..= roleArn)+          ]+      )++instance Data.ToPath CreateIndex where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateIndex where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateIndexResponse' smart constructor.+data CreateIndexResponse = CreateIndexResponse'+  { -- | The identifier of the index. Use this identifier when you query an+    -- index, set up a data source, or index a document.+    id :: 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 'CreateIndexResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'createIndexResponse_id' - The identifier of the index. Use this identifier when you query an+-- index, set up a data source, or index a document.+--+-- 'httpStatus', 'createIndexResponse_httpStatus' - The response's http status code.+newCreateIndexResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateIndexResponse+newCreateIndexResponse pHttpStatus_ =+  CreateIndexResponse'+    { id = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the index. Use this identifier when you query an+-- index, set up a data source, or index a document.+createIndexResponse_id :: Lens.Lens' CreateIndexResponse (Prelude.Maybe Prelude.Text)+createIndexResponse_id = Lens.lens (\CreateIndexResponse' {id} -> id) (\s@CreateIndexResponse' {} a -> s {id = a} :: CreateIndexResponse)++-- | The response's http status code.+createIndexResponse_httpStatus :: Lens.Lens' CreateIndexResponse Prelude.Int+createIndexResponse_httpStatus = Lens.lens (\CreateIndexResponse' {httpStatus} -> httpStatus) (\s@CreateIndexResponse' {} a -> s {httpStatus = a} :: CreateIndexResponse)++instance Prelude.NFData CreateIndexResponse where+  rnf CreateIndexResponse' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/CreateQuerySuggestionsBlockList.hs view
@@ -0,0 +1,359 @@+{-# 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.Kendra.CreateQuerySuggestionsBlockList+-- 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 block list to exlcude certain queries from suggestions.+--+-- Any query that contains words or phrases specified in the block list is+-- blocked or filtered out from being shown as a suggestion.+--+-- You need to provide the file location of your block list text file in+-- your S3 bucket. In your text file, enter each block word or phrase on a+-- separate line.+--+-- For information on the current quota limits for block lists, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas for Amazon Kendra>.+--+-- @CreateQuerySuggestionsBlockList@ is currently not supported in the+-- Amazon Web Services GovCloud (US-West) region.+--+-- For an example of creating a block list for query suggestions using the+-- Python SDK, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/query-suggestions.html#suggestions-block-list Query suggestions block list>.+module Amazonka.Kendra.CreateQuerySuggestionsBlockList+  ( -- * Creating a Request+    CreateQuerySuggestionsBlockList (..),+    newCreateQuerySuggestionsBlockList,++    -- * Request Lenses+    createQuerySuggestionsBlockList_clientToken,+    createQuerySuggestionsBlockList_description,+    createQuerySuggestionsBlockList_tags,+    createQuerySuggestionsBlockList_indexId,+    createQuerySuggestionsBlockList_name,+    createQuerySuggestionsBlockList_sourceS3Path,+    createQuerySuggestionsBlockList_roleArn,++    -- * Destructuring the Response+    CreateQuerySuggestionsBlockListResponse (..),+    newCreateQuerySuggestionsBlockListResponse,++    -- * Response Lenses+    createQuerySuggestionsBlockListResponse_id,+    createQuerySuggestionsBlockListResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateQuerySuggestionsBlockList' smart constructor.+data CreateQuerySuggestionsBlockList = CreateQuerySuggestionsBlockList'+  { -- | A token that you provide to identify the request to create a query+    -- suggestions block list.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A user-friendly description for the block list.+    --+    -- For example, the description \"List of all offensive words that can+    -- appear in user queries and need to be blocked from suggestions.\"+    description :: Prelude.Maybe Prelude.Text,+    -- | A tag that you can assign to a block list that categorizes the block+    -- list.+    tags :: Prelude.Maybe [Tag],+    -- | The identifier of the index you want to create a query suggestions block+    -- list for.+    indexId :: Prelude.Text,+    -- | A user friendly name for the block list.+    --+    -- For example, the block list named \'offensive-words\' includes all+    -- offensive words that could appear in user queries and need to be blocked+    -- from suggestions.+    name :: Prelude.Text,+    -- | The S3 path to your block list text file in your S3 bucket.+    --+    -- Each block word or phrase should be on a separate line in a text file.+    --+    -- For information on the current quota limits for block lists, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas for Amazon Kendra>.+    sourceS3Path :: S3Path,+    -- | The IAM (Identity and Access Management) role used by Amazon Kendra to+    -- access the block list text file in your S3 bucket.+    --+    -- You need permissions to the role ARN (Amazon Web Services Resource+    -- Name). The role needs S3 read permissions to your file in S3 and needs+    -- to give STS (Security Token Service) assume role permissions to Amazon+    -- Kendra.+    roleArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateQuerySuggestionsBlockList' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createQuerySuggestionsBlockList_clientToken' - A token that you provide to identify the request to create a query+-- suggestions block list.+--+-- 'description', 'createQuerySuggestionsBlockList_description' - A user-friendly description for the block list.+--+-- For example, the description \"List of all offensive words that can+-- appear in user queries and need to be blocked from suggestions.\"+--+-- 'tags', 'createQuerySuggestionsBlockList_tags' - A tag that you can assign to a block list that categorizes the block+-- list.+--+-- 'indexId', 'createQuerySuggestionsBlockList_indexId' - The identifier of the index you want to create a query suggestions block+-- list for.+--+-- 'name', 'createQuerySuggestionsBlockList_name' - A user friendly name for the block list.+--+-- For example, the block list named \'offensive-words\' includes all+-- offensive words that could appear in user queries and need to be blocked+-- from suggestions.+--+-- 'sourceS3Path', 'createQuerySuggestionsBlockList_sourceS3Path' - The S3 path to your block list text file in your S3 bucket.+--+-- Each block word or phrase should be on a separate line in a text file.+--+-- For information on the current quota limits for block lists, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas for Amazon Kendra>.+--+-- 'roleArn', 'createQuerySuggestionsBlockList_roleArn' - The IAM (Identity and Access Management) role used by Amazon Kendra to+-- access the block list text file in your S3 bucket.+--+-- You need permissions to the role ARN (Amazon Web Services Resource+-- Name). The role needs S3 read permissions to your file in S3 and needs+-- to give STS (Security Token Service) assume role permissions to Amazon+-- Kendra.+newCreateQuerySuggestionsBlockList ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  -- | 'sourceS3Path'+  S3Path ->+  -- | 'roleArn'+  Prelude.Text ->+  CreateQuerySuggestionsBlockList+newCreateQuerySuggestionsBlockList+  pIndexId_+  pName_+  pSourceS3Path_+  pRoleArn_ =+    CreateQuerySuggestionsBlockList'+      { clientToken =+          Prelude.Nothing,+        description = Prelude.Nothing,+        tags = Prelude.Nothing,+        indexId = pIndexId_,+        name = pName_,+        sourceS3Path = pSourceS3Path_,+        roleArn = pRoleArn_+      }++-- | A token that you provide to identify the request to create a query+-- suggestions block list.+createQuerySuggestionsBlockList_clientToken :: Lens.Lens' CreateQuerySuggestionsBlockList (Prelude.Maybe Prelude.Text)+createQuerySuggestionsBlockList_clientToken = Lens.lens (\CreateQuerySuggestionsBlockList' {clientToken} -> clientToken) (\s@CreateQuerySuggestionsBlockList' {} a -> s {clientToken = a} :: CreateQuerySuggestionsBlockList)++-- | A user-friendly description for the block list.+--+-- For example, the description \"List of all offensive words that can+-- appear in user queries and need to be blocked from suggestions.\"+createQuerySuggestionsBlockList_description :: Lens.Lens' CreateQuerySuggestionsBlockList (Prelude.Maybe Prelude.Text)+createQuerySuggestionsBlockList_description = Lens.lens (\CreateQuerySuggestionsBlockList' {description} -> description) (\s@CreateQuerySuggestionsBlockList' {} a -> s {description = a} :: CreateQuerySuggestionsBlockList)++-- | A tag that you can assign to a block list that categorizes the block+-- list.+createQuerySuggestionsBlockList_tags :: Lens.Lens' CreateQuerySuggestionsBlockList (Prelude.Maybe [Tag])+createQuerySuggestionsBlockList_tags = Lens.lens (\CreateQuerySuggestionsBlockList' {tags} -> tags) (\s@CreateQuerySuggestionsBlockList' {} a -> s {tags = a} :: CreateQuerySuggestionsBlockList) Prelude.. Lens.mapping Lens.coerced++-- | The identifier of the index you want to create a query suggestions block+-- list for.+createQuerySuggestionsBlockList_indexId :: Lens.Lens' CreateQuerySuggestionsBlockList Prelude.Text+createQuerySuggestionsBlockList_indexId = Lens.lens (\CreateQuerySuggestionsBlockList' {indexId} -> indexId) (\s@CreateQuerySuggestionsBlockList' {} a -> s {indexId = a} :: CreateQuerySuggestionsBlockList)++-- | A user friendly name for the block list.+--+-- For example, the block list named \'offensive-words\' includes all+-- offensive words that could appear in user queries and need to be blocked+-- from suggestions.+createQuerySuggestionsBlockList_name :: Lens.Lens' CreateQuerySuggestionsBlockList Prelude.Text+createQuerySuggestionsBlockList_name = Lens.lens (\CreateQuerySuggestionsBlockList' {name} -> name) (\s@CreateQuerySuggestionsBlockList' {} a -> s {name = a} :: CreateQuerySuggestionsBlockList)++-- | The S3 path to your block list text file in your S3 bucket.+--+-- Each block word or phrase should be on a separate line in a text file.+--+-- For information on the current quota limits for block lists, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas for Amazon Kendra>.+createQuerySuggestionsBlockList_sourceS3Path :: Lens.Lens' CreateQuerySuggestionsBlockList S3Path+createQuerySuggestionsBlockList_sourceS3Path = Lens.lens (\CreateQuerySuggestionsBlockList' {sourceS3Path} -> sourceS3Path) (\s@CreateQuerySuggestionsBlockList' {} a -> s {sourceS3Path = a} :: CreateQuerySuggestionsBlockList)++-- | The IAM (Identity and Access Management) role used by Amazon Kendra to+-- access the block list text file in your S3 bucket.+--+-- You need permissions to the role ARN (Amazon Web Services Resource+-- Name). The role needs S3 read permissions to your file in S3 and needs+-- to give STS (Security Token Service) assume role permissions to Amazon+-- Kendra.+createQuerySuggestionsBlockList_roleArn :: Lens.Lens' CreateQuerySuggestionsBlockList Prelude.Text+createQuerySuggestionsBlockList_roleArn = Lens.lens (\CreateQuerySuggestionsBlockList' {roleArn} -> roleArn) (\s@CreateQuerySuggestionsBlockList' {} a -> s {roleArn = a} :: CreateQuerySuggestionsBlockList)++instance+  Core.AWSRequest+    CreateQuerySuggestionsBlockList+  where+  type+    AWSResponse CreateQuerySuggestionsBlockList =+      CreateQuerySuggestionsBlockListResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateQuerySuggestionsBlockListResponse'+            Prelude.<$> (x Data..?> "Id")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    CreateQuerySuggestionsBlockList+  where+  hashWithSalt+    _salt+    CreateQuerySuggestionsBlockList' {..} =+      _salt+        `Prelude.hashWithSalt` clientToken+        `Prelude.hashWithSalt` description+        `Prelude.hashWithSalt` tags+        `Prelude.hashWithSalt` indexId+        `Prelude.hashWithSalt` name+        `Prelude.hashWithSalt` sourceS3Path+        `Prelude.hashWithSalt` roleArn++instance+  Prelude.NFData+    CreateQuerySuggestionsBlockList+  where+  rnf CreateQuerySuggestionsBlockList' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf sourceS3Path+      `Prelude.seq` Prelude.rnf roleArn++instance+  Data.ToHeaders+    CreateQuerySuggestionsBlockList+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.CreateQuerySuggestionsBlockList" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateQuerySuggestionsBlockList where+  toJSON CreateQuerySuggestionsBlockList' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientToken" Data..=) Prelude.<$> clientToken,+            ("Description" Data..=) Prelude.<$> description,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("SourceS3Path" Data..= sourceS3Path),+            Prelude.Just ("RoleArn" Data..= roleArn)+          ]+      )++instance Data.ToPath CreateQuerySuggestionsBlockList where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateQuerySuggestionsBlockList where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateQuerySuggestionsBlockListResponse' smart constructor.+data CreateQuerySuggestionsBlockListResponse = CreateQuerySuggestionsBlockListResponse'+  { -- | The identifier of the created block list.+    id :: 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 'CreateQuerySuggestionsBlockListResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'createQuerySuggestionsBlockListResponse_id' - The identifier of the created block list.+--+-- 'httpStatus', 'createQuerySuggestionsBlockListResponse_httpStatus' - The response's http status code.+newCreateQuerySuggestionsBlockListResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateQuerySuggestionsBlockListResponse+newCreateQuerySuggestionsBlockListResponse+  pHttpStatus_ =+    CreateQuerySuggestionsBlockListResponse'+      { id =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The identifier of the created block list.+createQuerySuggestionsBlockListResponse_id :: Lens.Lens' CreateQuerySuggestionsBlockListResponse (Prelude.Maybe Prelude.Text)+createQuerySuggestionsBlockListResponse_id = Lens.lens (\CreateQuerySuggestionsBlockListResponse' {id} -> id) (\s@CreateQuerySuggestionsBlockListResponse' {} a -> s {id = a} :: CreateQuerySuggestionsBlockListResponse)++-- | The response's http status code.+createQuerySuggestionsBlockListResponse_httpStatus :: Lens.Lens' CreateQuerySuggestionsBlockListResponse Prelude.Int+createQuerySuggestionsBlockListResponse_httpStatus = Lens.lens (\CreateQuerySuggestionsBlockListResponse' {httpStatus} -> httpStatus) (\s@CreateQuerySuggestionsBlockListResponse' {} a -> s {httpStatus = a} :: CreateQuerySuggestionsBlockListResponse)++instance+  Prelude.NFData+    CreateQuerySuggestionsBlockListResponse+  where+  rnf CreateQuerySuggestionsBlockListResponse' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/CreateThesaurus.hs view
@@ -0,0 +1,278 @@+{-# 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.Kendra.CreateThesaurus+-- 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 thesaurus for an index. The thesaurus contains a list of+-- synonyms in Solr format.+--+-- For an example of adding a thesaurus file to an index, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/index-synonyms-adding-thesaurus-file.html Adding custom synonyms to an index>.+module Amazonka.Kendra.CreateThesaurus+  ( -- * Creating a Request+    CreateThesaurus (..),+    newCreateThesaurus,++    -- * Request Lenses+    createThesaurus_clientToken,+    createThesaurus_description,+    createThesaurus_tags,+    createThesaurus_indexId,+    createThesaurus_name,+    createThesaurus_roleArn,+    createThesaurus_sourceS3Path,++    -- * Destructuring the Response+    CreateThesaurusResponse (..),+    newCreateThesaurusResponse,++    -- * Response Lenses+    createThesaurusResponse_id,+    createThesaurusResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateThesaurus' smart constructor.+data CreateThesaurus = CreateThesaurus'+  { -- | A token that you provide to identify the request to create a thesaurus.+    -- Multiple calls to the @CreateThesaurus@ API with the same client token+    -- will create only one thesaurus.+    clientToken :: Prelude.Maybe Prelude.Text,+    -- | A description for the thesaurus.+    description :: Prelude.Maybe Prelude.Text,+    -- | A list of key-value pairs that identify the thesaurus. You can use the+    -- tags to identify and organize your resources and to control access to+    -- resources.+    tags :: Prelude.Maybe [Tag],+    -- | The identifier of the index for the thesaurus.+    indexId :: Prelude.Text,+    -- | A name for the thesaurus.+    name :: Prelude.Text,+    -- | An IAM role that gives Amazon Kendra permissions to access thesaurus+    -- file specified in @SourceS3Path@.+    roleArn :: Prelude.Text,+    -- | The path to the thesaurus file in S3.+    sourceS3Path :: S3Path+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateThesaurus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clientToken', 'createThesaurus_clientToken' - A token that you provide to identify the request to create a thesaurus.+-- Multiple calls to the @CreateThesaurus@ API with the same client token+-- will create only one thesaurus.+--+-- 'description', 'createThesaurus_description' - A description for the thesaurus.+--+-- 'tags', 'createThesaurus_tags' - A list of key-value pairs that identify the thesaurus. You can use the+-- tags to identify and organize your resources and to control access to+-- resources.+--+-- 'indexId', 'createThesaurus_indexId' - The identifier of the index for the thesaurus.+--+-- 'name', 'createThesaurus_name' - A name for the thesaurus.+--+-- 'roleArn', 'createThesaurus_roleArn' - An IAM role that gives Amazon Kendra permissions to access thesaurus+-- file specified in @SourceS3Path@.+--+-- 'sourceS3Path', 'createThesaurus_sourceS3Path' - The path to the thesaurus file in S3.+newCreateThesaurus ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  -- | 'roleArn'+  Prelude.Text ->+  -- | 'sourceS3Path'+  S3Path ->+  CreateThesaurus+newCreateThesaurus+  pIndexId_+  pName_+  pRoleArn_+  pSourceS3Path_ =+    CreateThesaurus'+      { clientToken = Prelude.Nothing,+        description = Prelude.Nothing,+        tags = Prelude.Nothing,+        indexId = pIndexId_,+        name = pName_,+        roleArn = pRoleArn_,+        sourceS3Path = pSourceS3Path_+      }++-- | A token that you provide to identify the request to create a thesaurus.+-- Multiple calls to the @CreateThesaurus@ API with the same client token+-- will create only one thesaurus.+createThesaurus_clientToken :: Lens.Lens' CreateThesaurus (Prelude.Maybe Prelude.Text)+createThesaurus_clientToken = Lens.lens (\CreateThesaurus' {clientToken} -> clientToken) (\s@CreateThesaurus' {} a -> s {clientToken = a} :: CreateThesaurus)++-- | A description for the thesaurus.+createThesaurus_description :: Lens.Lens' CreateThesaurus (Prelude.Maybe Prelude.Text)+createThesaurus_description = Lens.lens (\CreateThesaurus' {description} -> description) (\s@CreateThesaurus' {} a -> s {description = a} :: CreateThesaurus)++-- | A list of key-value pairs that identify the thesaurus. You can use the+-- tags to identify and organize your resources and to control access to+-- resources.+createThesaurus_tags :: Lens.Lens' CreateThesaurus (Prelude.Maybe [Tag])+createThesaurus_tags = Lens.lens (\CreateThesaurus' {tags} -> tags) (\s@CreateThesaurus' {} a -> s {tags = a} :: CreateThesaurus) Prelude.. Lens.mapping Lens.coerced++-- | The identifier of the index for the thesaurus.+createThesaurus_indexId :: Lens.Lens' CreateThesaurus Prelude.Text+createThesaurus_indexId = Lens.lens (\CreateThesaurus' {indexId} -> indexId) (\s@CreateThesaurus' {} a -> s {indexId = a} :: CreateThesaurus)++-- | A name for the thesaurus.+createThesaurus_name :: Lens.Lens' CreateThesaurus Prelude.Text+createThesaurus_name = Lens.lens (\CreateThesaurus' {name} -> name) (\s@CreateThesaurus' {} a -> s {name = a} :: CreateThesaurus)++-- | An IAM role that gives Amazon Kendra permissions to access thesaurus+-- file specified in @SourceS3Path@.+createThesaurus_roleArn :: Lens.Lens' CreateThesaurus Prelude.Text+createThesaurus_roleArn = Lens.lens (\CreateThesaurus' {roleArn} -> roleArn) (\s@CreateThesaurus' {} a -> s {roleArn = a} :: CreateThesaurus)++-- | The path to the thesaurus file in S3.+createThesaurus_sourceS3Path :: Lens.Lens' CreateThesaurus S3Path+createThesaurus_sourceS3Path = Lens.lens (\CreateThesaurus' {sourceS3Path} -> sourceS3Path) (\s@CreateThesaurus' {} a -> s {sourceS3Path = a} :: CreateThesaurus)++instance Core.AWSRequest CreateThesaurus where+  type+    AWSResponse CreateThesaurus =+      CreateThesaurusResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateThesaurusResponse'+            Prelude.<$> (x Data..?> "Id")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable CreateThesaurus where+  hashWithSalt _salt CreateThesaurus' {..} =+    _salt+      `Prelude.hashWithSalt` clientToken+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` indexId+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` sourceS3Path++instance Prelude.NFData CreateThesaurus where+  rnf CreateThesaurus' {..} =+    Prelude.rnf clientToken+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf sourceS3Path++instance Data.ToHeaders CreateThesaurus where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.CreateThesaurus" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateThesaurus where+  toJSON CreateThesaurus' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClientToken" Data..=) Prelude.<$> clientToken,+            ("Description" Data..=) Prelude.<$> description,+            ("Tags" Data..=) Prelude.<$> tags,+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("RoleArn" Data..= roleArn),+            Prelude.Just ("SourceS3Path" Data..= sourceS3Path)+          ]+      )++instance Data.ToPath CreateThesaurus where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateThesaurus where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateThesaurusResponse' smart constructor.+data CreateThesaurusResponse = CreateThesaurusResponse'+  { -- | The identifier of the thesaurus.+    id :: 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 'CreateThesaurusResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'createThesaurusResponse_id' - The identifier of the thesaurus.+--+-- 'httpStatus', 'createThesaurusResponse_httpStatus' - The response's http status code.+newCreateThesaurusResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateThesaurusResponse+newCreateThesaurusResponse pHttpStatus_ =+  CreateThesaurusResponse'+    { id = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier of the thesaurus.+createThesaurusResponse_id :: Lens.Lens' CreateThesaurusResponse (Prelude.Maybe Prelude.Text)+createThesaurusResponse_id = Lens.lens (\CreateThesaurusResponse' {id} -> id) (\s@CreateThesaurusResponse' {} a -> s {id = a} :: CreateThesaurusResponse)++-- | The response's http status code.+createThesaurusResponse_httpStatus :: Lens.Lens' CreateThesaurusResponse Prelude.Int+createThesaurusResponse_httpStatus = Lens.lens (\CreateThesaurusResponse' {httpStatus} -> httpStatus) (\s@CreateThesaurusResponse' {} a -> s {httpStatus = a} :: CreateThesaurusResponse)++instance Prelude.NFData CreateThesaurusResponse where+  rnf CreateThesaurusResponse' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/DeleteAccessControlConfiguration.hs view
@@ -0,0 +1,201 @@+{-# 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.Kendra.DeleteAccessControlConfiguration+-- 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 an access control configuration that you created for your+-- documents in an index. This includes user and group access information+-- for your documents. This is useful for user context filtering, where+-- search results are filtered based on the user or their group access to+-- documents.+module Amazonka.Kendra.DeleteAccessControlConfiguration+  ( -- * Creating a Request+    DeleteAccessControlConfiguration (..),+    newDeleteAccessControlConfiguration,++    -- * Request Lenses+    deleteAccessControlConfiguration_indexId,+    deleteAccessControlConfiguration_id,++    -- * Destructuring the Response+    DeleteAccessControlConfigurationResponse (..),+    newDeleteAccessControlConfigurationResponse,++    -- * Response Lenses+    deleteAccessControlConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteAccessControlConfiguration' smart constructor.+data DeleteAccessControlConfiguration = DeleteAccessControlConfiguration'+  { -- | The identifier of the index for an access control configuration.+    indexId :: Prelude.Text,+    -- | The identifier of the access control configuration you want to delete.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAccessControlConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'indexId', 'deleteAccessControlConfiguration_indexId' - The identifier of the index for an access control configuration.+--+-- 'id', 'deleteAccessControlConfiguration_id' - The identifier of the access control configuration you want to delete.+newDeleteAccessControlConfiguration ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  DeleteAccessControlConfiguration+newDeleteAccessControlConfiguration pIndexId_ pId_ =+  DeleteAccessControlConfiguration'+    { indexId =+        pIndexId_,+      id = pId_+    }++-- | The identifier of the index for an access control configuration.+deleteAccessControlConfiguration_indexId :: Lens.Lens' DeleteAccessControlConfiguration Prelude.Text+deleteAccessControlConfiguration_indexId = Lens.lens (\DeleteAccessControlConfiguration' {indexId} -> indexId) (\s@DeleteAccessControlConfiguration' {} a -> s {indexId = a} :: DeleteAccessControlConfiguration)++-- | The identifier of the access control configuration you want to delete.+deleteAccessControlConfiguration_id :: Lens.Lens' DeleteAccessControlConfiguration Prelude.Text+deleteAccessControlConfiguration_id = Lens.lens (\DeleteAccessControlConfiguration' {id} -> id) (\s@DeleteAccessControlConfiguration' {} a -> s {id = a} :: DeleteAccessControlConfiguration)++instance+  Core.AWSRequest+    DeleteAccessControlConfiguration+  where+  type+    AWSResponse DeleteAccessControlConfiguration =+      DeleteAccessControlConfigurationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteAccessControlConfigurationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DeleteAccessControlConfiguration+  where+  hashWithSalt+    _salt+    DeleteAccessControlConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` indexId+        `Prelude.hashWithSalt` id++instance+  Prelude.NFData+    DeleteAccessControlConfiguration+  where+  rnf DeleteAccessControlConfiguration' {..} =+    Prelude.rnf indexId `Prelude.seq` Prelude.rnf id++instance+  Data.ToHeaders+    DeleteAccessControlConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DeleteAccessControlConfiguration" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteAccessControlConfiguration where+  toJSON DeleteAccessControlConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("Id" Data..= id)+          ]+      )++instance Data.ToPath DeleteAccessControlConfiguration where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    DeleteAccessControlConfiguration+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteAccessControlConfigurationResponse' smart constructor.+data DeleteAccessControlConfigurationResponse = DeleteAccessControlConfigurationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAccessControlConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteAccessControlConfigurationResponse_httpStatus' - The response's http status code.+newDeleteAccessControlConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteAccessControlConfigurationResponse+newDeleteAccessControlConfigurationResponse+  pHttpStatus_ =+    DeleteAccessControlConfigurationResponse'+      { httpStatus =+          pHttpStatus_+      }++-- | The response's http status code.+deleteAccessControlConfigurationResponse_httpStatus :: Lens.Lens' DeleteAccessControlConfigurationResponse Prelude.Int+deleteAccessControlConfigurationResponse_httpStatus = Lens.lens (\DeleteAccessControlConfigurationResponse' {httpStatus} -> httpStatus) (\s@DeleteAccessControlConfigurationResponse' {} a -> s {httpStatus = a} :: DeleteAccessControlConfigurationResponse)++instance+  Prelude.NFData+    DeleteAccessControlConfigurationResponse+  where+  rnf DeleteAccessControlConfigurationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/DeleteDataSource.hs view
@@ -0,0 +1,153 @@+{-# 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.Kendra.DeleteDataSource+-- 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 an Amazon Kendra data source connector. An exception is not+-- thrown if the data source is already being deleted. While the data+-- source is being deleted, the @Status@ field returned by a call to the+-- @DescribeDataSource@ API is set to @DELETING@. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/delete-data-source.html Deleting Data Sources>.+module Amazonka.Kendra.DeleteDataSource+  ( -- * Creating a Request+    DeleteDataSource (..),+    newDeleteDataSource,++    -- * Request Lenses+    deleteDataSource_id,+    deleteDataSource_indexId,++    -- * Destructuring the Response+    DeleteDataSourceResponse (..),+    newDeleteDataSourceResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteDataSource' smart constructor.+data DeleteDataSource = DeleteDataSource'+  { -- | The identifier of the data source connector you want to delete.+    id :: Prelude.Text,+    -- | The identifier of the index used with the data source connector.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDataSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'deleteDataSource_id' - The identifier of the data source connector you want to delete.+--+-- 'indexId', 'deleteDataSource_indexId' - The identifier of the index used with the data source connector.+newDeleteDataSource ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  DeleteDataSource+newDeleteDataSource pId_ pIndexId_ =+  DeleteDataSource' {id = pId_, indexId = pIndexId_}++-- | The identifier of the data source connector you want to delete.+deleteDataSource_id :: Lens.Lens' DeleteDataSource Prelude.Text+deleteDataSource_id = Lens.lens (\DeleteDataSource' {id} -> id) (\s@DeleteDataSource' {} a -> s {id = a} :: DeleteDataSource)++-- | The identifier of the index used with the data source connector.+deleteDataSource_indexId :: Lens.Lens' DeleteDataSource Prelude.Text+deleteDataSource_indexId = Lens.lens (\DeleteDataSource' {indexId} -> indexId) (\s@DeleteDataSource' {} a -> s {indexId = a} :: DeleteDataSource)++instance Core.AWSRequest DeleteDataSource where+  type+    AWSResponse DeleteDataSource =+      DeleteDataSourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull DeleteDataSourceResponse'++instance Prelude.Hashable DeleteDataSource where+  hashWithSalt _salt DeleteDataSource' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData DeleteDataSource where+  rnf DeleteDataSource' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders DeleteDataSource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DeleteDataSource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteDataSource where+  toJSON DeleteDataSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath DeleteDataSource where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteDataSource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteDataSourceResponse' smart constructor.+data DeleteDataSourceResponse = DeleteDataSourceResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteDataSourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteDataSourceResponse ::+  DeleteDataSourceResponse+newDeleteDataSourceResponse =+  DeleteDataSourceResponse'++instance Prelude.NFData DeleteDataSourceResponse where+  rnf _ = ()
+ gen/Amazonka/Kendra/DeleteExperience.hs view
@@ -0,0 +1,174 @@+{-# 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.Kendra.DeleteExperience+-- 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 your Amazon Kendra experience such as a search application. For+-- more information on creating a search application experience, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html Building a search experience with no code>.+module Amazonka.Kendra.DeleteExperience+  ( -- * Creating a Request+    DeleteExperience (..),+    newDeleteExperience,++    -- * Request Lenses+    deleteExperience_id,+    deleteExperience_indexId,++    -- * Destructuring the Response+    DeleteExperienceResponse (..),+    newDeleteExperienceResponse,++    -- * Response Lenses+    deleteExperienceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteExperience' smart constructor.+data DeleteExperience = DeleteExperience'+  { -- | The identifier of your Amazon Kendra experience you want to delete.+    id :: Prelude.Text,+    -- | The identifier of the index for your Amazon Kendra experience.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteExperience' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'deleteExperience_id' - The identifier of your Amazon Kendra experience you want to delete.+--+-- 'indexId', 'deleteExperience_indexId' - The identifier of the index for your Amazon Kendra experience.+newDeleteExperience ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  DeleteExperience+newDeleteExperience pId_ pIndexId_ =+  DeleteExperience' {id = pId_, indexId = pIndexId_}++-- | The identifier of your Amazon Kendra experience you want to delete.+deleteExperience_id :: Lens.Lens' DeleteExperience Prelude.Text+deleteExperience_id = Lens.lens (\DeleteExperience' {id} -> id) (\s@DeleteExperience' {} a -> s {id = a} :: DeleteExperience)++-- | The identifier of the index for your Amazon Kendra experience.+deleteExperience_indexId :: Lens.Lens' DeleteExperience Prelude.Text+deleteExperience_indexId = Lens.lens (\DeleteExperience' {indexId} -> indexId) (\s@DeleteExperience' {} a -> s {indexId = a} :: DeleteExperience)++instance Core.AWSRequest DeleteExperience where+  type+    AWSResponse DeleteExperience =+      DeleteExperienceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteExperienceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteExperience where+  hashWithSalt _salt DeleteExperience' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData DeleteExperience where+  rnf DeleteExperience' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders DeleteExperience where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DeleteExperience" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteExperience where+  toJSON DeleteExperience' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath DeleteExperience where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteExperience where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteExperienceResponse' smart constructor.+data DeleteExperienceResponse = DeleteExperienceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteExperienceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'deleteExperienceResponse_httpStatus' - The response's http status code.+newDeleteExperienceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteExperienceResponse+newDeleteExperienceResponse pHttpStatus_ =+  DeleteExperienceResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteExperienceResponse_httpStatus :: Lens.Lens' DeleteExperienceResponse Prelude.Int+deleteExperienceResponse_httpStatus = Lens.lens (\DeleteExperienceResponse' {httpStatus} -> httpStatus) (\s@DeleteExperienceResponse' {} a -> s {httpStatus = a} :: DeleteExperienceResponse)++instance Prelude.NFData DeleteExperienceResponse where+  rnf DeleteExperienceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/DeleteFaq.hs view
@@ -0,0 +1,145 @@+{-# 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.Kendra.DeleteFaq+-- 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 FAQ from an index.+module Amazonka.Kendra.DeleteFaq+  ( -- * Creating a Request+    DeleteFaq (..),+    newDeleteFaq,++    -- * Request Lenses+    deleteFaq_id,+    deleteFaq_indexId,++    -- * Destructuring the Response+    DeleteFaqResponse (..),+    newDeleteFaqResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteFaq' smart constructor.+data DeleteFaq = DeleteFaq'+  { -- | The identifier of the FAQ you want to remove.+    id :: Prelude.Text,+    -- | The identifier of the index for the FAQ.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFaq' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'deleteFaq_id' - The identifier of the FAQ you want to remove.+--+-- 'indexId', 'deleteFaq_indexId' - The identifier of the index for the FAQ.+newDeleteFaq ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  DeleteFaq+newDeleteFaq pId_ pIndexId_ =+  DeleteFaq' {id = pId_, indexId = pIndexId_}++-- | The identifier of the FAQ you want to remove.+deleteFaq_id :: Lens.Lens' DeleteFaq Prelude.Text+deleteFaq_id = Lens.lens (\DeleteFaq' {id} -> id) (\s@DeleteFaq' {} a -> s {id = a} :: DeleteFaq)++-- | The identifier of the index for the FAQ.+deleteFaq_indexId :: Lens.Lens' DeleteFaq Prelude.Text+deleteFaq_indexId = Lens.lens (\DeleteFaq' {indexId} -> indexId) (\s@DeleteFaq' {} a -> s {indexId = a} :: DeleteFaq)++instance Core.AWSRequest DeleteFaq where+  type AWSResponse DeleteFaq = DeleteFaqResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response = Response.receiveNull DeleteFaqResponse'++instance Prelude.Hashable DeleteFaq where+  hashWithSalt _salt DeleteFaq' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData DeleteFaq where+  rnf DeleteFaq' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders DeleteFaq where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DeleteFaq" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteFaq where+  toJSON DeleteFaq' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath DeleteFaq where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteFaq where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteFaqResponse' smart constructor.+data DeleteFaqResponse = DeleteFaqResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteFaqResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteFaqResponse ::+  DeleteFaqResponse+newDeleteFaqResponse = DeleteFaqResponse'++instance Prelude.NFData DeleteFaqResponse where+  rnf _ = ()
+ gen/Amazonka/Kendra/DeleteIndex.hs view
@@ -0,0 +1,129 @@+{-# 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.Kendra.DeleteIndex+-- 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 an existing Amazon Kendra index. An exception is not thrown if+-- the index is already being deleted. While the index is being deleted,+-- the @Status@ field returned by a call to the @DescribeIndex@ API is set+-- to @DELETING@.+module Amazonka.Kendra.DeleteIndex+  ( -- * Creating a Request+    DeleteIndex (..),+    newDeleteIndex,++    -- * Request Lenses+    deleteIndex_id,++    -- * Destructuring the Response+    DeleteIndexResponse (..),+    newDeleteIndexResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteIndex' smart constructor.+data DeleteIndex = DeleteIndex'+  { -- | The identifier of the index you want to delete.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteIndex' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'deleteIndex_id' - The identifier of the index you want to delete.+newDeleteIndex ::+  -- | 'id'+  Prelude.Text ->+  DeleteIndex+newDeleteIndex pId_ = DeleteIndex' {id = pId_}++-- | The identifier of the index you want to delete.+deleteIndex_id :: Lens.Lens' DeleteIndex Prelude.Text+deleteIndex_id = Lens.lens (\DeleteIndex' {id} -> id) (\s@DeleteIndex' {} a -> s {id = a} :: DeleteIndex)++instance Core.AWSRequest DeleteIndex where+  type AWSResponse DeleteIndex = DeleteIndexResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response = Response.receiveNull DeleteIndexResponse'++instance Prelude.Hashable DeleteIndex where+  hashWithSalt _salt DeleteIndex' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData DeleteIndex where+  rnf DeleteIndex' {..} = Prelude.rnf id++instance Data.ToHeaders DeleteIndex where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DeleteIndex" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteIndex where+  toJSON DeleteIndex' {..} =+    Data.object+      (Prelude.catMaybes [Prelude.Just ("Id" Data..= id)])++instance Data.ToPath DeleteIndex where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteIndex where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteIndexResponse' smart constructor.+data DeleteIndexResponse = DeleteIndexResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteIndexResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteIndexResponse ::+  DeleteIndexResponse+newDeleteIndexResponse = DeleteIndexResponse'++instance Prelude.NFData DeleteIndexResponse where+  rnf _ = ()
+ gen/Amazonka/Kendra/DeletePrincipalMapping.hs view
@@ -0,0 +1,272 @@+{-# 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.Kendra.DeletePrincipalMapping+-- 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 group so that all users and sub groups that belong to the+-- group can no longer access documents only available to that group.+--+-- For example, after deleting the group \"Summer Interns\", all interns+-- who belonged to that group no longer see intern-only documents in their+-- search results.+--+-- If you want to delete or replace users or sub groups of a group, you+-- need to use the @PutPrincipalMapping@ operation. For example, if a user+-- in the group \"Engineering\" leaves the engineering team and another+-- user takes their place, you provide an updated list of users or sub+-- groups that belong to the \"Engineering\" group when calling+-- @PutPrincipalMapping@. You can update your internal list of users or sub+-- groups and input this list when calling @PutPrincipalMapping@.+--+-- @DeletePrincipalMapping@ is currently not supported in the Amazon Web+-- Services GovCloud (US-West) region.+module Amazonka.Kendra.DeletePrincipalMapping+  ( -- * Creating a Request+    DeletePrincipalMapping (..),+    newDeletePrincipalMapping,++    -- * Request Lenses+    deletePrincipalMapping_dataSourceId,+    deletePrincipalMapping_orderingId,+    deletePrincipalMapping_indexId,+    deletePrincipalMapping_groupId,++    -- * Destructuring the Response+    DeletePrincipalMappingResponse (..),+    newDeletePrincipalMappingResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeletePrincipalMapping' smart constructor.+data DeletePrincipalMapping = DeletePrincipalMapping'+  { -- | The identifier of the data source you want to delete a group from.+    --+    -- A group can be tied to multiple data sources. You can delete a group+    -- from accessing documents in a certain data source. For example, the+    -- groups \"Research\", \"Engineering\", and \"Sales and Marketing\" are+    -- all tied to the company\'s documents stored in the data sources+    -- Confluence and Salesforce. You want to delete \"Research\" and+    -- \"Engineering\" groups from Salesforce, so that these groups cannot+    -- access customer-related documents stored in Salesforce. Only \"Sales and+    -- Marketing\" should access documents in the Salesforce data source.+    dataSourceId :: Prelude.Maybe Prelude.Text,+    -- | The timestamp identifier you specify to ensure Amazon Kendra does not+    -- override the latest @DELETE@ action with previous actions. The highest+    -- number ID, which is the ordering ID, is the latest action you want to+    -- process and apply on top of other actions with lower number IDs. This+    -- prevents previous actions with lower number IDs from possibly overriding+    -- the latest action.+    --+    -- The ordering ID can be the UNIX time of the last update you made to a+    -- group members list. You would then provide this list when calling+    -- @PutPrincipalMapping@. This ensures your @DELETE@ action for that+    -- updated group with the latest members list doesn\'t get overwritten by+    -- earlier @DELETE@ actions for the same group which are yet to be+    -- processed.+    --+    -- The default ordering ID is the current UNIX time in milliseconds that+    -- the action was received by Amazon Kendra.+    orderingId :: Prelude.Maybe Prelude.Natural,+    -- | The identifier of the index you want to delete a group from.+    indexId :: Prelude.Text,+    -- | The identifier of the group you want to delete.+    groupId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePrincipalMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSourceId', 'deletePrincipalMapping_dataSourceId' - The identifier of the data source you want to delete a group from.+--+-- A group can be tied to multiple data sources. You can delete a group+-- from accessing documents in a certain data source. For example, the+-- groups \"Research\", \"Engineering\", and \"Sales and Marketing\" are+-- all tied to the company\'s documents stored in the data sources+-- Confluence and Salesforce. You want to delete \"Research\" and+-- \"Engineering\" groups from Salesforce, so that these groups cannot+-- access customer-related documents stored in Salesforce. Only \"Sales and+-- Marketing\" should access documents in the Salesforce data source.+--+-- 'orderingId', 'deletePrincipalMapping_orderingId' - The timestamp identifier you specify to ensure Amazon Kendra does not+-- override the latest @DELETE@ action with previous actions. The highest+-- number ID, which is the ordering ID, is the latest action you want to+-- process and apply on top of other actions with lower number IDs. This+-- prevents previous actions with lower number IDs from possibly overriding+-- the latest action.+--+-- The ordering ID can be the UNIX time of the last update you made to a+-- group members list. You would then provide this list when calling+-- @PutPrincipalMapping@. This ensures your @DELETE@ action for that+-- updated group with the latest members list doesn\'t get overwritten by+-- earlier @DELETE@ actions for the same group which are yet to be+-- processed.+--+-- The default ordering ID is the current UNIX time in milliseconds that+-- the action was received by Amazon Kendra.+--+-- 'indexId', 'deletePrincipalMapping_indexId' - The identifier of the index you want to delete a group from.+--+-- 'groupId', 'deletePrincipalMapping_groupId' - The identifier of the group you want to delete.+newDeletePrincipalMapping ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'groupId'+  Prelude.Text ->+  DeletePrincipalMapping+newDeletePrincipalMapping pIndexId_ pGroupId_ =+  DeletePrincipalMapping'+    { dataSourceId =+        Prelude.Nothing,+      orderingId = Prelude.Nothing,+      indexId = pIndexId_,+      groupId = pGroupId_+    }++-- | The identifier of the data source you want to delete a group from.+--+-- A group can be tied to multiple data sources. You can delete a group+-- from accessing documents in a certain data source. For example, the+-- groups \"Research\", \"Engineering\", and \"Sales and Marketing\" are+-- all tied to the company\'s documents stored in the data sources+-- Confluence and Salesforce. You want to delete \"Research\" and+-- \"Engineering\" groups from Salesforce, so that these groups cannot+-- access customer-related documents stored in Salesforce. Only \"Sales and+-- Marketing\" should access documents in the Salesforce data source.+deletePrincipalMapping_dataSourceId :: Lens.Lens' DeletePrincipalMapping (Prelude.Maybe Prelude.Text)+deletePrincipalMapping_dataSourceId = Lens.lens (\DeletePrincipalMapping' {dataSourceId} -> dataSourceId) (\s@DeletePrincipalMapping' {} a -> s {dataSourceId = a} :: DeletePrincipalMapping)++-- | The timestamp identifier you specify to ensure Amazon Kendra does not+-- override the latest @DELETE@ action with previous actions. The highest+-- number ID, which is the ordering ID, is the latest action you want to+-- process and apply on top of other actions with lower number IDs. This+-- prevents previous actions with lower number IDs from possibly overriding+-- the latest action.+--+-- The ordering ID can be the UNIX time of the last update you made to a+-- group members list. You would then provide this list when calling+-- @PutPrincipalMapping@. This ensures your @DELETE@ action for that+-- updated group with the latest members list doesn\'t get overwritten by+-- earlier @DELETE@ actions for the same group which are yet to be+-- processed.+--+-- The default ordering ID is the current UNIX time in milliseconds that+-- the action was received by Amazon Kendra.+deletePrincipalMapping_orderingId :: Lens.Lens' DeletePrincipalMapping (Prelude.Maybe Prelude.Natural)+deletePrincipalMapping_orderingId = Lens.lens (\DeletePrincipalMapping' {orderingId} -> orderingId) (\s@DeletePrincipalMapping' {} a -> s {orderingId = a} :: DeletePrincipalMapping)++-- | The identifier of the index you want to delete a group from.+deletePrincipalMapping_indexId :: Lens.Lens' DeletePrincipalMapping Prelude.Text+deletePrincipalMapping_indexId = Lens.lens (\DeletePrincipalMapping' {indexId} -> indexId) (\s@DeletePrincipalMapping' {} a -> s {indexId = a} :: DeletePrincipalMapping)++-- | The identifier of the group you want to delete.+deletePrincipalMapping_groupId :: Lens.Lens' DeletePrincipalMapping Prelude.Text+deletePrincipalMapping_groupId = Lens.lens (\DeletePrincipalMapping' {groupId} -> groupId) (\s@DeletePrincipalMapping' {} a -> s {groupId = a} :: DeletePrincipalMapping)++instance Core.AWSRequest DeletePrincipalMapping where+  type+    AWSResponse DeletePrincipalMapping =+      DeletePrincipalMappingResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull+      DeletePrincipalMappingResponse'++instance Prelude.Hashable DeletePrincipalMapping where+  hashWithSalt _salt DeletePrincipalMapping' {..} =+    _salt+      `Prelude.hashWithSalt` dataSourceId+      `Prelude.hashWithSalt` orderingId+      `Prelude.hashWithSalt` indexId+      `Prelude.hashWithSalt` groupId++instance Prelude.NFData DeletePrincipalMapping where+  rnf DeletePrincipalMapping' {..} =+    Prelude.rnf dataSourceId+      `Prelude.seq` Prelude.rnf orderingId+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf groupId++instance Data.ToHeaders DeletePrincipalMapping where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DeletePrincipalMapping" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeletePrincipalMapping where+  toJSON DeletePrincipalMapping' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataSourceId" Data..=) Prelude.<$> dataSourceId,+            ("OrderingId" Data..=) Prelude.<$> orderingId,+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("GroupId" Data..= groupId)+          ]+      )++instance Data.ToPath DeletePrincipalMapping where+  toPath = Prelude.const "/"++instance Data.ToQuery DeletePrincipalMapping where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeletePrincipalMappingResponse' smart constructor.+data DeletePrincipalMappingResponse = DeletePrincipalMappingResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeletePrincipalMappingResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeletePrincipalMappingResponse ::+  DeletePrincipalMappingResponse+newDeletePrincipalMappingResponse =+  DeletePrincipalMappingResponse'++instance+  Prelude.NFData+    DeletePrincipalMappingResponse+  where+  rnf _ = ()
+ gen/Amazonka/Kendra/DeleteQuerySuggestionsBlockList.hs view
@@ -0,0 +1,178 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.DeleteQuerySuggestionsBlockList+-- 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 block list used for query suggestions for an index.+--+-- A deleted block list might not take effect right away. Amazon Kendra+-- needs to refresh the entire suggestions list to add back the queries+-- that were previously blocked.+--+-- @DeleteQuerySuggestionsBlockList@ is currently not supported in the+-- Amazon Web Services GovCloud (US-West) region.+module Amazonka.Kendra.DeleteQuerySuggestionsBlockList+  ( -- * Creating a Request+    DeleteQuerySuggestionsBlockList (..),+    newDeleteQuerySuggestionsBlockList,++    -- * Request Lenses+    deleteQuerySuggestionsBlockList_indexId,+    deleteQuerySuggestionsBlockList_id,++    -- * Destructuring the Response+    DeleteQuerySuggestionsBlockListResponse (..),+    newDeleteQuerySuggestionsBlockListResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteQuerySuggestionsBlockList' smart constructor.+data DeleteQuerySuggestionsBlockList = DeleteQuerySuggestionsBlockList'+  { -- | The identifier of the index for the block list.+    indexId :: Prelude.Text,+    -- | The identifier of the block list you want to delete.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteQuerySuggestionsBlockList' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'indexId', 'deleteQuerySuggestionsBlockList_indexId' - The identifier of the index for the block list.+--+-- 'id', 'deleteQuerySuggestionsBlockList_id' - The identifier of the block list you want to delete.+newDeleteQuerySuggestionsBlockList ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  DeleteQuerySuggestionsBlockList+newDeleteQuerySuggestionsBlockList pIndexId_ pId_ =+  DeleteQuerySuggestionsBlockList'+    { indexId =+        pIndexId_,+      id = pId_+    }++-- | The identifier of the index for the block list.+deleteQuerySuggestionsBlockList_indexId :: Lens.Lens' DeleteQuerySuggestionsBlockList Prelude.Text+deleteQuerySuggestionsBlockList_indexId = Lens.lens (\DeleteQuerySuggestionsBlockList' {indexId} -> indexId) (\s@DeleteQuerySuggestionsBlockList' {} a -> s {indexId = a} :: DeleteQuerySuggestionsBlockList)++-- | The identifier of the block list you want to delete.+deleteQuerySuggestionsBlockList_id :: Lens.Lens' DeleteQuerySuggestionsBlockList Prelude.Text+deleteQuerySuggestionsBlockList_id = Lens.lens (\DeleteQuerySuggestionsBlockList' {id} -> id) (\s@DeleteQuerySuggestionsBlockList' {} a -> s {id = a} :: DeleteQuerySuggestionsBlockList)++instance+  Core.AWSRequest+    DeleteQuerySuggestionsBlockList+  where+  type+    AWSResponse DeleteQuerySuggestionsBlockList =+      DeleteQuerySuggestionsBlockListResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull+      DeleteQuerySuggestionsBlockListResponse'++instance+  Prelude.Hashable+    DeleteQuerySuggestionsBlockList+  where+  hashWithSalt+    _salt+    DeleteQuerySuggestionsBlockList' {..} =+      _salt+        `Prelude.hashWithSalt` indexId+        `Prelude.hashWithSalt` id++instance+  Prelude.NFData+    DeleteQuerySuggestionsBlockList+  where+  rnf DeleteQuerySuggestionsBlockList' {..} =+    Prelude.rnf indexId `Prelude.seq` Prelude.rnf id++instance+  Data.ToHeaders+    DeleteQuerySuggestionsBlockList+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DeleteQuerySuggestionsBlockList" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteQuerySuggestionsBlockList where+  toJSON DeleteQuerySuggestionsBlockList' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("Id" Data..= id)+          ]+      )++instance Data.ToPath DeleteQuerySuggestionsBlockList where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteQuerySuggestionsBlockList where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteQuerySuggestionsBlockListResponse' smart constructor.+data DeleteQuerySuggestionsBlockListResponse = DeleteQuerySuggestionsBlockListResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteQuerySuggestionsBlockListResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteQuerySuggestionsBlockListResponse ::+  DeleteQuerySuggestionsBlockListResponse+newDeleteQuerySuggestionsBlockListResponse =+  DeleteQuerySuggestionsBlockListResponse'++instance+  Prelude.NFData+    DeleteQuerySuggestionsBlockListResponse+  where+  rnf _ = ()
+ gen/Amazonka/Kendra/DeleteThesaurus.hs view
@@ -0,0 +1,148 @@+{-# 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.Kendra.DeleteThesaurus+-- 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 an existing Amazon Kendra thesaurus.+module Amazonka.Kendra.DeleteThesaurus+  ( -- * Creating a Request+    DeleteThesaurus (..),+    newDeleteThesaurus,++    -- * Request Lenses+    deleteThesaurus_id,+    deleteThesaurus_indexId,++    -- * Destructuring the Response+    DeleteThesaurusResponse (..),+    newDeleteThesaurusResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteThesaurus' smart constructor.+data DeleteThesaurus = DeleteThesaurus'+  { -- | The identifier of the thesaurus you want to delete.+    id :: Prelude.Text,+    -- | The identifier of the index for the thesaurus.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteThesaurus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'deleteThesaurus_id' - The identifier of the thesaurus you want to delete.+--+-- 'indexId', 'deleteThesaurus_indexId' - The identifier of the index for the thesaurus.+newDeleteThesaurus ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  DeleteThesaurus+newDeleteThesaurus pId_ pIndexId_ =+  DeleteThesaurus' {id = pId_, indexId = pIndexId_}++-- | The identifier of the thesaurus you want to delete.+deleteThesaurus_id :: Lens.Lens' DeleteThesaurus Prelude.Text+deleteThesaurus_id = Lens.lens (\DeleteThesaurus' {id} -> id) (\s@DeleteThesaurus' {} a -> s {id = a} :: DeleteThesaurus)++-- | The identifier of the index for the thesaurus.+deleteThesaurus_indexId :: Lens.Lens' DeleteThesaurus Prelude.Text+deleteThesaurus_indexId = Lens.lens (\DeleteThesaurus' {indexId} -> indexId) (\s@DeleteThesaurus' {} a -> s {indexId = a} :: DeleteThesaurus)++instance Core.AWSRequest DeleteThesaurus where+  type+    AWSResponse DeleteThesaurus =+      DeleteThesaurusResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull DeleteThesaurusResponse'++instance Prelude.Hashable DeleteThesaurus where+  hashWithSalt _salt DeleteThesaurus' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData DeleteThesaurus where+  rnf DeleteThesaurus' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders DeleteThesaurus where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DeleteThesaurus" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteThesaurus where+  toJSON DeleteThesaurus' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath DeleteThesaurus where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteThesaurus where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteThesaurusResponse' smart constructor.+data DeleteThesaurusResponse = DeleteThesaurusResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteThesaurusResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newDeleteThesaurusResponse ::+  DeleteThesaurusResponse+newDeleteThesaurusResponse = DeleteThesaurusResponse'++instance Prelude.NFData DeleteThesaurusResponse where+  rnf _ = ()
+ gen/Amazonka/Kendra/DescribeAccessControlConfiguration.hs view
@@ -0,0 +1,298 @@+{-# 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.Kendra.DescribeAccessControlConfiguration+-- 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 an access control configuration that you created+-- for your documents in an index. This includes user and group access+-- information for your documents. This is useful for user context+-- filtering, where search results are filtered based on the user or their+-- group access to documents.+module Amazonka.Kendra.DescribeAccessControlConfiguration+  ( -- * Creating a Request+    DescribeAccessControlConfiguration (..),+    newDescribeAccessControlConfiguration,++    -- * Request Lenses+    describeAccessControlConfiguration_indexId,+    describeAccessControlConfiguration_id,++    -- * Destructuring the Response+    DescribeAccessControlConfigurationResponse (..),+    newDescribeAccessControlConfigurationResponse,++    -- * Response Lenses+    describeAccessControlConfigurationResponse_accessControlList,+    describeAccessControlConfigurationResponse_description,+    describeAccessControlConfigurationResponse_errorMessage,+    describeAccessControlConfigurationResponse_hierarchicalAccessControlList,+    describeAccessControlConfigurationResponse_httpStatus,+    describeAccessControlConfigurationResponse_name,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeAccessControlConfiguration' smart constructor.+data DescribeAccessControlConfiguration = DescribeAccessControlConfiguration'+  { -- | The identifier of the index for an access control configuration.+    indexId :: Prelude.Text,+    -- | The identifier of the access control configuration you want to get+    -- information on.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAccessControlConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'indexId', 'describeAccessControlConfiguration_indexId' - The identifier of the index for an access control configuration.+--+-- 'id', 'describeAccessControlConfiguration_id' - The identifier of the access control configuration you want to get+-- information on.+newDescribeAccessControlConfiguration ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  DescribeAccessControlConfiguration+newDescribeAccessControlConfiguration pIndexId_ pId_ =+  DescribeAccessControlConfiguration'+    { indexId =+        pIndexId_,+      id = pId_+    }++-- | The identifier of the index for an access control configuration.+describeAccessControlConfiguration_indexId :: Lens.Lens' DescribeAccessControlConfiguration Prelude.Text+describeAccessControlConfiguration_indexId = Lens.lens (\DescribeAccessControlConfiguration' {indexId} -> indexId) (\s@DescribeAccessControlConfiguration' {} a -> s {indexId = a} :: DescribeAccessControlConfiguration)++-- | The identifier of the access control configuration you want to get+-- information on.+describeAccessControlConfiguration_id :: Lens.Lens' DescribeAccessControlConfiguration Prelude.Text+describeAccessControlConfiguration_id = Lens.lens (\DescribeAccessControlConfiguration' {id} -> id) (\s@DescribeAccessControlConfiguration' {} a -> s {id = a} :: DescribeAccessControlConfiguration)++instance+  Core.AWSRequest+    DescribeAccessControlConfiguration+  where+  type+    AWSResponse DescribeAccessControlConfiguration =+      DescribeAccessControlConfigurationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeAccessControlConfigurationResponse'+            Prelude.<$> ( x+                            Data..?> "AccessControlList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "Description")+            Prelude.<*> (x Data..?> "ErrorMessage")+            Prelude.<*> (x Data..?> "HierarchicalAccessControlList")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Name")+      )++instance+  Prelude.Hashable+    DescribeAccessControlConfiguration+  where+  hashWithSalt+    _salt+    DescribeAccessControlConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` indexId+        `Prelude.hashWithSalt` id++instance+  Prelude.NFData+    DescribeAccessControlConfiguration+  where+  rnf DescribeAccessControlConfiguration' {..} =+    Prelude.rnf indexId `Prelude.seq` Prelude.rnf id++instance+  Data.ToHeaders+    DescribeAccessControlConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DescribeAccessControlConfiguration" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    DescribeAccessControlConfiguration+  where+  toJSON DescribeAccessControlConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("Id" Data..= id)+          ]+      )++instance+  Data.ToPath+    DescribeAccessControlConfiguration+  where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    DescribeAccessControlConfiguration+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeAccessControlConfigurationResponse' smart constructor.+data DescribeAccessControlConfigurationResponse = DescribeAccessControlConfigurationResponse'+  { -- | Information on principals (users and\/or groups) and which documents+    -- they should have access to. This is useful for user context filtering,+    -- where search results are filtered based on the user or their group+    -- access to documents.+    accessControlList :: Prelude.Maybe [Principal],+    -- | The description for the access control configuration.+    description :: Prelude.Maybe Prelude.Text,+    -- | The error message containing details if there are issues processing the+    -- access control configuration.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The list of+    -- <https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html principal>+    -- lists that define the hierarchy for which documents users should have+    -- access to.+    hierarchicalAccessControlList :: Prelude.Maybe (Prelude.NonEmpty HierarchicalPrincipal),+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The name for the access control configuration.+    name :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeAccessControlConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessControlList', 'describeAccessControlConfigurationResponse_accessControlList' - Information on principals (users and\/or groups) and which documents+-- they should have access to. This is useful for user context filtering,+-- where search results are filtered based on the user or their group+-- access to documents.+--+-- 'description', 'describeAccessControlConfigurationResponse_description' - The description for the access control configuration.+--+-- 'errorMessage', 'describeAccessControlConfigurationResponse_errorMessage' - The error message containing details if there are issues processing the+-- access control configuration.+--+-- 'hierarchicalAccessControlList', 'describeAccessControlConfigurationResponse_hierarchicalAccessControlList' - The list of+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html principal>+-- lists that define the hierarchy for which documents users should have+-- access to.+--+-- 'httpStatus', 'describeAccessControlConfigurationResponse_httpStatus' - The response's http status code.+--+-- 'name', 'describeAccessControlConfigurationResponse_name' - The name for the access control configuration.+newDescribeAccessControlConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'name'+  Prelude.Text ->+  DescribeAccessControlConfigurationResponse+newDescribeAccessControlConfigurationResponse+  pHttpStatus_+  pName_ =+    DescribeAccessControlConfigurationResponse'+      { accessControlList =+          Prelude.Nothing,+        description = Prelude.Nothing,+        errorMessage = Prelude.Nothing,+        hierarchicalAccessControlList =+          Prelude.Nothing,+        httpStatus = pHttpStatus_,+        name = pName_+      }++-- | Information on principals (users and\/or groups) and which documents+-- they should have access to. This is useful for user context filtering,+-- where search results are filtered based on the user or their group+-- access to documents.+describeAccessControlConfigurationResponse_accessControlList :: Lens.Lens' DescribeAccessControlConfigurationResponse (Prelude.Maybe [Principal])+describeAccessControlConfigurationResponse_accessControlList = Lens.lens (\DescribeAccessControlConfigurationResponse' {accessControlList} -> accessControlList) (\s@DescribeAccessControlConfigurationResponse' {} a -> s {accessControlList = a} :: DescribeAccessControlConfigurationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The description for the access control configuration.+describeAccessControlConfigurationResponse_description :: Lens.Lens' DescribeAccessControlConfigurationResponse (Prelude.Maybe Prelude.Text)+describeAccessControlConfigurationResponse_description = Lens.lens (\DescribeAccessControlConfigurationResponse' {description} -> description) (\s@DescribeAccessControlConfigurationResponse' {} a -> s {description = a} :: DescribeAccessControlConfigurationResponse)++-- | The error message containing details if there are issues processing the+-- access control configuration.+describeAccessControlConfigurationResponse_errorMessage :: Lens.Lens' DescribeAccessControlConfigurationResponse (Prelude.Maybe Prelude.Text)+describeAccessControlConfigurationResponse_errorMessage = Lens.lens (\DescribeAccessControlConfigurationResponse' {errorMessage} -> errorMessage) (\s@DescribeAccessControlConfigurationResponse' {} a -> s {errorMessage = a} :: DescribeAccessControlConfigurationResponse)++-- | The list of+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html principal>+-- lists that define the hierarchy for which documents users should have+-- access to.+describeAccessControlConfigurationResponse_hierarchicalAccessControlList :: Lens.Lens' DescribeAccessControlConfigurationResponse (Prelude.Maybe (Prelude.NonEmpty HierarchicalPrincipal))+describeAccessControlConfigurationResponse_hierarchicalAccessControlList = Lens.lens (\DescribeAccessControlConfigurationResponse' {hierarchicalAccessControlList} -> hierarchicalAccessControlList) (\s@DescribeAccessControlConfigurationResponse' {} a -> s {hierarchicalAccessControlList = a} :: DescribeAccessControlConfigurationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeAccessControlConfigurationResponse_httpStatus :: Lens.Lens' DescribeAccessControlConfigurationResponse Prelude.Int+describeAccessControlConfigurationResponse_httpStatus = Lens.lens (\DescribeAccessControlConfigurationResponse' {httpStatus} -> httpStatus) (\s@DescribeAccessControlConfigurationResponse' {} a -> s {httpStatus = a} :: DescribeAccessControlConfigurationResponse)++-- | The name for the access control configuration.+describeAccessControlConfigurationResponse_name :: Lens.Lens' DescribeAccessControlConfigurationResponse Prelude.Text+describeAccessControlConfigurationResponse_name = Lens.lens (\DescribeAccessControlConfigurationResponse' {name} -> name) (\s@DescribeAccessControlConfigurationResponse' {} a -> s {name = a} :: DescribeAccessControlConfigurationResponse)++instance+  Prelude.NFData+    DescribeAccessControlConfigurationResponse+  where+  rnf DescribeAccessControlConfigurationResponse' {..} =+    Prelude.rnf accessControlList+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf hierarchicalAccessControlList+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf name
+ gen/Amazonka/Kendra/DescribeDataSource.hs view
@@ -0,0 +1,407 @@+{-# 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.Kendra.DescribeDataSource+-- 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 an Amazon Kendra data source connector.+module Amazonka.Kendra.DescribeDataSource+  ( -- * Creating a Request+    DescribeDataSource (..),+    newDescribeDataSource,++    -- * Request Lenses+    describeDataSource_id,+    describeDataSource_indexId,++    -- * Destructuring the Response+    DescribeDataSourceResponse (..),+    newDescribeDataSourceResponse,++    -- * Response Lenses+    describeDataSourceResponse_configuration,+    describeDataSourceResponse_createdAt,+    describeDataSourceResponse_customDocumentEnrichmentConfiguration,+    describeDataSourceResponse_description,+    describeDataSourceResponse_errorMessage,+    describeDataSourceResponse_id,+    describeDataSourceResponse_indexId,+    describeDataSourceResponse_languageCode,+    describeDataSourceResponse_name,+    describeDataSourceResponse_roleArn,+    describeDataSourceResponse_schedule,+    describeDataSourceResponse_status,+    describeDataSourceResponse_type,+    describeDataSourceResponse_updatedAt,+    describeDataSourceResponse_vpcConfiguration,+    describeDataSourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeDataSource' smart constructor.+data DescribeDataSource = DescribeDataSource'+  { -- | The identifier of the data source connector.+    id :: Prelude.Text,+    -- | The identifier of the index used with the data source connector.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDataSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'describeDataSource_id' - The identifier of the data source connector.+--+-- 'indexId', 'describeDataSource_indexId' - The identifier of the index used with the data source connector.+newDescribeDataSource ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  DescribeDataSource+newDescribeDataSource pId_ pIndexId_ =+  DescribeDataSource' {id = pId_, indexId = pIndexId_}++-- | The identifier of the data source connector.+describeDataSource_id :: Lens.Lens' DescribeDataSource Prelude.Text+describeDataSource_id = Lens.lens (\DescribeDataSource' {id} -> id) (\s@DescribeDataSource' {} a -> s {id = a} :: DescribeDataSource)++-- | The identifier of the index used with the data source connector.+describeDataSource_indexId :: Lens.Lens' DescribeDataSource Prelude.Text+describeDataSource_indexId = Lens.lens (\DescribeDataSource' {indexId} -> indexId) (\s@DescribeDataSource' {} a -> s {indexId = a} :: DescribeDataSource)++instance Core.AWSRequest DescribeDataSource where+  type+    AWSResponse DescribeDataSource =+      DescribeDataSourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeDataSourceResponse'+            Prelude.<$> (x Data..?> "Configuration")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "CustomDocumentEnrichmentConfiguration")+            Prelude.<*> (x Data..?> "Description")+            Prelude.<*> (x Data..?> "ErrorMessage")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "IndexId")+            Prelude.<*> (x Data..?> "LanguageCode")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "RoleArn")+            Prelude.<*> (x Data..?> "Schedule")+            Prelude.<*> (x Data..?> "Status")+            Prelude.<*> (x Data..?> "Type")+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (x Data..?> "VpcConfiguration")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeDataSource where+  hashWithSalt _salt DescribeDataSource' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData DescribeDataSource where+  rnf DescribeDataSource' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders DescribeDataSource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DescribeDataSource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeDataSource where+  toJSON DescribeDataSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath DescribeDataSource where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeDataSource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeDataSourceResponse' smart constructor.+data DescribeDataSourceResponse = DescribeDataSourceResponse'+  { -- | Configuration details for the data source connector. This shows how the+    -- data source is configured. The configuration options for a data source+    -- depend on the data source provider.+    configuration :: Prelude.Maybe DataSourceConfiguration,+    -- | The Unix timestamp of when the data source connector was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | Configuration information for altering document metadata and content+    -- during the document ingestion process when you describe a data source.+    --+    -- For more information on how to create, modify and delete document+    -- metadata, or make other content alterations when you ingest documents+    -- into Amazon Kendra, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html Customizing document metadata during the ingestion process>.+    customDocumentEnrichmentConfiguration :: Prelude.Maybe CustomDocumentEnrichmentConfiguration,+    -- | The description for the data source connector.+    description :: Prelude.Maybe Prelude.Text,+    -- | When the @Status@ field value is @FAILED@, the @ErrorMessage@ field+    -- contains a description of the error that caused the data source to fail.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the data source connector.+    id :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the index used with the data source connector.+    indexId :: Prelude.Maybe Prelude.Text,+    -- | The code for a language. This shows a supported language for all+    -- documents in the data source. English is supported by default. For more+    -- information on supported languages, including their codes, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+    languageCode :: Prelude.Maybe Prelude.Text,+    -- | The name for the data source connector.+    name :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the role with permission to access the+    -- data source and required resources.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The schedule for Amazon Kendra to update the index.+    schedule :: Prelude.Maybe Prelude.Text,+    -- | The current status of the data source connector. When the status is+    -- @ACTIVE@ the data source is ready to use. When the status is @FAILED@,+    -- the @ErrorMessage@ field contains the reason that the data source+    -- failed.+    status :: Prelude.Maybe DataSourceStatus,+    -- | The type of the data source. For example, @SHAREPOINT@.+    type' :: Prelude.Maybe DataSourceType,+    -- | The Unix timestamp of when the data source connector was last updated.+    updatedAt :: Prelude.Maybe Data.POSIX,+    -- | Configuration information for an Amazon Virtual Private Cloud to connect+    -- to your data source. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+    vpcConfiguration :: Prelude.Maybe DataSourceVpcConfiguration,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeDataSourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configuration', 'describeDataSourceResponse_configuration' - Configuration details for the data source connector. This shows how the+-- data source is configured. The configuration options for a data source+-- depend on the data source provider.+--+-- 'createdAt', 'describeDataSourceResponse_createdAt' - The Unix timestamp of when the data source connector was created.+--+-- 'customDocumentEnrichmentConfiguration', 'describeDataSourceResponse_customDocumentEnrichmentConfiguration' - Configuration information for altering document metadata and content+-- during the document ingestion process when you describe a data source.+--+-- For more information on how to create, modify and delete document+-- metadata, or make other content alterations when you ingest documents+-- into Amazon Kendra, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html Customizing document metadata during the ingestion process>.+--+-- 'description', 'describeDataSourceResponse_description' - The description for the data source connector.+--+-- 'errorMessage', 'describeDataSourceResponse_errorMessage' - When the @Status@ field value is @FAILED@, the @ErrorMessage@ field+-- contains a description of the error that caused the data source to fail.+--+-- 'id', 'describeDataSourceResponse_id' - The identifier of the data source connector.+--+-- 'indexId', 'describeDataSourceResponse_indexId' - The identifier of the index used with the data source connector.+--+-- 'languageCode', 'describeDataSourceResponse_languageCode' - The code for a language. This shows a supported language for all+-- documents in the data source. English is supported by default. For more+-- information on supported languages, including their codes, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+--+-- 'name', 'describeDataSourceResponse_name' - The name for the data source connector.+--+-- 'roleArn', 'describeDataSourceResponse_roleArn' - The Amazon Resource Name (ARN) of the role with permission to access the+-- data source and required resources.+--+-- 'schedule', 'describeDataSourceResponse_schedule' - The schedule for Amazon Kendra to update the index.+--+-- 'status', 'describeDataSourceResponse_status' - The current status of the data source connector. When the status is+-- @ACTIVE@ the data source is ready to use. When the status is @FAILED@,+-- the @ErrorMessage@ field contains the reason that the data source+-- failed.+--+-- 'type'', 'describeDataSourceResponse_type' - The type of the data source. For example, @SHAREPOINT@.+--+-- 'updatedAt', 'describeDataSourceResponse_updatedAt' - The Unix timestamp of when the data source connector was last updated.+--+-- 'vpcConfiguration', 'describeDataSourceResponse_vpcConfiguration' - Configuration information for an Amazon Virtual Private Cloud to connect+-- to your data source. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+--+-- 'httpStatus', 'describeDataSourceResponse_httpStatus' - The response's http status code.+newDescribeDataSourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeDataSourceResponse+newDescribeDataSourceResponse pHttpStatus_ =+  DescribeDataSourceResponse'+    { configuration =+        Prelude.Nothing,+      createdAt = Prelude.Nothing,+      customDocumentEnrichmentConfiguration =+        Prelude.Nothing,+      description = Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      id = Prelude.Nothing,+      indexId = Prelude.Nothing,+      languageCode = Prelude.Nothing,+      name = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      schedule = Prelude.Nothing,+      status = Prelude.Nothing,+      type' = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      vpcConfiguration = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Configuration details for the data source connector. This shows how the+-- data source is configured. The configuration options for a data source+-- depend on the data source provider.+describeDataSourceResponse_configuration :: Lens.Lens' DescribeDataSourceResponse (Prelude.Maybe DataSourceConfiguration)+describeDataSourceResponse_configuration = Lens.lens (\DescribeDataSourceResponse' {configuration} -> configuration) (\s@DescribeDataSourceResponse' {} a -> s {configuration = a} :: DescribeDataSourceResponse)++-- | The Unix timestamp of when the data source connector was created.+describeDataSourceResponse_createdAt :: Lens.Lens' DescribeDataSourceResponse (Prelude.Maybe Prelude.UTCTime)+describeDataSourceResponse_createdAt = Lens.lens (\DescribeDataSourceResponse' {createdAt} -> createdAt) (\s@DescribeDataSourceResponse' {} a -> s {createdAt = a} :: DescribeDataSourceResponse) Prelude.. Lens.mapping Data._Time++-- | Configuration information for altering document metadata and content+-- during the document ingestion process when you describe a data source.+--+-- For more information on how to create, modify and delete document+-- metadata, or make other content alterations when you ingest documents+-- into Amazon Kendra, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html Customizing document metadata during the ingestion process>.+describeDataSourceResponse_customDocumentEnrichmentConfiguration :: Lens.Lens' DescribeDataSourceResponse (Prelude.Maybe CustomDocumentEnrichmentConfiguration)+describeDataSourceResponse_customDocumentEnrichmentConfiguration = Lens.lens (\DescribeDataSourceResponse' {customDocumentEnrichmentConfiguration} -> customDocumentEnrichmentConfiguration) (\s@DescribeDataSourceResponse' {} a -> s {customDocumentEnrichmentConfiguration = a} :: DescribeDataSourceResponse)++-- | The description for the data source connector.+describeDataSourceResponse_description :: Lens.Lens' DescribeDataSourceResponse (Prelude.Maybe Prelude.Text)+describeDataSourceResponse_description = Lens.lens (\DescribeDataSourceResponse' {description} -> description) (\s@DescribeDataSourceResponse' {} a -> s {description = a} :: DescribeDataSourceResponse)++-- | When the @Status@ field value is @FAILED@, the @ErrorMessage@ field+-- contains a description of the error that caused the data source to fail.+describeDataSourceResponse_errorMessage :: Lens.Lens' DescribeDataSourceResponse (Prelude.Maybe Prelude.Text)+describeDataSourceResponse_errorMessage = Lens.lens (\DescribeDataSourceResponse' {errorMessage} -> errorMessage) (\s@DescribeDataSourceResponse' {} a -> s {errorMessage = a} :: DescribeDataSourceResponse)++-- | The identifier of the data source connector.+describeDataSourceResponse_id :: Lens.Lens' DescribeDataSourceResponse (Prelude.Maybe Prelude.Text)+describeDataSourceResponse_id = Lens.lens (\DescribeDataSourceResponse' {id} -> id) (\s@DescribeDataSourceResponse' {} a -> s {id = a} :: DescribeDataSourceResponse)++-- | The identifier of the index used with the data source connector.+describeDataSourceResponse_indexId :: Lens.Lens' DescribeDataSourceResponse (Prelude.Maybe Prelude.Text)+describeDataSourceResponse_indexId = Lens.lens (\DescribeDataSourceResponse' {indexId} -> indexId) (\s@DescribeDataSourceResponse' {} a -> s {indexId = a} :: DescribeDataSourceResponse)++-- | The code for a language. This shows a supported language for all+-- documents in the data source. English is supported by default. For more+-- information on supported languages, including their codes, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+describeDataSourceResponse_languageCode :: Lens.Lens' DescribeDataSourceResponse (Prelude.Maybe Prelude.Text)+describeDataSourceResponse_languageCode = Lens.lens (\DescribeDataSourceResponse' {languageCode} -> languageCode) (\s@DescribeDataSourceResponse' {} a -> s {languageCode = a} :: DescribeDataSourceResponse)++-- | The name for the data source connector.+describeDataSourceResponse_name :: Lens.Lens' DescribeDataSourceResponse (Prelude.Maybe Prelude.Text)+describeDataSourceResponse_name = Lens.lens (\DescribeDataSourceResponse' {name} -> name) (\s@DescribeDataSourceResponse' {} a -> s {name = a} :: DescribeDataSourceResponse)++-- | The Amazon Resource Name (ARN) of the role with permission to access the+-- data source and required resources.+describeDataSourceResponse_roleArn :: Lens.Lens' DescribeDataSourceResponse (Prelude.Maybe Prelude.Text)+describeDataSourceResponse_roleArn = Lens.lens (\DescribeDataSourceResponse' {roleArn} -> roleArn) (\s@DescribeDataSourceResponse' {} a -> s {roleArn = a} :: DescribeDataSourceResponse)++-- | The schedule for Amazon Kendra to update the index.+describeDataSourceResponse_schedule :: Lens.Lens' DescribeDataSourceResponse (Prelude.Maybe Prelude.Text)+describeDataSourceResponse_schedule = Lens.lens (\DescribeDataSourceResponse' {schedule} -> schedule) (\s@DescribeDataSourceResponse' {} a -> s {schedule = a} :: DescribeDataSourceResponse)++-- | The current status of the data source connector. When the status is+-- @ACTIVE@ the data source is ready to use. When the status is @FAILED@,+-- the @ErrorMessage@ field contains the reason that the data source+-- failed.+describeDataSourceResponse_status :: Lens.Lens' DescribeDataSourceResponse (Prelude.Maybe DataSourceStatus)+describeDataSourceResponse_status = Lens.lens (\DescribeDataSourceResponse' {status} -> status) (\s@DescribeDataSourceResponse' {} a -> s {status = a} :: DescribeDataSourceResponse)++-- | The type of the data source. For example, @SHAREPOINT@.+describeDataSourceResponse_type :: Lens.Lens' DescribeDataSourceResponse (Prelude.Maybe DataSourceType)+describeDataSourceResponse_type = Lens.lens (\DescribeDataSourceResponse' {type'} -> type') (\s@DescribeDataSourceResponse' {} a -> s {type' = a} :: DescribeDataSourceResponse)++-- | The Unix timestamp of when the data source connector was last updated.+describeDataSourceResponse_updatedAt :: Lens.Lens' DescribeDataSourceResponse (Prelude.Maybe Prelude.UTCTime)+describeDataSourceResponse_updatedAt = Lens.lens (\DescribeDataSourceResponse' {updatedAt} -> updatedAt) (\s@DescribeDataSourceResponse' {} a -> s {updatedAt = a} :: DescribeDataSourceResponse) Prelude.. Lens.mapping Data._Time++-- | Configuration information for an Amazon Virtual Private Cloud to connect+-- to your data source. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+describeDataSourceResponse_vpcConfiguration :: Lens.Lens' DescribeDataSourceResponse (Prelude.Maybe DataSourceVpcConfiguration)+describeDataSourceResponse_vpcConfiguration = Lens.lens (\DescribeDataSourceResponse' {vpcConfiguration} -> vpcConfiguration) (\s@DescribeDataSourceResponse' {} a -> s {vpcConfiguration = a} :: DescribeDataSourceResponse)++-- | The response's http status code.+describeDataSourceResponse_httpStatus :: Lens.Lens' DescribeDataSourceResponse Prelude.Int+describeDataSourceResponse_httpStatus = Lens.lens (\DescribeDataSourceResponse' {httpStatus} -> httpStatus) (\s@DescribeDataSourceResponse' {} a -> s {httpStatus = a} :: DescribeDataSourceResponse)++instance Prelude.NFData DescribeDataSourceResponse where+  rnf DescribeDataSourceResponse' {..} =+    Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf customDocumentEnrichmentConfiguration+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf languageCode+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf schedule+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf vpcConfiguration+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/DescribeExperience.hs view
@@ -0,0 +1,340 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.DescribeExperience+-- 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 your Amazon Kendra experience such as a search+-- application. For more information on creating a search application+-- experience, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html Building a search experience with no code>.+module Amazonka.Kendra.DescribeExperience+  ( -- * Creating a Request+    DescribeExperience (..),+    newDescribeExperience,++    -- * Request Lenses+    describeExperience_id,+    describeExperience_indexId,++    -- * Destructuring the Response+    DescribeExperienceResponse (..),+    newDescribeExperienceResponse,++    -- * Response Lenses+    describeExperienceResponse_configuration,+    describeExperienceResponse_createdAt,+    describeExperienceResponse_description,+    describeExperienceResponse_endpoints,+    describeExperienceResponse_errorMessage,+    describeExperienceResponse_id,+    describeExperienceResponse_indexId,+    describeExperienceResponse_name,+    describeExperienceResponse_roleArn,+    describeExperienceResponse_status,+    describeExperienceResponse_updatedAt,+    describeExperienceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeExperience' smart constructor.+data DescribeExperience = DescribeExperience'+  { -- | The identifier of your Amazon Kendra experience you want to get+    -- information on.+    id :: Prelude.Text,+    -- | The identifier of the index for your Amazon Kendra experience.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeExperience' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'describeExperience_id' - The identifier of your Amazon Kendra experience you want to get+-- information on.+--+-- 'indexId', 'describeExperience_indexId' - The identifier of the index for your Amazon Kendra experience.+newDescribeExperience ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  DescribeExperience+newDescribeExperience pId_ pIndexId_ =+  DescribeExperience' {id = pId_, indexId = pIndexId_}++-- | The identifier of your Amazon Kendra experience you want to get+-- information on.+describeExperience_id :: Lens.Lens' DescribeExperience Prelude.Text+describeExperience_id = Lens.lens (\DescribeExperience' {id} -> id) (\s@DescribeExperience' {} a -> s {id = a} :: DescribeExperience)++-- | The identifier of the index for your Amazon Kendra experience.+describeExperience_indexId :: Lens.Lens' DescribeExperience Prelude.Text+describeExperience_indexId = Lens.lens (\DescribeExperience' {indexId} -> indexId) (\s@DescribeExperience' {} a -> s {indexId = a} :: DescribeExperience)++instance Core.AWSRequest DescribeExperience where+  type+    AWSResponse DescribeExperience =+      DescribeExperienceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeExperienceResponse'+            Prelude.<$> (x Data..?> "Configuration")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "Description")+            Prelude.<*> (x Data..?> "Endpoints")+            Prelude.<*> (x Data..?> "ErrorMessage")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "IndexId")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "RoleArn")+            Prelude.<*> (x Data..?> "Status")+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeExperience where+  hashWithSalt _salt DescribeExperience' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData DescribeExperience where+  rnf DescribeExperience' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders DescribeExperience where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DescribeExperience" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeExperience where+  toJSON DescribeExperience' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath DescribeExperience where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeExperience where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeExperienceResponse' smart constructor.+data DescribeExperienceResponse = DescribeExperienceResponse'+  { -- | Shows the configuration information for your Amazon Kendra experience.+    -- This includes @ContentSourceConfiguration@, which specifies the data+    -- source IDs and\/or FAQ IDs, and @UserIdentityConfiguration@, which+    -- specifies the user or group information to grant access to your Amazon+    -- Kendra experience.+    configuration :: Prelude.Maybe ExperienceConfiguration,+    -- | Shows the date-time your Amazon Kendra experience was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | Shows the description for your Amazon Kendra experience.+    description :: Prelude.Maybe Prelude.Text,+    -- | Shows the endpoint URLs for your Amazon Kendra experiences. The URLs are+    -- unique and fully hosted by Amazon Web Services.+    endpoints :: Prelude.Maybe (Prelude.NonEmpty ExperienceEndpoint),+    -- | The reason your Amazon Kendra experience could not properly process.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | Shows the identifier of your Amazon Kendra experience.+    id :: Prelude.Maybe Prelude.Text,+    -- | Shows the identifier of the index for your Amazon Kendra experience.+    indexId :: Prelude.Maybe Prelude.Text,+    -- | Shows the name of your Amazon Kendra experience.+    name :: Prelude.Maybe Prelude.Text,+    -- | Shows the Amazon Resource Name (ARN) of a role with permission to access+    -- @Query@ API, @QuerySuggestions@ API, @SubmitFeedback@ API, and IAM+    -- Identity Center that stores your user and group information.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The current processing status of your Amazon Kendra experience. When the+    -- status is @ACTIVE@, your Amazon Kendra experience is ready to use. When+    -- the status is @FAILED@, the @ErrorMessage@ field contains the reason+    -- that this failed.+    status :: Prelude.Maybe ExperienceStatus,+    -- | Shows the date-time your Amazon Kendra experience was last updated.+    updatedAt :: Prelude.Maybe Data.POSIX,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeExperienceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configuration', 'describeExperienceResponse_configuration' - Shows the configuration information for your Amazon Kendra experience.+-- This includes @ContentSourceConfiguration@, which specifies the data+-- source IDs and\/or FAQ IDs, and @UserIdentityConfiguration@, which+-- specifies the user or group information to grant access to your Amazon+-- Kendra experience.+--+-- 'createdAt', 'describeExperienceResponse_createdAt' - Shows the date-time your Amazon Kendra experience was created.+--+-- 'description', 'describeExperienceResponse_description' - Shows the description for your Amazon Kendra experience.+--+-- 'endpoints', 'describeExperienceResponse_endpoints' - Shows the endpoint URLs for your Amazon Kendra experiences. The URLs are+-- unique and fully hosted by Amazon Web Services.+--+-- 'errorMessage', 'describeExperienceResponse_errorMessage' - The reason your Amazon Kendra experience could not properly process.+--+-- 'id', 'describeExperienceResponse_id' - Shows the identifier of your Amazon Kendra experience.+--+-- 'indexId', 'describeExperienceResponse_indexId' - Shows the identifier of the index for your Amazon Kendra experience.+--+-- 'name', 'describeExperienceResponse_name' - Shows the name of your Amazon Kendra experience.+--+-- 'roleArn', 'describeExperienceResponse_roleArn' - Shows the Amazon Resource Name (ARN) of a role with permission to access+-- @Query@ API, @QuerySuggestions@ API, @SubmitFeedback@ API, and IAM+-- Identity Center that stores your user and group information.+--+-- 'status', 'describeExperienceResponse_status' - The current processing status of your Amazon Kendra experience. When the+-- status is @ACTIVE@, your Amazon Kendra experience is ready to use. When+-- the status is @FAILED@, the @ErrorMessage@ field contains the reason+-- that this failed.+--+-- 'updatedAt', 'describeExperienceResponse_updatedAt' - Shows the date-time your Amazon Kendra experience was last updated.+--+-- 'httpStatus', 'describeExperienceResponse_httpStatus' - The response's http status code.+newDescribeExperienceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeExperienceResponse+newDescribeExperienceResponse pHttpStatus_ =+  DescribeExperienceResponse'+    { configuration =+        Prelude.Nothing,+      createdAt = Prelude.Nothing,+      description = Prelude.Nothing,+      endpoints = Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      id = Prelude.Nothing,+      indexId = Prelude.Nothing,+      name = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      status = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Shows the configuration information for your Amazon Kendra experience.+-- This includes @ContentSourceConfiguration@, which specifies the data+-- source IDs and\/or FAQ IDs, and @UserIdentityConfiguration@, which+-- specifies the user or group information to grant access to your Amazon+-- Kendra experience.+describeExperienceResponse_configuration :: Lens.Lens' DescribeExperienceResponse (Prelude.Maybe ExperienceConfiguration)+describeExperienceResponse_configuration = Lens.lens (\DescribeExperienceResponse' {configuration} -> configuration) (\s@DescribeExperienceResponse' {} a -> s {configuration = a} :: DescribeExperienceResponse)++-- | Shows the date-time your Amazon Kendra experience was created.+describeExperienceResponse_createdAt :: Lens.Lens' DescribeExperienceResponse (Prelude.Maybe Prelude.UTCTime)+describeExperienceResponse_createdAt = Lens.lens (\DescribeExperienceResponse' {createdAt} -> createdAt) (\s@DescribeExperienceResponse' {} a -> s {createdAt = a} :: DescribeExperienceResponse) Prelude.. Lens.mapping Data._Time++-- | Shows the description for your Amazon Kendra experience.+describeExperienceResponse_description :: Lens.Lens' DescribeExperienceResponse (Prelude.Maybe Prelude.Text)+describeExperienceResponse_description = Lens.lens (\DescribeExperienceResponse' {description} -> description) (\s@DescribeExperienceResponse' {} a -> s {description = a} :: DescribeExperienceResponse)++-- | Shows the endpoint URLs for your Amazon Kendra experiences. The URLs are+-- unique and fully hosted by Amazon Web Services.+describeExperienceResponse_endpoints :: Lens.Lens' DescribeExperienceResponse (Prelude.Maybe (Prelude.NonEmpty ExperienceEndpoint))+describeExperienceResponse_endpoints = Lens.lens (\DescribeExperienceResponse' {endpoints} -> endpoints) (\s@DescribeExperienceResponse' {} a -> s {endpoints = a} :: DescribeExperienceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The reason your Amazon Kendra experience could not properly process.+describeExperienceResponse_errorMessage :: Lens.Lens' DescribeExperienceResponse (Prelude.Maybe Prelude.Text)+describeExperienceResponse_errorMessage = Lens.lens (\DescribeExperienceResponse' {errorMessage} -> errorMessage) (\s@DescribeExperienceResponse' {} a -> s {errorMessage = a} :: DescribeExperienceResponse)++-- | Shows the identifier of your Amazon Kendra experience.+describeExperienceResponse_id :: Lens.Lens' DescribeExperienceResponse (Prelude.Maybe Prelude.Text)+describeExperienceResponse_id = Lens.lens (\DescribeExperienceResponse' {id} -> id) (\s@DescribeExperienceResponse' {} a -> s {id = a} :: DescribeExperienceResponse)++-- | Shows the identifier of the index for your Amazon Kendra experience.+describeExperienceResponse_indexId :: Lens.Lens' DescribeExperienceResponse (Prelude.Maybe Prelude.Text)+describeExperienceResponse_indexId = Lens.lens (\DescribeExperienceResponse' {indexId} -> indexId) (\s@DescribeExperienceResponse' {} a -> s {indexId = a} :: DescribeExperienceResponse)++-- | Shows the name of your Amazon Kendra experience.+describeExperienceResponse_name :: Lens.Lens' DescribeExperienceResponse (Prelude.Maybe Prelude.Text)+describeExperienceResponse_name = Lens.lens (\DescribeExperienceResponse' {name} -> name) (\s@DescribeExperienceResponse' {} a -> s {name = a} :: DescribeExperienceResponse)++-- | Shows the Amazon Resource Name (ARN) of a role with permission to access+-- @Query@ API, @QuerySuggestions@ API, @SubmitFeedback@ API, and IAM+-- Identity Center that stores your user and group information.+describeExperienceResponse_roleArn :: Lens.Lens' DescribeExperienceResponse (Prelude.Maybe Prelude.Text)+describeExperienceResponse_roleArn = Lens.lens (\DescribeExperienceResponse' {roleArn} -> roleArn) (\s@DescribeExperienceResponse' {} a -> s {roleArn = a} :: DescribeExperienceResponse)++-- | The current processing status of your Amazon Kendra experience. When the+-- status is @ACTIVE@, your Amazon Kendra experience is ready to use. When+-- the status is @FAILED@, the @ErrorMessage@ field contains the reason+-- that this failed.+describeExperienceResponse_status :: Lens.Lens' DescribeExperienceResponse (Prelude.Maybe ExperienceStatus)+describeExperienceResponse_status = Lens.lens (\DescribeExperienceResponse' {status} -> status) (\s@DescribeExperienceResponse' {} a -> s {status = a} :: DescribeExperienceResponse)++-- | Shows the date-time your Amazon Kendra experience was last updated.+describeExperienceResponse_updatedAt :: Lens.Lens' DescribeExperienceResponse (Prelude.Maybe Prelude.UTCTime)+describeExperienceResponse_updatedAt = Lens.lens (\DescribeExperienceResponse' {updatedAt} -> updatedAt) (\s@DescribeExperienceResponse' {} a -> s {updatedAt = a} :: DescribeExperienceResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+describeExperienceResponse_httpStatus :: Lens.Lens' DescribeExperienceResponse Prelude.Int+describeExperienceResponse_httpStatus = Lens.lens (\DescribeExperienceResponse' {httpStatus} -> httpStatus) (\s@DescribeExperienceResponse' {} a -> s {httpStatus = a} :: DescribeExperienceResponse)++instance Prelude.NFData DescribeExperienceResponse where+  rnf DescribeExperienceResponse' {..} =+    Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf endpoints+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/DescribeFaq.hs view
@@ -0,0 +1,327 @@+{-# 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.Kendra.DescribeFaq+-- 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 an FAQ list.+module Amazonka.Kendra.DescribeFaq+  ( -- * Creating a Request+    DescribeFaq (..),+    newDescribeFaq,++    -- * Request Lenses+    describeFaq_id,+    describeFaq_indexId,++    -- * Destructuring the Response+    DescribeFaqResponse (..),+    newDescribeFaqResponse,++    -- * Response Lenses+    describeFaqResponse_createdAt,+    describeFaqResponse_description,+    describeFaqResponse_errorMessage,+    describeFaqResponse_fileFormat,+    describeFaqResponse_id,+    describeFaqResponse_indexId,+    describeFaqResponse_languageCode,+    describeFaqResponse_name,+    describeFaqResponse_roleArn,+    describeFaqResponse_s3Path,+    describeFaqResponse_status,+    describeFaqResponse_updatedAt,+    describeFaqResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeFaq' smart constructor.+data DescribeFaq = DescribeFaq'+  { -- | The identifier of the FAQ you want to get information on.+    id :: Prelude.Text,+    -- | The identifier of the index for the FAQ.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFaq' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'describeFaq_id' - The identifier of the FAQ you want to get information on.+--+-- 'indexId', 'describeFaq_indexId' - The identifier of the index for the FAQ.+newDescribeFaq ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  DescribeFaq+newDescribeFaq pId_ pIndexId_ =+  DescribeFaq' {id = pId_, indexId = pIndexId_}++-- | The identifier of the FAQ you want to get information on.+describeFaq_id :: Lens.Lens' DescribeFaq Prelude.Text+describeFaq_id = Lens.lens (\DescribeFaq' {id} -> id) (\s@DescribeFaq' {} a -> s {id = a} :: DescribeFaq)++-- | The identifier of the index for the FAQ.+describeFaq_indexId :: Lens.Lens' DescribeFaq Prelude.Text+describeFaq_indexId = Lens.lens (\DescribeFaq' {indexId} -> indexId) (\s@DescribeFaq' {} a -> s {indexId = a} :: DescribeFaq)++instance Core.AWSRequest DescribeFaq where+  type AWSResponse DescribeFaq = DescribeFaqResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeFaqResponse'+            Prelude.<$> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "Description")+            Prelude.<*> (x Data..?> "ErrorMessage")+            Prelude.<*> (x Data..?> "FileFormat")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "IndexId")+            Prelude.<*> (x Data..?> "LanguageCode")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "RoleArn")+            Prelude.<*> (x Data..?> "S3Path")+            Prelude.<*> (x Data..?> "Status")+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeFaq where+  hashWithSalt _salt DescribeFaq' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData DescribeFaq where+  rnf DescribeFaq' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders DescribeFaq where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DescribeFaq" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeFaq where+  toJSON DescribeFaq' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath DescribeFaq where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeFaq where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeFaqResponse' smart constructor.+data DescribeFaqResponse = DescribeFaqResponse'+  { -- | The date and time that the FAQ was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The description of the FAQ that you provided when it was created.+    description :: Prelude.Maybe Prelude.Text,+    -- | If the @Status@ field is @FAILED@, the @ErrorMessage@ field contains the+    -- reason why the FAQ failed.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The file format used by the input files for the FAQ.+    fileFormat :: Prelude.Maybe FaqFileFormat,+    -- | The identifier of the FAQ.+    id :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the index for the FAQ.+    indexId :: Prelude.Maybe Prelude.Text,+    -- | The code for a language. This shows a supported language for the FAQ+    -- document. English is supported by default. For more information on+    -- supported languages, including their codes, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+    languageCode :: Prelude.Maybe Prelude.Text,+    -- | The name that you gave the FAQ when it was created.+    name :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the role that provides access to the+    -- S3 bucket containing the input files for the FAQ.+    roleArn :: Prelude.Maybe Prelude.Text,+    s3Path :: Prelude.Maybe S3Path,+    -- | The status of the FAQ. It is ready to use when the status is @ACTIVE@.+    status :: Prelude.Maybe FaqStatus,+    -- | The date and time that the FAQ was last updated.+    updatedAt :: Prelude.Maybe Data.POSIX,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeFaqResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdAt', 'describeFaqResponse_createdAt' - The date and time that the FAQ was created.+--+-- 'description', 'describeFaqResponse_description' - The description of the FAQ that you provided when it was created.+--+-- 'errorMessage', 'describeFaqResponse_errorMessage' - If the @Status@ field is @FAILED@, the @ErrorMessage@ field contains the+-- reason why the FAQ failed.+--+-- 'fileFormat', 'describeFaqResponse_fileFormat' - The file format used by the input files for the FAQ.+--+-- 'id', 'describeFaqResponse_id' - The identifier of the FAQ.+--+-- 'indexId', 'describeFaqResponse_indexId' - The identifier of the index for the FAQ.+--+-- 'languageCode', 'describeFaqResponse_languageCode' - The code for a language. This shows a supported language for the FAQ+-- document. English is supported by default. For more information on+-- supported languages, including their codes, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+--+-- 'name', 'describeFaqResponse_name' - The name that you gave the FAQ when it was created.+--+-- 'roleArn', 'describeFaqResponse_roleArn' - The Amazon Resource Name (ARN) of the role that provides access to the+-- S3 bucket containing the input files for the FAQ.+--+-- 's3Path', 'describeFaqResponse_s3Path' - Undocumented member.+--+-- 'status', 'describeFaqResponse_status' - The status of the FAQ. It is ready to use when the status is @ACTIVE@.+--+-- 'updatedAt', 'describeFaqResponse_updatedAt' - The date and time that the FAQ was last updated.+--+-- 'httpStatus', 'describeFaqResponse_httpStatus' - The response's http status code.+newDescribeFaqResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeFaqResponse+newDescribeFaqResponse pHttpStatus_ =+  DescribeFaqResponse'+    { createdAt = Prelude.Nothing,+      description = Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      fileFormat = Prelude.Nothing,+      id = Prelude.Nothing,+      indexId = Prelude.Nothing,+      languageCode = Prelude.Nothing,+      name = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      s3Path = Prelude.Nothing,+      status = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The date and time that the FAQ was created.+describeFaqResponse_createdAt :: Lens.Lens' DescribeFaqResponse (Prelude.Maybe Prelude.UTCTime)+describeFaqResponse_createdAt = Lens.lens (\DescribeFaqResponse' {createdAt} -> createdAt) (\s@DescribeFaqResponse' {} a -> s {createdAt = a} :: DescribeFaqResponse) Prelude.. Lens.mapping Data._Time++-- | The description of the FAQ that you provided when it was created.+describeFaqResponse_description :: Lens.Lens' DescribeFaqResponse (Prelude.Maybe Prelude.Text)+describeFaqResponse_description = Lens.lens (\DescribeFaqResponse' {description} -> description) (\s@DescribeFaqResponse' {} a -> s {description = a} :: DescribeFaqResponse)++-- | If the @Status@ field is @FAILED@, the @ErrorMessage@ field contains the+-- reason why the FAQ failed.+describeFaqResponse_errorMessage :: Lens.Lens' DescribeFaqResponse (Prelude.Maybe Prelude.Text)+describeFaqResponse_errorMessage = Lens.lens (\DescribeFaqResponse' {errorMessage} -> errorMessage) (\s@DescribeFaqResponse' {} a -> s {errorMessage = a} :: DescribeFaqResponse)++-- | The file format used by the input files for the FAQ.+describeFaqResponse_fileFormat :: Lens.Lens' DescribeFaqResponse (Prelude.Maybe FaqFileFormat)+describeFaqResponse_fileFormat = Lens.lens (\DescribeFaqResponse' {fileFormat} -> fileFormat) (\s@DescribeFaqResponse' {} a -> s {fileFormat = a} :: DescribeFaqResponse)++-- | The identifier of the FAQ.+describeFaqResponse_id :: Lens.Lens' DescribeFaqResponse (Prelude.Maybe Prelude.Text)+describeFaqResponse_id = Lens.lens (\DescribeFaqResponse' {id} -> id) (\s@DescribeFaqResponse' {} a -> s {id = a} :: DescribeFaqResponse)++-- | The identifier of the index for the FAQ.+describeFaqResponse_indexId :: Lens.Lens' DescribeFaqResponse (Prelude.Maybe Prelude.Text)+describeFaqResponse_indexId = Lens.lens (\DescribeFaqResponse' {indexId} -> indexId) (\s@DescribeFaqResponse' {} a -> s {indexId = a} :: DescribeFaqResponse)++-- | The code for a language. This shows a supported language for the FAQ+-- document. English is supported by default. For more information on+-- supported languages, including their codes, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+describeFaqResponse_languageCode :: Lens.Lens' DescribeFaqResponse (Prelude.Maybe Prelude.Text)+describeFaqResponse_languageCode = Lens.lens (\DescribeFaqResponse' {languageCode} -> languageCode) (\s@DescribeFaqResponse' {} a -> s {languageCode = a} :: DescribeFaqResponse)++-- | The name that you gave the FAQ when it was created.+describeFaqResponse_name :: Lens.Lens' DescribeFaqResponse (Prelude.Maybe Prelude.Text)+describeFaqResponse_name = Lens.lens (\DescribeFaqResponse' {name} -> name) (\s@DescribeFaqResponse' {} a -> s {name = a} :: DescribeFaqResponse)++-- | The Amazon Resource Name (ARN) of the role that provides access to the+-- S3 bucket containing the input files for the FAQ.+describeFaqResponse_roleArn :: Lens.Lens' DescribeFaqResponse (Prelude.Maybe Prelude.Text)+describeFaqResponse_roleArn = Lens.lens (\DescribeFaqResponse' {roleArn} -> roleArn) (\s@DescribeFaqResponse' {} a -> s {roleArn = a} :: DescribeFaqResponse)++-- | Undocumented member.+describeFaqResponse_s3Path :: Lens.Lens' DescribeFaqResponse (Prelude.Maybe S3Path)+describeFaqResponse_s3Path = Lens.lens (\DescribeFaqResponse' {s3Path} -> s3Path) (\s@DescribeFaqResponse' {} a -> s {s3Path = a} :: DescribeFaqResponse)++-- | The status of the FAQ. It is ready to use when the status is @ACTIVE@.+describeFaqResponse_status :: Lens.Lens' DescribeFaqResponse (Prelude.Maybe FaqStatus)+describeFaqResponse_status = Lens.lens (\DescribeFaqResponse' {status} -> status) (\s@DescribeFaqResponse' {} a -> s {status = a} :: DescribeFaqResponse)++-- | The date and time that the FAQ was last updated.+describeFaqResponse_updatedAt :: Lens.Lens' DescribeFaqResponse (Prelude.Maybe Prelude.UTCTime)+describeFaqResponse_updatedAt = Lens.lens (\DescribeFaqResponse' {updatedAt} -> updatedAt) (\s@DescribeFaqResponse' {} a -> s {updatedAt = a} :: DescribeFaqResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+describeFaqResponse_httpStatus :: Lens.Lens' DescribeFaqResponse Prelude.Int+describeFaqResponse_httpStatus = Lens.lens (\DescribeFaqResponse' {httpStatus} -> httpStatus) (\s@DescribeFaqResponse' {} a -> s {httpStatus = a} :: DescribeFaqResponse)++instance Prelude.NFData DescribeFaqResponse where+  rnf DescribeFaqResponse' {..} =+    Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf fileFormat+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf languageCode+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf s3Path+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/DescribeIndex.hs view
@@ -0,0 +1,400 @@+{-# 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.Kendra.DescribeIndex+-- 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 an existing Amazon Kendra index.+module Amazonka.Kendra.DescribeIndex+  ( -- * Creating a Request+    DescribeIndex (..),+    newDescribeIndex,++    -- * Request Lenses+    describeIndex_id,++    -- * Destructuring the Response+    DescribeIndexResponse (..),+    newDescribeIndexResponse,++    -- * Response Lenses+    describeIndexResponse_capacityUnits,+    describeIndexResponse_createdAt,+    describeIndexResponse_description,+    describeIndexResponse_documentMetadataConfigurations,+    describeIndexResponse_edition,+    describeIndexResponse_errorMessage,+    describeIndexResponse_id,+    describeIndexResponse_indexStatistics,+    describeIndexResponse_name,+    describeIndexResponse_roleArn,+    describeIndexResponse_serverSideEncryptionConfiguration,+    describeIndexResponse_status,+    describeIndexResponse_updatedAt,+    describeIndexResponse_userContextPolicy,+    describeIndexResponse_userGroupResolutionConfiguration,+    describeIndexResponse_userTokenConfigurations,+    describeIndexResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeIndex' smart constructor.+data DescribeIndex = DescribeIndex'+  { -- | The identifier of the index you want to get information on.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeIndex' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'describeIndex_id' - The identifier of the index you want to get information on.+newDescribeIndex ::+  -- | 'id'+  Prelude.Text ->+  DescribeIndex+newDescribeIndex pId_ = DescribeIndex' {id = pId_}++-- | The identifier of the index you want to get information on.+describeIndex_id :: Lens.Lens' DescribeIndex Prelude.Text+describeIndex_id = Lens.lens (\DescribeIndex' {id} -> id) (\s@DescribeIndex' {} a -> s {id = a} :: DescribeIndex)++instance Core.AWSRequest DescribeIndex where+  type+    AWSResponse DescribeIndex =+      DescribeIndexResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeIndexResponse'+            Prelude.<$> (x Data..?> "CapacityUnits")+            Prelude.<*> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "Description")+            Prelude.<*> ( x+                            Data..?> "DocumentMetadataConfigurations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "Edition")+            Prelude.<*> (x Data..?> "ErrorMessage")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "IndexStatistics")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "RoleArn")+            Prelude.<*> (x Data..?> "ServerSideEncryptionConfiguration")+            Prelude.<*> (x Data..?> "Status")+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (x Data..?> "UserContextPolicy")+            Prelude.<*> (x Data..?> "UserGroupResolutionConfiguration")+            Prelude.<*> ( x+                            Data..?> "UserTokenConfigurations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeIndex where+  hashWithSalt _salt DescribeIndex' {..} =+    _salt `Prelude.hashWithSalt` id++instance Prelude.NFData DescribeIndex where+  rnf DescribeIndex' {..} = Prelude.rnf id++instance Data.ToHeaders DescribeIndex where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DescribeIndex" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeIndex where+  toJSON DescribeIndex' {..} =+    Data.object+      (Prelude.catMaybes [Prelude.Just ("Id" Data..= id)])++instance Data.ToPath DescribeIndex where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeIndex where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeIndexResponse' smart constructor.+data DescribeIndexResponse = DescribeIndexResponse'+  { -- | For Enterprise Edition indexes, you can choose to use additional+    -- capacity to meet the needs of your application. This contains the+    -- capacity units used for the index. A query or document storage capacity+    -- of zero indicates that the index is using the default capacity. For more+    -- information on the default capacity for an index and adjusting this, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/adjusting-capacity.html Adjusting capacity>.+    capacityUnits :: Prelude.Maybe CapacityUnitsConfiguration,+    -- | The Unix datetime that the index was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The description for the index.+    description :: Prelude.Maybe Prelude.Text,+    -- | Configuration information for document metadata or fields. Document+    -- metadata are fields or attributes associated with your documents. For+    -- example, the company department name associated with each document.+    documentMetadataConfigurations :: Prelude.Maybe [DocumentMetadataConfiguration],+    -- | The Amazon Kendra edition used for the index. You decide the edition+    -- when you create the index.+    edition :: Prelude.Maybe IndexEdition,+    -- | When the @Status@ field value is @FAILED@, the @ErrorMessage@ field+    -- contains a message that explains why.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the index.+    id :: Prelude.Maybe Prelude.Text,+    -- | Provides information about the number of FAQ questions and answers and+    -- the number of text documents indexed.+    indexStatistics :: Prelude.Maybe IndexStatistics,+    -- | The name of the index.+    name :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the IAM role that gives Amazon Kendra+    -- permission to write to your Amazon Cloudwatch logs.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the KMScustomer master key (CMK) that is used to+    -- encrypt your data. Amazon Kendra doesn\'t support asymmetric CMKs.+    serverSideEncryptionConfiguration :: Prelude.Maybe ServerSideEncryptionConfiguration,+    -- | The current status of the index. When the value is @ACTIVE@, the index+    -- is ready for use. If the @Status@ field value is @FAILED@, the+    -- @ErrorMessage@ field contains a message that explains why.+    status :: Prelude.Maybe IndexStatus,+    -- | The Unix datetime that the index was last updated.+    updatedAt :: Prelude.Maybe Data.POSIX,+    -- | The user context policy for the Amazon Kendra index.+    userContextPolicy :: Prelude.Maybe UserContextPolicy,+    -- | Whether you have enabled the configuration for fetching access levels of+    -- groups and users from an IAM Identity Center (successor to Single+    -- Sign-On) identity source.+    userGroupResolutionConfiguration :: Prelude.Maybe UserGroupResolutionConfiguration,+    -- | The user token configuration for the Amazon Kendra index.+    userTokenConfigurations :: Prelude.Maybe [UserTokenConfiguration],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeIndexResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'capacityUnits', 'describeIndexResponse_capacityUnits' - For Enterprise Edition indexes, you can choose to use additional+-- capacity to meet the needs of your application. This contains the+-- capacity units used for the index. A query or document storage capacity+-- of zero indicates that the index is using the default capacity. For more+-- information on the default capacity for an index and adjusting this, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/adjusting-capacity.html Adjusting capacity>.+--+-- 'createdAt', 'describeIndexResponse_createdAt' - The Unix datetime that the index was created.+--+-- 'description', 'describeIndexResponse_description' - The description for the index.+--+-- 'documentMetadataConfigurations', 'describeIndexResponse_documentMetadataConfigurations' - Configuration information for document metadata or fields. Document+-- metadata are fields or attributes associated with your documents. For+-- example, the company department name associated with each document.+--+-- 'edition', 'describeIndexResponse_edition' - The Amazon Kendra edition used for the index. You decide the edition+-- when you create the index.+--+-- 'errorMessage', 'describeIndexResponse_errorMessage' - When the @Status@ field value is @FAILED@, the @ErrorMessage@ field+-- contains a message that explains why.+--+-- 'id', 'describeIndexResponse_id' - The identifier of the index.+--+-- 'indexStatistics', 'describeIndexResponse_indexStatistics' - Provides information about the number of FAQ questions and answers and+-- the number of text documents indexed.+--+-- 'name', 'describeIndexResponse_name' - The name of the index.+--+-- 'roleArn', 'describeIndexResponse_roleArn' - The Amazon Resource Name (ARN) of the IAM role that gives Amazon Kendra+-- permission to write to your Amazon Cloudwatch logs.+--+-- 'serverSideEncryptionConfiguration', 'describeIndexResponse_serverSideEncryptionConfiguration' - The identifier of the KMScustomer master key (CMK) that is used to+-- encrypt your data. Amazon Kendra doesn\'t support asymmetric CMKs.+--+-- 'status', 'describeIndexResponse_status' - The current status of the index. When the value is @ACTIVE@, the index+-- is ready for use. If the @Status@ field value is @FAILED@, the+-- @ErrorMessage@ field contains a message that explains why.+--+-- 'updatedAt', 'describeIndexResponse_updatedAt' - The Unix datetime that the index was last updated.+--+-- 'userContextPolicy', 'describeIndexResponse_userContextPolicy' - The user context policy for the Amazon Kendra index.+--+-- 'userGroupResolutionConfiguration', 'describeIndexResponse_userGroupResolutionConfiguration' - Whether you have enabled the configuration for fetching access levels of+-- groups and users from an IAM Identity Center (successor to Single+-- Sign-On) identity source.+--+-- 'userTokenConfigurations', 'describeIndexResponse_userTokenConfigurations' - The user token configuration for the Amazon Kendra index.+--+-- 'httpStatus', 'describeIndexResponse_httpStatus' - The response's http status code.+newDescribeIndexResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeIndexResponse+newDescribeIndexResponse pHttpStatus_ =+  DescribeIndexResponse'+    { capacityUnits =+        Prelude.Nothing,+      createdAt = Prelude.Nothing,+      description = Prelude.Nothing,+      documentMetadataConfigurations = Prelude.Nothing,+      edition = Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      id = Prelude.Nothing,+      indexStatistics = Prelude.Nothing,+      name = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      serverSideEncryptionConfiguration = Prelude.Nothing,+      status = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      userContextPolicy = Prelude.Nothing,+      userGroupResolutionConfiguration = Prelude.Nothing,+      userTokenConfigurations = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | For Enterprise Edition indexes, you can choose to use additional+-- capacity to meet the needs of your application. This contains the+-- capacity units used for the index. A query or document storage capacity+-- of zero indicates that the index is using the default capacity. For more+-- information on the default capacity for an index and adjusting this, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/adjusting-capacity.html Adjusting capacity>.+describeIndexResponse_capacityUnits :: Lens.Lens' DescribeIndexResponse (Prelude.Maybe CapacityUnitsConfiguration)+describeIndexResponse_capacityUnits = Lens.lens (\DescribeIndexResponse' {capacityUnits} -> capacityUnits) (\s@DescribeIndexResponse' {} a -> s {capacityUnits = a} :: DescribeIndexResponse)++-- | The Unix datetime that the index was created.+describeIndexResponse_createdAt :: Lens.Lens' DescribeIndexResponse (Prelude.Maybe Prelude.UTCTime)+describeIndexResponse_createdAt = Lens.lens (\DescribeIndexResponse' {createdAt} -> createdAt) (\s@DescribeIndexResponse' {} a -> s {createdAt = a} :: DescribeIndexResponse) Prelude.. Lens.mapping Data._Time++-- | The description for the index.+describeIndexResponse_description :: Lens.Lens' DescribeIndexResponse (Prelude.Maybe Prelude.Text)+describeIndexResponse_description = Lens.lens (\DescribeIndexResponse' {description} -> description) (\s@DescribeIndexResponse' {} a -> s {description = a} :: DescribeIndexResponse)++-- | Configuration information for document metadata or fields. Document+-- metadata are fields or attributes associated with your documents. For+-- example, the company department name associated with each document.+describeIndexResponse_documentMetadataConfigurations :: Lens.Lens' DescribeIndexResponse (Prelude.Maybe [DocumentMetadataConfiguration])+describeIndexResponse_documentMetadataConfigurations = Lens.lens (\DescribeIndexResponse' {documentMetadataConfigurations} -> documentMetadataConfigurations) (\s@DescribeIndexResponse' {} a -> s {documentMetadataConfigurations = a} :: DescribeIndexResponse) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Kendra edition used for the index. You decide the edition+-- when you create the index.+describeIndexResponse_edition :: Lens.Lens' DescribeIndexResponse (Prelude.Maybe IndexEdition)+describeIndexResponse_edition = Lens.lens (\DescribeIndexResponse' {edition} -> edition) (\s@DescribeIndexResponse' {} a -> s {edition = a} :: DescribeIndexResponse)++-- | When the @Status@ field value is @FAILED@, the @ErrorMessage@ field+-- contains a message that explains why.+describeIndexResponse_errorMessage :: Lens.Lens' DescribeIndexResponse (Prelude.Maybe Prelude.Text)+describeIndexResponse_errorMessage = Lens.lens (\DescribeIndexResponse' {errorMessage} -> errorMessage) (\s@DescribeIndexResponse' {} a -> s {errorMessage = a} :: DescribeIndexResponse)++-- | The identifier of the index.+describeIndexResponse_id :: Lens.Lens' DescribeIndexResponse (Prelude.Maybe Prelude.Text)+describeIndexResponse_id = Lens.lens (\DescribeIndexResponse' {id} -> id) (\s@DescribeIndexResponse' {} a -> s {id = a} :: DescribeIndexResponse)++-- | Provides information about the number of FAQ questions and answers and+-- the number of text documents indexed.+describeIndexResponse_indexStatistics :: Lens.Lens' DescribeIndexResponse (Prelude.Maybe IndexStatistics)+describeIndexResponse_indexStatistics = Lens.lens (\DescribeIndexResponse' {indexStatistics} -> indexStatistics) (\s@DescribeIndexResponse' {} a -> s {indexStatistics = a} :: DescribeIndexResponse)++-- | The name of the index.+describeIndexResponse_name :: Lens.Lens' DescribeIndexResponse (Prelude.Maybe Prelude.Text)+describeIndexResponse_name = Lens.lens (\DescribeIndexResponse' {name} -> name) (\s@DescribeIndexResponse' {} a -> s {name = a} :: DescribeIndexResponse)++-- | The Amazon Resource Name (ARN) of the IAM role that gives Amazon Kendra+-- permission to write to your Amazon Cloudwatch logs.+describeIndexResponse_roleArn :: Lens.Lens' DescribeIndexResponse (Prelude.Maybe Prelude.Text)+describeIndexResponse_roleArn = Lens.lens (\DescribeIndexResponse' {roleArn} -> roleArn) (\s@DescribeIndexResponse' {} a -> s {roleArn = a} :: DescribeIndexResponse)++-- | The identifier of the KMScustomer master key (CMK) that is used to+-- encrypt your data. Amazon Kendra doesn\'t support asymmetric CMKs.+describeIndexResponse_serverSideEncryptionConfiguration :: Lens.Lens' DescribeIndexResponse (Prelude.Maybe ServerSideEncryptionConfiguration)+describeIndexResponse_serverSideEncryptionConfiguration = Lens.lens (\DescribeIndexResponse' {serverSideEncryptionConfiguration} -> serverSideEncryptionConfiguration) (\s@DescribeIndexResponse' {} a -> s {serverSideEncryptionConfiguration = a} :: DescribeIndexResponse)++-- | The current status of the index. When the value is @ACTIVE@, the index+-- is ready for use. If the @Status@ field value is @FAILED@, the+-- @ErrorMessage@ field contains a message that explains why.+describeIndexResponse_status :: Lens.Lens' DescribeIndexResponse (Prelude.Maybe IndexStatus)+describeIndexResponse_status = Lens.lens (\DescribeIndexResponse' {status} -> status) (\s@DescribeIndexResponse' {} a -> s {status = a} :: DescribeIndexResponse)++-- | The Unix datetime that the index was last updated.+describeIndexResponse_updatedAt :: Lens.Lens' DescribeIndexResponse (Prelude.Maybe Prelude.UTCTime)+describeIndexResponse_updatedAt = Lens.lens (\DescribeIndexResponse' {updatedAt} -> updatedAt) (\s@DescribeIndexResponse' {} a -> s {updatedAt = a} :: DescribeIndexResponse) Prelude.. Lens.mapping Data._Time++-- | The user context policy for the Amazon Kendra index.+describeIndexResponse_userContextPolicy :: Lens.Lens' DescribeIndexResponse (Prelude.Maybe UserContextPolicy)+describeIndexResponse_userContextPolicy = Lens.lens (\DescribeIndexResponse' {userContextPolicy} -> userContextPolicy) (\s@DescribeIndexResponse' {} a -> s {userContextPolicy = a} :: DescribeIndexResponse)++-- | Whether you have enabled the configuration for fetching access levels of+-- groups and users from an IAM Identity Center (successor to Single+-- Sign-On) identity source.+describeIndexResponse_userGroupResolutionConfiguration :: Lens.Lens' DescribeIndexResponse (Prelude.Maybe UserGroupResolutionConfiguration)+describeIndexResponse_userGroupResolutionConfiguration = Lens.lens (\DescribeIndexResponse' {userGroupResolutionConfiguration} -> userGroupResolutionConfiguration) (\s@DescribeIndexResponse' {} a -> s {userGroupResolutionConfiguration = a} :: DescribeIndexResponse)++-- | The user token configuration for the Amazon Kendra index.+describeIndexResponse_userTokenConfigurations :: Lens.Lens' DescribeIndexResponse (Prelude.Maybe [UserTokenConfiguration])+describeIndexResponse_userTokenConfigurations = Lens.lens (\DescribeIndexResponse' {userTokenConfigurations} -> userTokenConfigurations) (\s@DescribeIndexResponse' {} a -> s {userTokenConfigurations = a} :: DescribeIndexResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeIndexResponse_httpStatus :: Lens.Lens' DescribeIndexResponse Prelude.Int+describeIndexResponse_httpStatus = Lens.lens (\DescribeIndexResponse' {httpStatus} -> httpStatus) (\s@DescribeIndexResponse' {} a -> s {httpStatus = a} :: DescribeIndexResponse)++instance Prelude.NFData DescribeIndexResponse where+  rnf DescribeIndexResponse' {..} =+    Prelude.rnf capacityUnits+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf documentMetadataConfigurations+      `Prelude.seq` Prelude.rnf edition+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf indexStatistics+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf serverSideEncryptionConfiguration+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf userContextPolicy+      `Prelude.seq` Prelude.rnf+        userGroupResolutionConfiguration+      `Prelude.seq` Prelude.rnf userTokenConfigurations+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/DescribePrincipalMapping.hs view
@@ -0,0 +1,313 @@+{-# 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.Kendra.DescribePrincipalMapping+-- 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 processing of @PUT@ and @DELETE@ actions for mapping users+-- to their groups. This includes information on the status of actions+-- currently processing or yet to be processed, when actions were last+-- updated, when actions were received by Amazon Kendra, the latest action+-- that should process and apply after other actions, and useful error+-- messages if an action could not be processed.+--+-- @DescribePrincipalMapping@ is currently not supported in the Amazon Web+-- Services GovCloud (US-West) region.+module Amazonka.Kendra.DescribePrincipalMapping+  ( -- * Creating a Request+    DescribePrincipalMapping (..),+    newDescribePrincipalMapping,++    -- * Request Lenses+    describePrincipalMapping_dataSourceId,+    describePrincipalMapping_indexId,+    describePrincipalMapping_groupId,++    -- * Destructuring the Response+    DescribePrincipalMappingResponse (..),+    newDescribePrincipalMappingResponse,++    -- * Response Lenses+    describePrincipalMappingResponse_dataSourceId,+    describePrincipalMappingResponse_groupId,+    describePrincipalMappingResponse_groupOrderingIdSummaries,+    describePrincipalMappingResponse_indexId,+    describePrincipalMappingResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribePrincipalMapping' smart constructor.+data DescribePrincipalMapping = DescribePrincipalMapping'+  { -- | The identifier of the data source to check the processing of @PUT@ and+    -- @DELETE@ actions for mapping users to their groups.+    dataSourceId :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the index required to check the processing of @PUT@+    -- and @DELETE@ actions for mapping users to their groups.+    indexId :: Prelude.Text,+    -- | The identifier of the group required to check the processing of @PUT@+    -- and @DELETE@ actions for mapping users to their groups.+    groupId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribePrincipalMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSourceId', 'describePrincipalMapping_dataSourceId' - The identifier of the data source to check the processing of @PUT@ and+-- @DELETE@ actions for mapping users to their groups.+--+-- 'indexId', 'describePrincipalMapping_indexId' - The identifier of the index required to check the processing of @PUT@+-- and @DELETE@ actions for mapping users to their groups.+--+-- 'groupId', 'describePrincipalMapping_groupId' - The identifier of the group required to check the processing of @PUT@+-- and @DELETE@ actions for mapping users to their groups.+newDescribePrincipalMapping ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'groupId'+  Prelude.Text ->+  DescribePrincipalMapping+newDescribePrincipalMapping pIndexId_ pGroupId_ =+  DescribePrincipalMapping'+    { dataSourceId =+        Prelude.Nothing,+      indexId = pIndexId_,+      groupId = pGroupId_+    }++-- | The identifier of the data source to check the processing of @PUT@ and+-- @DELETE@ actions for mapping users to their groups.+describePrincipalMapping_dataSourceId :: Lens.Lens' DescribePrincipalMapping (Prelude.Maybe Prelude.Text)+describePrincipalMapping_dataSourceId = Lens.lens (\DescribePrincipalMapping' {dataSourceId} -> dataSourceId) (\s@DescribePrincipalMapping' {} a -> s {dataSourceId = a} :: DescribePrincipalMapping)++-- | The identifier of the index required to check the processing of @PUT@+-- and @DELETE@ actions for mapping users to their groups.+describePrincipalMapping_indexId :: Lens.Lens' DescribePrincipalMapping Prelude.Text+describePrincipalMapping_indexId = Lens.lens (\DescribePrincipalMapping' {indexId} -> indexId) (\s@DescribePrincipalMapping' {} a -> s {indexId = a} :: DescribePrincipalMapping)++-- | The identifier of the group required to check the processing of @PUT@+-- and @DELETE@ actions for mapping users to their groups.+describePrincipalMapping_groupId :: Lens.Lens' DescribePrincipalMapping Prelude.Text+describePrincipalMapping_groupId = Lens.lens (\DescribePrincipalMapping' {groupId} -> groupId) (\s@DescribePrincipalMapping' {} a -> s {groupId = a} :: DescribePrincipalMapping)++instance Core.AWSRequest DescribePrincipalMapping where+  type+    AWSResponse DescribePrincipalMapping =+      DescribePrincipalMappingResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribePrincipalMappingResponse'+            Prelude.<$> (x Data..?> "DataSourceId")+            Prelude.<*> (x Data..?> "GroupId")+            Prelude.<*> ( x+                            Data..?> "GroupOrderingIdSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "IndexId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribePrincipalMapping where+  hashWithSalt _salt DescribePrincipalMapping' {..} =+    _salt+      `Prelude.hashWithSalt` dataSourceId+      `Prelude.hashWithSalt` indexId+      `Prelude.hashWithSalt` groupId++instance Prelude.NFData DescribePrincipalMapping where+  rnf DescribePrincipalMapping' {..} =+    Prelude.rnf dataSourceId+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf groupId++instance Data.ToHeaders DescribePrincipalMapping where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DescribePrincipalMapping" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribePrincipalMapping where+  toJSON DescribePrincipalMapping' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataSourceId" Data..=) Prelude.<$> dataSourceId,+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("GroupId" Data..= groupId)+          ]+      )++instance Data.ToPath DescribePrincipalMapping where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribePrincipalMapping where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribePrincipalMappingResponse' smart constructor.+data DescribePrincipalMappingResponse = DescribePrincipalMappingResponse'+  { -- | Shows the identifier of the data source to see information on the+    -- processing of @PUT@ and @DELETE@ actions for mapping users to their+    -- groups.+    dataSourceId :: Prelude.Maybe Prelude.Text,+    -- | Shows the identifier of the group to see information on the processing+    -- of @PUT@ and @DELETE@ actions for mapping users to their groups.+    groupId :: Prelude.Maybe Prelude.Text,+    -- | Shows the following information on the processing of @PUT@ and @DELETE@+    -- actions for mapping users to their groups:+    --+    -- -   Status – the status can be either @PROCESSING@, @SUCCEEDED@,+    --     @DELETING@, @DELETED@, or @FAILED@.+    --+    -- -   Last updated – the last date-time an action was updated.+    --+    -- -   Received – the last date-time an action was received or submitted.+    --+    -- -   Ordering ID – the latest action that should process and apply after+    --     other actions.+    --+    -- -   Failure reason – the reason an action could not be processed.+    groupOrderingIdSummaries :: Prelude.Maybe [GroupOrderingIdSummary],+    -- | Shows the identifier of the index to see information on the processing+    -- of @PUT@ and @DELETE@ actions for mapping users to their groups.+    indexId :: 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 'DescribePrincipalMappingResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSourceId', 'describePrincipalMappingResponse_dataSourceId' - Shows the identifier of the data source to see information on the+-- processing of @PUT@ and @DELETE@ actions for mapping users to their+-- groups.+--+-- 'groupId', 'describePrincipalMappingResponse_groupId' - Shows the identifier of the group to see information on the processing+-- of @PUT@ and @DELETE@ actions for mapping users to their groups.+--+-- 'groupOrderingIdSummaries', 'describePrincipalMappingResponse_groupOrderingIdSummaries' - Shows the following information on the processing of @PUT@ and @DELETE@+-- actions for mapping users to their groups:+--+-- -   Status – the status can be either @PROCESSING@, @SUCCEEDED@,+--     @DELETING@, @DELETED@, or @FAILED@.+--+-- -   Last updated – the last date-time an action was updated.+--+-- -   Received – the last date-time an action was received or submitted.+--+-- -   Ordering ID – the latest action that should process and apply after+--     other actions.+--+-- -   Failure reason – the reason an action could not be processed.+--+-- 'indexId', 'describePrincipalMappingResponse_indexId' - Shows the identifier of the index to see information on the processing+-- of @PUT@ and @DELETE@ actions for mapping users to their groups.+--+-- 'httpStatus', 'describePrincipalMappingResponse_httpStatus' - The response's http status code.+newDescribePrincipalMappingResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribePrincipalMappingResponse+newDescribePrincipalMappingResponse pHttpStatus_ =+  DescribePrincipalMappingResponse'+    { dataSourceId =+        Prelude.Nothing,+      groupId = Prelude.Nothing,+      groupOrderingIdSummaries =+        Prelude.Nothing,+      indexId = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Shows the identifier of the data source to see information on the+-- processing of @PUT@ and @DELETE@ actions for mapping users to their+-- groups.+describePrincipalMappingResponse_dataSourceId :: Lens.Lens' DescribePrincipalMappingResponse (Prelude.Maybe Prelude.Text)+describePrincipalMappingResponse_dataSourceId = Lens.lens (\DescribePrincipalMappingResponse' {dataSourceId} -> dataSourceId) (\s@DescribePrincipalMappingResponse' {} a -> s {dataSourceId = a} :: DescribePrincipalMappingResponse)++-- | Shows the identifier of the group to see information on the processing+-- of @PUT@ and @DELETE@ actions for mapping users to their groups.+describePrincipalMappingResponse_groupId :: Lens.Lens' DescribePrincipalMappingResponse (Prelude.Maybe Prelude.Text)+describePrincipalMappingResponse_groupId = Lens.lens (\DescribePrincipalMappingResponse' {groupId} -> groupId) (\s@DescribePrincipalMappingResponse' {} a -> s {groupId = a} :: DescribePrincipalMappingResponse)++-- | Shows the following information on the processing of @PUT@ and @DELETE@+-- actions for mapping users to their groups:+--+-- -   Status – the status can be either @PROCESSING@, @SUCCEEDED@,+--     @DELETING@, @DELETED@, or @FAILED@.+--+-- -   Last updated – the last date-time an action was updated.+--+-- -   Received – the last date-time an action was received or submitted.+--+-- -   Ordering ID – the latest action that should process and apply after+--     other actions.+--+-- -   Failure reason – the reason an action could not be processed.+describePrincipalMappingResponse_groupOrderingIdSummaries :: Lens.Lens' DescribePrincipalMappingResponse (Prelude.Maybe [GroupOrderingIdSummary])+describePrincipalMappingResponse_groupOrderingIdSummaries = Lens.lens (\DescribePrincipalMappingResponse' {groupOrderingIdSummaries} -> groupOrderingIdSummaries) (\s@DescribePrincipalMappingResponse' {} a -> s {groupOrderingIdSummaries = a} :: DescribePrincipalMappingResponse) Prelude.. Lens.mapping Lens.coerced++-- | Shows the identifier of the index to see information on the processing+-- of @PUT@ and @DELETE@ actions for mapping users to their groups.+describePrincipalMappingResponse_indexId :: Lens.Lens' DescribePrincipalMappingResponse (Prelude.Maybe Prelude.Text)+describePrincipalMappingResponse_indexId = Lens.lens (\DescribePrincipalMappingResponse' {indexId} -> indexId) (\s@DescribePrincipalMappingResponse' {} a -> s {indexId = a} :: DescribePrincipalMappingResponse)++-- | The response's http status code.+describePrincipalMappingResponse_httpStatus :: Lens.Lens' DescribePrincipalMappingResponse Prelude.Int+describePrincipalMappingResponse_httpStatus = Lens.lens (\DescribePrincipalMappingResponse' {httpStatus} -> httpStatus) (\s@DescribePrincipalMappingResponse' {} a -> s {httpStatus = a} :: DescribePrincipalMappingResponse)++instance+  Prelude.NFData+    DescribePrincipalMappingResponse+  where+  rnf DescribePrincipalMappingResponse' {..} =+    Prelude.rnf dataSourceId+      `Prelude.seq` Prelude.rnf groupId+      `Prelude.seq` Prelude.rnf groupOrderingIdSummaries+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/DescribeQuerySuggestionsBlockList.hs view
@@ -0,0 +1,393 @@+{-# 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.Kendra.DescribeQuerySuggestionsBlockList+-- 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 block list used for query suggestions for an+-- index.+--+-- This is used to check the current settings that are applied to a block+-- list.+--+-- @DescribeQuerySuggestionsBlockList@ is currently not supported in the+-- Amazon Web Services GovCloud (US-West) region.+module Amazonka.Kendra.DescribeQuerySuggestionsBlockList+  ( -- * Creating a Request+    DescribeQuerySuggestionsBlockList (..),+    newDescribeQuerySuggestionsBlockList,++    -- * Request Lenses+    describeQuerySuggestionsBlockList_indexId,+    describeQuerySuggestionsBlockList_id,++    -- * Destructuring the Response+    DescribeQuerySuggestionsBlockListResponse (..),+    newDescribeQuerySuggestionsBlockListResponse,++    -- * Response Lenses+    describeQuerySuggestionsBlockListResponse_createdAt,+    describeQuerySuggestionsBlockListResponse_description,+    describeQuerySuggestionsBlockListResponse_errorMessage,+    describeQuerySuggestionsBlockListResponse_fileSizeBytes,+    describeQuerySuggestionsBlockListResponse_id,+    describeQuerySuggestionsBlockListResponse_indexId,+    describeQuerySuggestionsBlockListResponse_itemCount,+    describeQuerySuggestionsBlockListResponse_name,+    describeQuerySuggestionsBlockListResponse_roleArn,+    describeQuerySuggestionsBlockListResponse_sourceS3Path,+    describeQuerySuggestionsBlockListResponse_status,+    describeQuerySuggestionsBlockListResponse_updatedAt,+    describeQuerySuggestionsBlockListResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeQuerySuggestionsBlockList' smart constructor.+data DescribeQuerySuggestionsBlockList = DescribeQuerySuggestionsBlockList'+  { -- | The identifier of the index for the block list.+    indexId :: Prelude.Text,+    -- | The identifier of the block list you want to get information on.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeQuerySuggestionsBlockList' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'indexId', 'describeQuerySuggestionsBlockList_indexId' - The identifier of the index for the block list.+--+-- 'id', 'describeQuerySuggestionsBlockList_id' - The identifier of the block list you want to get information on.+newDescribeQuerySuggestionsBlockList ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  DescribeQuerySuggestionsBlockList+newDescribeQuerySuggestionsBlockList pIndexId_ pId_ =+  DescribeQuerySuggestionsBlockList'+    { indexId =+        pIndexId_,+      id = pId_+    }++-- | The identifier of the index for the block list.+describeQuerySuggestionsBlockList_indexId :: Lens.Lens' DescribeQuerySuggestionsBlockList Prelude.Text+describeQuerySuggestionsBlockList_indexId = Lens.lens (\DescribeQuerySuggestionsBlockList' {indexId} -> indexId) (\s@DescribeQuerySuggestionsBlockList' {} a -> s {indexId = a} :: DescribeQuerySuggestionsBlockList)++-- | The identifier of the block list you want to get information on.+describeQuerySuggestionsBlockList_id :: Lens.Lens' DescribeQuerySuggestionsBlockList Prelude.Text+describeQuerySuggestionsBlockList_id = Lens.lens (\DescribeQuerySuggestionsBlockList' {id} -> id) (\s@DescribeQuerySuggestionsBlockList' {} a -> s {id = a} :: DescribeQuerySuggestionsBlockList)++instance+  Core.AWSRequest+    DescribeQuerySuggestionsBlockList+  where+  type+    AWSResponse DescribeQuerySuggestionsBlockList =+      DescribeQuerySuggestionsBlockListResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeQuerySuggestionsBlockListResponse'+            Prelude.<$> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "Description")+            Prelude.<*> (x Data..?> "ErrorMessage")+            Prelude.<*> (x Data..?> "FileSizeBytes")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "IndexId")+            Prelude.<*> (x Data..?> "ItemCount")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "RoleArn")+            Prelude.<*> (x Data..?> "SourceS3Path")+            Prelude.<*> (x Data..?> "Status")+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeQuerySuggestionsBlockList+  where+  hashWithSalt+    _salt+    DescribeQuerySuggestionsBlockList' {..} =+      _salt+        `Prelude.hashWithSalt` indexId+        `Prelude.hashWithSalt` id++instance+  Prelude.NFData+    DescribeQuerySuggestionsBlockList+  where+  rnf DescribeQuerySuggestionsBlockList' {..} =+    Prelude.rnf indexId `Prelude.seq` Prelude.rnf id++instance+  Data.ToHeaders+    DescribeQuerySuggestionsBlockList+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DescribeQuerySuggestionsBlockList" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    DescribeQuerySuggestionsBlockList+  where+  toJSON DescribeQuerySuggestionsBlockList' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("Id" Data..= id)+          ]+      )++instance+  Data.ToPath+    DescribeQuerySuggestionsBlockList+  where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    DescribeQuerySuggestionsBlockList+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeQuerySuggestionsBlockListResponse' smart constructor.+data DescribeQuerySuggestionsBlockListResponse = DescribeQuerySuggestionsBlockListResponse'+  { -- | The date-time a block list for query suggestions was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The description for the block list.+    description :: Prelude.Maybe Prelude.Text,+    -- | The error message containing details if there are issues processing the+    -- block list.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The current size of the block list text file in S3.+    fileSizeBytes :: Prelude.Maybe Prelude.Integer,+    -- | The identifier of the block list.+    id :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the index for the block list.+    indexId :: Prelude.Maybe Prelude.Text,+    -- | The current number of valid, non-empty words or phrases in the block+    -- list text file.+    itemCount :: Prelude.Maybe Prelude.Int,+    -- | The name of the block list.+    name :: Prelude.Maybe Prelude.Text,+    -- | The IAM (Identity and Access Management) role used by Amazon Kendra to+    -- access the block list text file in S3.+    --+    -- The role needs S3 read permissions to your file in S3 and needs to give+    -- STS (Security Token Service) assume role permissions to Amazon Kendra.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | Shows the current S3 path to your block list text file in your S3+    -- bucket.+    --+    -- Each block word or phrase should be on a separate line in a text file.+    --+    -- For information on the current quota limits for block lists, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas for Amazon Kendra>.+    sourceS3Path :: Prelude.Maybe S3Path,+    -- | The current status of the block list. When the value is @ACTIVE@, the+    -- block list is ready for use.+    status :: Prelude.Maybe QuerySuggestionsBlockListStatus,+    -- | The date-time a block list for query suggestions was last updated.+    updatedAt :: Prelude.Maybe Data.POSIX,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeQuerySuggestionsBlockListResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdAt', 'describeQuerySuggestionsBlockListResponse_createdAt' - The date-time a block list for query suggestions was created.+--+-- 'description', 'describeQuerySuggestionsBlockListResponse_description' - The description for the block list.+--+-- 'errorMessage', 'describeQuerySuggestionsBlockListResponse_errorMessage' - The error message containing details if there are issues processing the+-- block list.+--+-- 'fileSizeBytes', 'describeQuerySuggestionsBlockListResponse_fileSizeBytes' - The current size of the block list text file in S3.+--+-- 'id', 'describeQuerySuggestionsBlockListResponse_id' - The identifier of the block list.+--+-- 'indexId', 'describeQuerySuggestionsBlockListResponse_indexId' - The identifier of the index for the block list.+--+-- 'itemCount', 'describeQuerySuggestionsBlockListResponse_itemCount' - The current number of valid, non-empty words or phrases in the block+-- list text file.+--+-- 'name', 'describeQuerySuggestionsBlockListResponse_name' - The name of the block list.+--+-- 'roleArn', 'describeQuerySuggestionsBlockListResponse_roleArn' - The IAM (Identity and Access Management) role used by Amazon Kendra to+-- access the block list text file in S3.+--+-- The role needs S3 read permissions to your file in S3 and needs to give+-- STS (Security Token Service) assume role permissions to Amazon Kendra.+--+-- 'sourceS3Path', 'describeQuerySuggestionsBlockListResponse_sourceS3Path' - Shows the current S3 path to your block list text file in your S3+-- bucket.+--+-- Each block word or phrase should be on a separate line in a text file.+--+-- For information on the current quota limits for block lists, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas for Amazon Kendra>.+--+-- 'status', 'describeQuerySuggestionsBlockListResponse_status' - The current status of the block list. When the value is @ACTIVE@, the+-- block list is ready for use.+--+-- 'updatedAt', 'describeQuerySuggestionsBlockListResponse_updatedAt' - The date-time a block list for query suggestions was last updated.+--+-- 'httpStatus', 'describeQuerySuggestionsBlockListResponse_httpStatus' - The response's http status code.+newDescribeQuerySuggestionsBlockListResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeQuerySuggestionsBlockListResponse+newDescribeQuerySuggestionsBlockListResponse+  pHttpStatus_ =+    DescribeQuerySuggestionsBlockListResponse'+      { createdAt =+          Prelude.Nothing,+        description = Prelude.Nothing,+        errorMessage = Prelude.Nothing,+        fileSizeBytes = Prelude.Nothing,+        id = Prelude.Nothing,+        indexId = Prelude.Nothing,+        itemCount = Prelude.Nothing,+        name = Prelude.Nothing,+        roleArn = Prelude.Nothing,+        sourceS3Path = Prelude.Nothing,+        status = Prelude.Nothing,+        updatedAt = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | The date-time a block list for query suggestions was created.+describeQuerySuggestionsBlockListResponse_createdAt :: Lens.Lens' DescribeQuerySuggestionsBlockListResponse (Prelude.Maybe Prelude.UTCTime)+describeQuerySuggestionsBlockListResponse_createdAt = Lens.lens (\DescribeQuerySuggestionsBlockListResponse' {createdAt} -> createdAt) (\s@DescribeQuerySuggestionsBlockListResponse' {} a -> s {createdAt = a} :: DescribeQuerySuggestionsBlockListResponse) Prelude.. Lens.mapping Data._Time++-- | The description for the block list.+describeQuerySuggestionsBlockListResponse_description :: Lens.Lens' DescribeQuerySuggestionsBlockListResponse (Prelude.Maybe Prelude.Text)+describeQuerySuggestionsBlockListResponse_description = Lens.lens (\DescribeQuerySuggestionsBlockListResponse' {description} -> description) (\s@DescribeQuerySuggestionsBlockListResponse' {} a -> s {description = a} :: DescribeQuerySuggestionsBlockListResponse)++-- | The error message containing details if there are issues processing the+-- block list.+describeQuerySuggestionsBlockListResponse_errorMessage :: Lens.Lens' DescribeQuerySuggestionsBlockListResponse (Prelude.Maybe Prelude.Text)+describeQuerySuggestionsBlockListResponse_errorMessage = Lens.lens (\DescribeQuerySuggestionsBlockListResponse' {errorMessage} -> errorMessage) (\s@DescribeQuerySuggestionsBlockListResponse' {} a -> s {errorMessage = a} :: DescribeQuerySuggestionsBlockListResponse)++-- | The current size of the block list text file in S3.+describeQuerySuggestionsBlockListResponse_fileSizeBytes :: Lens.Lens' DescribeQuerySuggestionsBlockListResponse (Prelude.Maybe Prelude.Integer)+describeQuerySuggestionsBlockListResponse_fileSizeBytes = Lens.lens (\DescribeQuerySuggestionsBlockListResponse' {fileSizeBytes} -> fileSizeBytes) (\s@DescribeQuerySuggestionsBlockListResponse' {} a -> s {fileSizeBytes = a} :: DescribeQuerySuggestionsBlockListResponse)++-- | The identifier of the block list.+describeQuerySuggestionsBlockListResponse_id :: Lens.Lens' DescribeQuerySuggestionsBlockListResponse (Prelude.Maybe Prelude.Text)+describeQuerySuggestionsBlockListResponse_id = Lens.lens (\DescribeQuerySuggestionsBlockListResponse' {id} -> id) (\s@DescribeQuerySuggestionsBlockListResponse' {} a -> s {id = a} :: DescribeQuerySuggestionsBlockListResponse)++-- | The identifier of the index for the block list.+describeQuerySuggestionsBlockListResponse_indexId :: Lens.Lens' DescribeQuerySuggestionsBlockListResponse (Prelude.Maybe Prelude.Text)+describeQuerySuggestionsBlockListResponse_indexId = Lens.lens (\DescribeQuerySuggestionsBlockListResponse' {indexId} -> indexId) (\s@DescribeQuerySuggestionsBlockListResponse' {} a -> s {indexId = a} :: DescribeQuerySuggestionsBlockListResponse)++-- | The current number of valid, non-empty words or phrases in the block+-- list text file.+describeQuerySuggestionsBlockListResponse_itemCount :: Lens.Lens' DescribeQuerySuggestionsBlockListResponse (Prelude.Maybe Prelude.Int)+describeQuerySuggestionsBlockListResponse_itemCount = Lens.lens (\DescribeQuerySuggestionsBlockListResponse' {itemCount} -> itemCount) (\s@DescribeQuerySuggestionsBlockListResponse' {} a -> s {itemCount = a} :: DescribeQuerySuggestionsBlockListResponse)++-- | The name of the block list.+describeQuerySuggestionsBlockListResponse_name :: Lens.Lens' DescribeQuerySuggestionsBlockListResponse (Prelude.Maybe Prelude.Text)+describeQuerySuggestionsBlockListResponse_name = Lens.lens (\DescribeQuerySuggestionsBlockListResponse' {name} -> name) (\s@DescribeQuerySuggestionsBlockListResponse' {} a -> s {name = a} :: DescribeQuerySuggestionsBlockListResponse)++-- | The IAM (Identity and Access Management) role used by Amazon Kendra to+-- access the block list text file in S3.+--+-- The role needs S3 read permissions to your file in S3 and needs to give+-- STS (Security Token Service) assume role permissions to Amazon Kendra.+describeQuerySuggestionsBlockListResponse_roleArn :: Lens.Lens' DescribeQuerySuggestionsBlockListResponse (Prelude.Maybe Prelude.Text)+describeQuerySuggestionsBlockListResponse_roleArn = Lens.lens (\DescribeQuerySuggestionsBlockListResponse' {roleArn} -> roleArn) (\s@DescribeQuerySuggestionsBlockListResponse' {} a -> s {roleArn = a} :: DescribeQuerySuggestionsBlockListResponse)++-- | Shows the current S3 path to your block list text file in your S3+-- bucket.+--+-- Each block word or phrase should be on a separate line in a text file.+--+-- For information on the current quota limits for block lists, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas for Amazon Kendra>.+describeQuerySuggestionsBlockListResponse_sourceS3Path :: Lens.Lens' DescribeQuerySuggestionsBlockListResponse (Prelude.Maybe S3Path)+describeQuerySuggestionsBlockListResponse_sourceS3Path = Lens.lens (\DescribeQuerySuggestionsBlockListResponse' {sourceS3Path} -> sourceS3Path) (\s@DescribeQuerySuggestionsBlockListResponse' {} a -> s {sourceS3Path = a} :: DescribeQuerySuggestionsBlockListResponse)++-- | The current status of the block list. When the value is @ACTIVE@, the+-- block list is ready for use.+describeQuerySuggestionsBlockListResponse_status :: Lens.Lens' DescribeQuerySuggestionsBlockListResponse (Prelude.Maybe QuerySuggestionsBlockListStatus)+describeQuerySuggestionsBlockListResponse_status = Lens.lens (\DescribeQuerySuggestionsBlockListResponse' {status} -> status) (\s@DescribeQuerySuggestionsBlockListResponse' {} a -> s {status = a} :: DescribeQuerySuggestionsBlockListResponse)++-- | The date-time a block list for query suggestions was last updated.+describeQuerySuggestionsBlockListResponse_updatedAt :: Lens.Lens' DescribeQuerySuggestionsBlockListResponse (Prelude.Maybe Prelude.UTCTime)+describeQuerySuggestionsBlockListResponse_updatedAt = Lens.lens (\DescribeQuerySuggestionsBlockListResponse' {updatedAt} -> updatedAt) (\s@DescribeQuerySuggestionsBlockListResponse' {} a -> s {updatedAt = a} :: DescribeQuerySuggestionsBlockListResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+describeQuerySuggestionsBlockListResponse_httpStatus :: Lens.Lens' DescribeQuerySuggestionsBlockListResponse Prelude.Int+describeQuerySuggestionsBlockListResponse_httpStatus = Lens.lens (\DescribeQuerySuggestionsBlockListResponse' {httpStatus} -> httpStatus) (\s@DescribeQuerySuggestionsBlockListResponse' {} a -> s {httpStatus = a} :: DescribeQuerySuggestionsBlockListResponse)++instance+  Prelude.NFData+    DescribeQuerySuggestionsBlockListResponse+  where+  rnf DescribeQuerySuggestionsBlockListResponse' {..} =+    Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf fileSizeBytes+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf itemCount+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf sourceS3Path+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/DescribeQuerySuggestionsConfig.hs view
@@ -0,0 +1,367 @@+{-# 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.Kendra.DescribeQuerySuggestionsConfig+-- 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 on the settings of query suggestions for an index.+--+-- This is used to check the current settings applied to query suggestions.+--+-- @DescribeQuerySuggestionsConfig@ is currently not supported in the+-- Amazon Web Services GovCloud (US-West) region.+module Amazonka.Kendra.DescribeQuerySuggestionsConfig+  ( -- * Creating a Request+    DescribeQuerySuggestionsConfig (..),+    newDescribeQuerySuggestionsConfig,++    -- * Request Lenses+    describeQuerySuggestionsConfig_indexId,++    -- * Destructuring the Response+    DescribeQuerySuggestionsConfigResponse (..),+    newDescribeQuerySuggestionsConfigResponse,++    -- * Response Lenses+    describeQuerySuggestionsConfigResponse_includeQueriesWithoutUserInformation,+    describeQuerySuggestionsConfigResponse_lastClearTime,+    describeQuerySuggestionsConfigResponse_lastSuggestionsBuildTime,+    describeQuerySuggestionsConfigResponse_minimumNumberOfQueryingUsers,+    describeQuerySuggestionsConfigResponse_minimumQueryCount,+    describeQuerySuggestionsConfigResponse_mode,+    describeQuerySuggestionsConfigResponse_queryLogLookBackWindowInDays,+    describeQuerySuggestionsConfigResponse_status,+    describeQuerySuggestionsConfigResponse_totalSuggestionsCount,+    describeQuerySuggestionsConfigResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeQuerySuggestionsConfig' smart constructor.+data DescribeQuerySuggestionsConfig = DescribeQuerySuggestionsConfig'+  { -- | The identifier of the index with query suggestions that you want to get+    -- information on.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeQuerySuggestionsConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'indexId', 'describeQuerySuggestionsConfig_indexId' - The identifier of the index with query suggestions that you want to get+-- information on.+newDescribeQuerySuggestionsConfig ::+  -- | 'indexId'+  Prelude.Text ->+  DescribeQuerySuggestionsConfig+newDescribeQuerySuggestionsConfig pIndexId_ =+  DescribeQuerySuggestionsConfig'+    { indexId =+        pIndexId_+    }++-- | The identifier of the index with query suggestions that you want to get+-- information on.+describeQuerySuggestionsConfig_indexId :: Lens.Lens' DescribeQuerySuggestionsConfig Prelude.Text+describeQuerySuggestionsConfig_indexId = Lens.lens (\DescribeQuerySuggestionsConfig' {indexId} -> indexId) (\s@DescribeQuerySuggestionsConfig' {} a -> s {indexId = a} :: DescribeQuerySuggestionsConfig)++instance+  Core.AWSRequest+    DescribeQuerySuggestionsConfig+  where+  type+    AWSResponse DescribeQuerySuggestionsConfig =+      DescribeQuerySuggestionsConfigResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeQuerySuggestionsConfigResponse'+            Prelude.<$> (x Data..?> "IncludeQueriesWithoutUserInformation")+            Prelude.<*> (x Data..?> "LastClearTime")+            Prelude.<*> (x Data..?> "LastSuggestionsBuildTime")+            Prelude.<*> (x Data..?> "MinimumNumberOfQueryingUsers")+            Prelude.<*> (x Data..?> "MinimumQueryCount")+            Prelude.<*> (x Data..?> "Mode")+            Prelude.<*> (x Data..?> "QueryLogLookBackWindowInDays")+            Prelude.<*> (x Data..?> "Status")+            Prelude.<*> (x Data..?> "TotalSuggestionsCount")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeQuerySuggestionsConfig+  where+  hashWithSalt+    _salt+    DescribeQuerySuggestionsConfig' {..} =+      _salt `Prelude.hashWithSalt` indexId++instance+  Prelude.NFData+    DescribeQuerySuggestionsConfig+  where+  rnf DescribeQuerySuggestionsConfig' {..} =+    Prelude.rnf indexId++instance+  Data.ToHeaders+    DescribeQuerySuggestionsConfig+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DescribeQuerySuggestionsConfig" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeQuerySuggestionsConfig where+  toJSON DescribeQuerySuggestionsConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("IndexId" Data..= indexId)]+      )++instance Data.ToPath DescribeQuerySuggestionsConfig where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeQuerySuggestionsConfig where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeQuerySuggestionsConfigResponse' smart constructor.+data DescribeQuerySuggestionsConfigResponse = DescribeQuerySuggestionsConfigResponse'+  { -- | @TRUE@ to use all queries, otherwise use only queries that include user+    -- information to generate the query suggestions.+    includeQueriesWithoutUserInformation :: Prelude.Maybe Prelude.Bool,+    -- | The date-time query suggestions for an index was last cleared.+    --+    -- After you clear suggestions, Amazon Kendra learns new suggestions based+    -- on new queries added to the query log from the time you cleared+    -- suggestions. Amazon Kendra only considers re-occurences of a query from+    -- the time you cleared suggestions.+    lastClearTime :: Prelude.Maybe Data.POSIX,+    -- | The date-time query suggestions for an index was last updated.+    lastSuggestionsBuildTime :: Prelude.Maybe Data.POSIX,+    -- | The minimum number of unique users who must search a query in order for+    -- the query to be eligible to suggest to your users.+    minimumNumberOfQueryingUsers :: Prelude.Maybe Prelude.Natural,+    -- | The minimum number of times a query must be searched in order for the+    -- query to be eligible to suggest to your users.+    minimumQueryCount :: Prelude.Maybe Prelude.Natural,+    -- | Whether query suggestions are currently in @ENABLED@ mode or+    -- @LEARN_ONLY@ mode.+    --+    -- By default, Amazon Kendra enables query suggestions.@LEARN_ONLY@ turns+    -- off query suggestions for your users. You can change the mode using the+    -- <https://docs.aws.amazon.com/kendra/latest/dg/API_UpdateQuerySuggestionsConfig.html UpdateQuerySuggestionsConfig>+    -- API.+    mode :: Prelude.Maybe Mode,+    -- | How recent your queries are in your query log time window (in days).+    queryLogLookBackWindowInDays :: Prelude.Maybe Prelude.Int,+    -- | Whether the status of query suggestions settings is currently @ACTIVE@+    -- or @UPDATING@.+    --+    -- Active means the current settings apply and Updating means your changed+    -- settings are in the process of applying.+    status :: Prelude.Maybe QuerySuggestionsStatus,+    -- | The current total count of query suggestions for an index.+    --+    -- This count can change when you update your query suggestions settings,+    -- if you filter out certain queries from suggestions using a block list,+    -- and as the query log accumulates more queries for Amazon Kendra to learn+    -- from.+    totalSuggestionsCount :: Prelude.Maybe Prelude.Int,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeQuerySuggestionsConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'includeQueriesWithoutUserInformation', 'describeQuerySuggestionsConfigResponse_includeQueriesWithoutUserInformation' - @TRUE@ to use all queries, otherwise use only queries that include user+-- information to generate the query suggestions.+--+-- 'lastClearTime', 'describeQuerySuggestionsConfigResponse_lastClearTime' - The date-time query suggestions for an index was last cleared.+--+-- After you clear suggestions, Amazon Kendra learns new suggestions based+-- on new queries added to the query log from the time you cleared+-- suggestions. Amazon Kendra only considers re-occurences of a query from+-- the time you cleared suggestions.+--+-- 'lastSuggestionsBuildTime', 'describeQuerySuggestionsConfigResponse_lastSuggestionsBuildTime' - The date-time query suggestions for an index was last updated.+--+-- 'minimumNumberOfQueryingUsers', 'describeQuerySuggestionsConfigResponse_minimumNumberOfQueryingUsers' - The minimum number of unique users who must search a query in order for+-- the query to be eligible to suggest to your users.+--+-- 'minimumQueryCount', 'describeQuerySuggestionsConfigResponse_minimumQueryCount' - The minimum number of times a query must be searched in order for the+-- query to be eligible to suggest to your users.+--+-- 'mode', 'describeQuerySuggestionsConfigResponse_mode' - Whether query suggestions are currently in @ENABLED@ mode or+-- @LEARN_ONLY@ mode.+--+-- By default, Amazon Kendra enables query suggestions.@LEARN_ONLY@ turns+-- off query suggestions for your users. You can change the mode using the+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_UpdateQuerySuggestionsConfig.html UpdateQuerySuggestionsConfig>+-- API.+--+-- 'queryLogLookBackWindowInDays', 'describeQuerySuggestionsConfigResponse_queryLogLookBackWindowInDays' - How recent your queries are in your query log time window (in days).+--+-- 'status', 'describeQuerySuggestionsConfigResponse_status' - Whether the status of query suggestions settings is currently @ACTIVE@+-- or @UPDATING@.+--+-- Active means the current settings apply and Updating means your changed+-- settings are in the process of applying.+--+-- 'totalSuggestionsCount', 'describeQuerySuggestionsConfigResponse_totalSuggestionsCount' - The current total count of query suggestions for an index.+--+-- This count can change when you update your query suggestions settings,+-- if you filter out certain queries from suggestions using a block list,+-- and as the query log accumulates more queries for Amazon Kendra to learn+-- from.+--+-- 'httpStatus', 'describeQuerySuggestionsConfigResponse_httpStatus' - The response's http status code.+newDescribeQuerySuggestionsConfigResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeQuerySuggestionsConfigResponse+newDescribeQuerySuggestionsConfigResponse+  pHttpStatus_ =+    DescribeQuerySuggestionsConfigResponse'+      { includeQueriesWithoutUserInformation =+          Prelude.Nothing,+        lastClearTime = Prelude.Nothing,+        lastSuggestionsBuildTime =+          Prelude.Nothing,+        minimumNumberOfQueryingUsers =+          Prelude.Nothing,+        minimumQueryCount = Prelude.Nothing,+        mode = Prelude.Nothing,+        queryLogLookBackWindowInDays =+          Prelude.Nothing,+        status = Prelude.Nothing,+        totalSuggestionsCount =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | @TRUE@ to use all queries, otherwise use only queries that include user+-- information to generate the query suggestions.+describeQuerySuggestionsConfigResponse_includeQueriesWithoutUserInformation :: Lens.Lens' DescribeQuerySuggestionsConfigResponse (Prelude.Maybe Prelude.Bool)+describeQuerySuggestionsConfigResponse_includeQueriesWithoutUserInformation = Lens.lens (\DescribeQuerySuggestionsConfigResponse' {includeQueriesWithoutUserInformation} -> includeQueriesWithoutUserInformation) (\s@DescribeQuerySuggestionsConfigResponse' {} a -> s {includeQueriesWithoutUserInformation = a} :: DescribeQuerySuggestionsConfigResponse)++-- | The date-time query suggestions for an index was last cleared.+--+-- After you clear suggestions, Amazon Kendra learns new suggestions based+-- on new queries added to the query log from the time you cleared+-- suggestions. Amazon Kendra only considers re-occurences of a query from+-- the time you cleared suggestions.+describeQuerySuggestionsConfigResponse_lastClearTime :: Lens.Lens' DescribeQuerySuggestionsConfigResponse (Prelude.Maybe Prelude.UTCTime)+describeQuerySuggestionsConfigResponse_lastClearTime = Lens.lens (\DescribeQuerySuggestionsConfigResponse' {lastClearTime} -> lastClearTime) (\s@DescribeQuerySuggestionsConfigResponse' {} a -> s {lastClearTime = a} :: DescribeQuerySuggestionsConfigResponse) Prelude.. Lens.mapping Data._Time++-- | The date-time query suggestions for an index was last updated.+describeQuerySuggestionsConfigResponse_lastSuggestionsBuildTime :: Lens.Lens' DescribeQuerySuggestionsConfigResponse (Prelude.Maybe Prelude.UTCTime)+describeQuerySuggestionsConfigResponse_lastSuggestionsBuildTime = Lens.lens (\DescribeQuerySuggestionsConfigResponse' {lastSuggestionsBuildTime} -> lastSuggestionsBuildTime) (\s@DescribeQuerySuggestionsConfigResponse' {} a -> s {lastSuggestionsBuildTime = a} :: DescribeQuerySuggestionsConfigResponse) Prelude.. Lens.mapping Data._Time++-- | The minimum number of unique users who must search a query in order for+-- the query to be eligible to suggest to your users.+describeQuerySuggestionsConfigResponse_minimumNumberOfQueryingUsers :: Lens.Lens' DescribeQuerySuggestionsConfigResponse (Prelude.Maybe Prelude.Natural)+describeQuerySuggestionsConfigResponse_minimumNumberOfQueryingUsers = Lens.lens (\DescribeQuerySuggestionsConfigResponse' {minimumNumberOfQueryingUsers} -> minimumNumberOfQueryingUsers) (\s@DescribeQuerySuggestionsConfigResponse' {} a -> s {minimumNumberOfQueryingUsers = a} :: DescribeQuerySuggestionsConfigResponse)++-- | The minimum number of times a query must be searched in order for the+-- query to be eligible to suggest to your users.+describeQuerySuggestionsConfigResponse_minimumQueryCount :: Lens.Lens' DescribeQuerySuggestionsConfigResponse (Prelude.Maybe Prelude.Natural)+describeQuerySuggestionsConfigResponse_minimumQueryCount = Lens.lens (\DescribeQuerySuggestionsConfigResponse' {minimumQueryCount} -> minimumQueryCount) (\s@DescribeQuerySuggestionsConfigResponse' {} a -> s {minimumQueryCount = a} :: DescribeQuerySuggestionsConfigResponse)++-- | Whether query suggestions are currently in @ENABLED@ mode or+-- @LEARN_ONLY@ mode.+--+-- By default, Amazon Kendra enables query suggestions.@LEARN_ONLY@ turns+-- off query suggestions for your users. You can change the mode using the+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_UpdateQuerySuggestionsConfig.html UpdateQuerySuggestionsConfig>+-- API.+describeQuerySuggestionsConfigResponse_mode :: Lens.Lens' DescribeQuerySuggestionsConfigResponse (Prelude.Maybe Mode)+describeQuerySuggestionsConfigResponse_mode = Lens.lens (\DescribeQuerySuggestionsConfigResponse' {mode} -> mode) (\s@DescribeQuerySuggestionsConfigResponse' {} a -> s {mode = a} :: DescribeQuerySuggestionsConfigResponse)++-- | How recent your queries are in your query log time window (in days).+describeQuerySuggestionsConfigResponse_queryLogLookBackWindowInDays :: Lens.Lens' DescribeQuerySuggestionsConfigResponse (Prelude.Maybe Prelude.Int)+describeQuerySuggestionsConfigResponse_queryLogLookBackWindowInDays = Lens.lens (\DescribeQuerySuggestionsConfigResponse' {queryLogLookBackWindowInDays} -> queryLogLookBackWindowInDays) (\s@DescribeQuerySuggestionsConfigResponse' {} a -> s {queryLogLookBackWindowInDays = a} :: DescribeQuerySuggestionsConfigResponse)++-- | Whether the status of query suggestions settings is currently @ACTIVE@+-- or @UPDATING@.+--+-- Active means the current settings apply and Updating means your changed+-- settings are in the process of applying.+describeQuerySuggestionsConfigResponse_status :: Lens.Lens' DescribeQuerySuggestionsConfigResponse (Prelude.Maybe QuerySuggestionsStatus)+describeQuerySuggestionsConfigResponse_status = Lens.lens (\DescribeQuerySuggestionsConfigResponse' {status} -> status) (\s@DescribeQuerySuggestionsConfigResponse' {} a -> s {status = a} :: DescribeQuerySuggestionsConfigResponse)++-- | The current total count of query suggestions for an index.+--+-- This count can change when you update your query suggestions settings,+-- if you filter out certain queries from suggestions using a block list,+-- and as the query log accumulates more queries for Amazon Kendra to learn+-- from.+describeQuerySuggestionsConfigResponse_totalSuggestionsCount :: Lens.Lens' DescribeQuerySuggestionsConfigResponse (Prelude.Maybe Prelude.Int)+describeQuerySuggestionsConfigResponse_totalSuggestionsCount = Lens.lens (\DescribeQuerySuggestionsConfigResponse' {totalSuggestionsCount} -> totalSuggestionsCount) (\s@DescribeQuerySuggestionsConfigResponse' {} a -> s {totalSuggestionsCount = a} :: DescribeQuerySuggestionsConfigResponse)++-- | The response's http status code.+describeQuerySuggestionsConfigResponse_httpStatus :: Lens.Lens' DescribeQuerySuggestionsConfigResponse Prelude.Int+describeQuerySuggestionsConfigResponse_httpStatus = Lens.lens (\DescribeQuerySuggestionsConfigResponse' {httpStatus} -> httpStatus) (\s@DescribeQuerySuggestionsConfigResponse' {} a -> s {httpStatus = a} :: DescribeQuerySuggestionsConfigResponse)++instance+  Prelude.NFData+    DescribeQuerySuggestionsConfigResponse+  where+  rnf DescribeQuerySuggestionsConfigResponse' {..} =+    Prelude.rnf includeQueriesWithoutUserInformation+      `Prelude.seq` Prelude.rnf lastClearTime+      `Prelude.seq` Prelude.rnf lastSuggestionsBuildTime+      `Prelude.seq` Prelude.rnf minimumNumberOfQueryingUsers+      `Prelude.seq` Prelude.rnf minimumQueryCount+      `Prelude.seq` Prelude.rnf mode+      `Prelude.seq` Prelude.rnf queryLogLookBackWindowInDays+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf totalSuggestionsCount+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/DescribeThesaurus.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.Kendra.DescribeThesaurus+-- 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 an existing Amazon Kendra thesaurus.+module Amazonka.Kendra.DescribeThesaurus+  ( -- * Creating a Request+    DescribeThesaurus (..),+    newDescribeThesaurus,++    -- * Request Lenses+    describeThesaurus_id,+    describeThesaurus_indexId,++    -- * Destructuring the Response+    DescribeThesaurusResponse (..),+    newDescribeThesaurusResponse,++    -- * Response Lenses+    describeThesaurusResponse_createdAt,+    describeThesaurusResponse_description,+    describeThesaurusResponse_errorMessage,+    describeThesaurusResponse_fileSizeBytes,+    describeThesaurusResponse_id,+    describeThesaurusResponse_indexId,+    describeThesaurusResponse_name,+    describeThesaurusResponse_roleArn,+    describeThesaurusResponse_sourceS3Path,+    describeThesaurusResponse_status,+    describeThesaurusResponse_synonymRuleCount,+    describeThesaurusResponse_termCount,+    describeThesaurusResponse_updatedAt,+    describeThesaurusResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeThesaurus' smart constructor.+data DescribeThesaurus = DescribeThesaurus'+  { -- | The identifier of the thesaurus you want to get information on.+    id :: Prelude.Text,+    -- | The identifier of the index for the thesaurus.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeThesaurus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'describeThesaurus_id' - The identifier of the thesaurus you want to get information on.+--+-- 'indexId', 'describeThesaurus_indexId' - The identifier of the index for the thesaurus.+newDescribeThesaurus ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  DescribeThesaurus+newDescribeThesaurus pId_ pIndexId_ =+  DescribeThesaurus' {id = pId_, indexId = pIndexId_}++-- | The identifier of the thesaurus you want to get information on.+describeThesaurus_id :: Lens.Lens' DescribeThesaurus Prelude.Text+describeThesaurus_id = Lens.lens (\DescribeThesaurus' {id} -> id) (\s@DescribeThesaurus' {} a -> s {id = a} :: DescribeThesaurus)++-- | The identifier of the index for the thesaurus.+describeThesaurus_indexId :: Lens.Lens' DescribeThesaurus Prelude.Text+describeThesaurus_indexId = Lens.lens (\DescribeThesaurus' {indexId} -> indexId) (\s@DescribeThesaurus' {} a -> s {indexId = a} :: DescribeThesaurus)++instance Core.AWSRequest DescribeThesaurus where+  type+    AWSResponse DescribeThesaurus =+      DescribeThesaurusResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeThesaurusResponse'+            Prelude.<$> (x Data..?> "CreatedAt")+            Prelude.<*> (x Data..?> "Description")+            Prelude.<*> (x Data..?> "ErrorMessage")+            Prelude.<*> (x Data..?> "FileSizeBytes")+            Prelude.<*> (x Data..?> "Id")+            Prelude.<*> (x Data..?> "IndexId")+            Prelude.<*> (x Data..?> "Name")+            Prelude.<*> (x Data..?> "RoleArn")+            Prelude.<*> (x Data..?> "SourceS3Path")+            Prelude.<*> (x Data..?> "Status")+            Prelude.<*> (x Data..?> "SynonymRuleCount")+            Prelude.<*> (x Data..?> "TermCount")+            Prelude.<*> (x Data..?> "UpdatedAt")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DescribeThesaurus where+  hashWithSalt _salt DescribeThesaurus' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData DescribeThesaurus where+  rnf DescribeThesaurus' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders DescribeThesaurus where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DescribeThesaurus" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeThesaurus where+  toJSON DescribeThesaurus' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath DescribeThesaurus where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeThesaurus where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeThesaurusResponse' smart constructor.+data DescribeThesaurusResponse = DescribeThesaurusResponse'+  { -- | The Unix datetime that the thesaurus was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The thesaurus description.+    description :: Prelude.Maybe Prelude.Text,+    -- | When the @Status@ field value is @FAILED@, the @ErrorMessage@ field+    -- provides more information.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The size of the thesaurus file in bytes.+    fileSizeBytes :: Prelude.Maybe Prelude.Integer,+    -- | The identifier of the thesaurus.+    id :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the index for the thesaurus.+    indexId :: Prelude.Maybe Prelude.Text,+    -- | The thesaurus name.+    name :: Prelude.Maybe Prelude.Text,+    -- | An IAM role that gives Amazon Kendra permissions to access thesaurus+    -- file specified in @SourceS3Path@.+    roleArn :: Prelude.Maybe Prelude.Text,+    sourceS3Path :: Prelude.Maybe S3Path,+    -- | The current status of the thesaurus. When the value is @ACTIVE@, queries+    -- are able to use the thesaurus. If the @Status@ field value is @FAILED@,+    -- the @ErrorMessage@ field provides more information.+    --+    -- If the status is @ACTIVE_BUT_UPDATE_FAILED@, it means that Amazon Kendra+    -- could not ingest the new thesaurus file. The old thesaurus file is still+    -- active.+    status :: Prelude.Maybe ThesaurusStatus,+    -- | The number of synonym rules in the thesaurus file.+    synonymRuleCount :: Prelude.Maybe Prelude.Integer,+    -- | The number of unique terms in the thesaurus file. For example, the+    -- synonyms @a,b,c@ and @a=>d@, the term count would be 4.+    termCount :: Prelude.Maybe Prelude.Integer,+    -- | The Unix datetime that the thesaurus was last updated.+    updatedAt :: Prelude.Maybe Data.POSIX,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeThesaurusResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdAt', 'describeThesaurusResponse_createdAt' - The Unix datetime that the thesaurus was created.+--+-- 'description', 'describeThesaurusResponse_description' - The thesaurus description.+--+-- 'errorMessage', 'describeThesaurusResponse_errorMessage' - When the @Status@ field value is @FAILED@, the @ErrorMessage@ field+-- provides more information.+--+-- 'fileSizeBytes', 'describeThesaurusResponse_fileSizeBytes' - The size of the thesaurus file in bytes.+--+-- 'id', 'describeThesaurusResponse_id' - The identifier of the thesaurus.+--+-- 'indexId', 'describeThesaurusResponse_indexId' - The identifier of the index for the thesaurus.+--+-- 'name', 'describeThesaurusResponse_name' - The thesaurus name.+--+-- 'roleArn', 'describeThesaurusResponse_roleArn' - An IAM role that gives Amazon Kendra permissions to access thesaurus+-- file specified in @SourceS3Path@.+--+-- 'sourceS3Path', 'describeThesaurusResponse_sourceS3Path' - Undocumented member.+--+-- 'status', 'describeThesaurusResponse_status' - The current status of the thesaurus. When the value is @ACTIVE@, queries+-- are able to use the thesaurus. If the @Status@ field value is @FAILED@,+-- the @ErrorMessage@ field provides more information.+--+-- If the status is @ACTIVE_BUT_UPDATE_FAILED@, it means that Amazon Kendra+-- could not ingest the new thesaurus file. The old thesaurus file is still+-- active.+--+-- 'synonymRuleCount', 'describeThesaurusResponse_synonymRuleCount' - The number of synonym rules in the thesaurus file.+--+-- 'termCount', 'describeThesaurusResponse_termCount' - The number of unique terms in the thesaurus file. For example, the+-- synonyms @a,b,c@ and @a=>d@, the term count would be 4.+--+-- 'updatedAt', 'describeThesaurusResponse_updatedAt' - The Unix datetime that the thesaurus was last updated.+--+-- 'httpStatus', 'describeThesaurusResponse_httpStatus' - The response's http status code.+newDescribeThesaurusResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeThesaurusResponse+newDescribeThesaurusResponse pHttpStatus_ =+  DescribeThesaurusResponse'+    { createdAt =+        Prelude.Nothing,+      description = Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      fileSizeBytes = Prelude.Nothing,+      id = Prelude.Nothing,+      indexId = Prelude.Nothing,+      name = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      sourceS3Path = Prelude.Nothing,+      status = Prelude.Nothing,+      synonymRuleCount = Prelude.Nothing,+      termCount = Prelude.Nothing,+      updatedAt = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The Unix datetime that the thesaurus was created.+describeThesaurusResponse_createdAt :: Lens.Lens' DescribeThesaurusResponse (Prelude.Maybe Prelude.UTCTime)+describeThesaurusResponse_createdAt = Lens.lens (\DescribeThesaurusResponse' {createdAt} -> createdAt) (\s@DescribeThesaurusResponse' {} a -> s {createdAt = a} :: DescribeThesaurusResponse) Prelude.. Lens.mapping Data._Time++-- | The thesaurus description.+describeThesaurusResponse_description :: Lens.Lens' DescribeThesaurusResponse (Prelude.Maybe Prelude.Text)+describeThesaurusResponse_description = Lens.lens (\DescribeThesaurusResponse' {description} -> description) (\s@DescribeThesaurusResponse' {} a -> s {description = a} :: DescribeThesaurusResponse)++-- | When the @Status@ field value is @FAILED@, the @ErrorMessage@ field+-- provides more information.+describeThesaurusResponse_errorMessage :: Lens.Lens' DescribeThesaurusResponse (Prelude.Maybe Prelude.Text)+describeThesaurusResponse_errorMessage = Lens.lens (\DescribeThesaurusResponse' {errorMessage} -> errorMessage) (\s@DescribeThesaurusResponse' {} a -> s {errorMessage = a} :: DescribeThesaurusResponse)++-- | The size of the thesaurus file in bytes.+describeThesaurusResponse_fileSizeBytes :: Lens.Lens' DescribeThesaurusResponse (Prelude.Maybe Prelude.Integer)+describeThesaurusResponse_fileSizeBytes = Lens.lens (\DescribeThesaurusResponse' {fileSizeBytes} -> fileSizeBytes) (\s@DescribeThesaurusResponse' {} a -> s {fileSizeBytes = a} :: DescribeThesaurusResponse)++-- | The identifier of the thesaurus.+describeThesaurusResponse_id :: Lens.Lens' DescribeThesaurusResponse (Prelude.Maybe Prelude.Text)+describeThesaurusResponse_id = Lens.lens (\DescribeThesaurusResponse' {id} -> id) (\s@DescribeThesaurusResponse' {} a -> s {id = a} :: DescribeThesaurusResponse)++-- | The identifier of the index for the thesaurus.+describeThesaurusResponse_indexId :: Lens.Lens' DescribeThesaurusResponse (Prelude.Maybe Prelude.Text)+describeThesaurusResponse_indexId = Lens.lens (\DescribeThesaurusResponse' {indexId} -> indexId) (\s@DescribeThesaurusResponse' {} a -> s {indexId = a} :: DescribeThesaurusResponse)++-- | The thesaurus name.+describeThesaurusResponse_name :: Lens.Lens' DescribeThesaurusResponse (Prelude.Maybe Prelude.Text)+describeThesaurusResponse_name = Lens.lens (\DescribeThesaurusResponse' {name} -> name) (\s@DescribeThesaurusResponse' {} a -> s {name = a} :: DescribeThesaurusResponse)++-- | An IAM role that gives Amazon Kendra permissions to access thesaurus+-- file specified in @SourceS3Path@.+describeThesaurusResponse_roleArn :: Lens.Lens' DescribeThesaurusResponse (Prelude.Maybe Prelude.Text)+describeThesaurusResponse_roleArn = Lens.lens (\DescribeThesaurusResponse' {roleArn} -> roleArn) (\s@DescribeThesaurusResponse' {} a -> s {roleArn = a} :: DescribeThesaurusResponse)++-- | Undocumented member.+describeThesaurusResponse_sourceS3Path :: Lens.Lens' DescribeThesaurusResponse (Prelude.Maybe S3Path)+describeThesaurusResponse_sourceS3Path = Lens.lens (\DescribeThesaurusResponse' {sourceS3Path} -> sourceS3Path) (\s@DescribeThesaurusResponse' {} a -> s {sourceS3Path = a} :: DescribeThesaurusResponse)++-- | The current status of the thesaurus. When the value is @ACTIVE@, queries+-- are able to use the thesaurus. If the @Status@ field value is @FAILED@,+-- the @ErrorMessage@ field provides more information.+--+-- If the status is @ACTIVE_BUT_UPDATE_FAILED@, it means that Amazon Kendra+-- could not ingest the new thesaurus file. The old thesaurus file is still+-- active.+describeThesaurusResponse_status :: Lens.Lens' DescribeThesaurusResponse (Prelude.Maybe ThesaurusStatus)+describeThesaurusResponse_status = Lens.lens (\DescribeThesaurusResponse' {status} -> status) (\s@DescribeThesaurusResponse' {} a -> s {status = a} :: DescribeThesaurusResponse)++-- | The number of synonym rules in the thesaurus file.+describeThesaurusResponse_synonymRuleCount :: Lens.Lens' DescribeThesaurusResponse (Prelude.Maybe Prelude.Integer)+describeThesaurusResponse_synonymRuleCount = Lens.lens (\DescribeThesaurusResponse' {synonymRuleCount} -> synonymRuleCount) (\s@DescribeThesaurusResponse' {} a -> s {synonymRuleCount = a} :: DescribeThesaurusResponse)++-- | The number of unique terms in the thesaurus file. For example, the+-- synonyms @a,b,c@ and @a=>d@, the term count would be 4.+describeThesaurusResponse_termCount :: Lens.Lens' DescribeThesaurusResponse (Prelude.Maybe Prelude.Integer)+describeThesaurusResponse_termCount = Lens.lens (\DescribeThesaurusResponse' {termCount} -> termCount) (\s@DescribeThesaurusResponse' {} a -> s {termCount = a} :: DescribeThesaurusResponse)++-- | The Unix datetime that the thesaurus was last updated.+describeThesaurusResponse_updatedAt :: Lens.Lens' DescribeThesaurusResponse (Prelude.Maybe Prelude.UTCTime)+describeThesaurusResponse_updatedAt = Lens.lens (\DescribeThesaurusResponse' {updatedAt} -> updatedAt) (\s@DescribeThesaurusResponse' {} a -> s {updatedAt = a} :: DescribeThesaurusResponse) Prelude.. Lens.mapping Data._Time++-- | The response's http status code.+describeThesaurusResponse_httpStatus :: Lens.Lens' DescribeThesaurusResponse Prelude.Int+describeThesaurusResponse_httpStatus = Lens.lens (\DescribeThesaurusResponse' {httpStatus} -> httpStatus) (\s@DescribeThesaurusResponse' {} a -> s {httpStatus = a} :: DescribeThesaurusResponse)++instance Prelude.NFData DescribeThesaurusResponse where+  rnf DescribeThesaurusResponse' {..} =+    Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf fileSizeBytes+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf sourceS3Path+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf synonymRuleCount+      `Prelude.seq` Prelude.rnf termCount+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/DisassociateEntitiesFromExperience.hs view
@@ -0,0 +1,241 @@+{-# 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.Kendra.DisassociateEntitiesFromExperience+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Prevents users or groups in your IAM Identity Center identity source+-- from accessing your Amazon Kendra experience. You can create an Amazon+-- Kendra experience such as a search application. For more information on+-- creating a search application experience, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html Building a search experience with no code>.+module Amazonka.Kendra.DisassociateEntitiesFromExperience+  ( -- * Creating a Request+    DisassociateEntitiesFromExperience (..),+    newDisassociateEntitiesFromExperience,++    -- * Request Lenses+    disassociateEntitiesFromExperience_id,+    disassociateEntitiesFromExperience_indexId,+    disassociateEntitiesFromExperience_entityList,++    -- * Destructuring the Response+    DisassociateEntitiesFromExperienceResponse (..),+    newDisassociateEntitiesFromExperienceResponse,++    -- * Response Lenses+    disassociateEntitiesFromExperienceResponse_failedEntityList,+    disassociateEntitiesFromExperienceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisassociateEntitiesFromExperience' smart constructor.+data DisassociateEntitiesFromExperience = DisassociateEntitiesFromExperience'+  { -- | The identifier of your Amazon Kendra experience.+    id :: Prelude.Text,+    -- | The identifier of the index for your Amazon Kendra experience.+    indexId :: Prelude.Text,+    -- | Lists users or groups in your IAM Identity Center identity source.+    entityList :: Prelude.NonEmpty EntityConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateEntitiesFromExperience' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'disassociateEntitiesFromExperience_id' - The identifier of your Amazon Kendra experience.+--+-- 'indexId', 'disassociateEntitiesFromExperience_indexId' - The identifier of the index for your Amazon Kendra experience.+--+-- 'entityList', 'disassociateEntitiesFromExperience_entityList' - Lists users or groups in your IAM Identity Center identity source.+newDisassociateEntitiesFromExperience ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  -- | 'entityList'+  Prelude.NonEmpty EntityConfiguration ->+  DisassociateEntitiesFromExperience+newDisassociateEntitiesFromExperience+  pId_+  pIndexId_+  pEntityList_ =+    DisassociateEntitiesFromExperience'+      { id = pId_,+        indexId = pIndexId_,+        entityList =+          Lens.coerced Lens.# pEntityList_+      }++-- | The identifier of your Amazon Kendra experience.+disassociateEntitiesFromExperience_id :: Lens.Lens' DisassociateEntitiesFromExperience Prelude.Text+disassociateEntitiesFromExperience_id = Lens.lens (\DisassociateEntitiesFromExperience' {id} -> id) (\s@DisassociateEntitiesFromExperience' {} a -> s {id = a} :: DisassociateEntitiesFromExperience)++-- | The identifier of the index for your Amazon Kendra experience.+disassociateEntitiesFromExperience_indexId :: Lens.Lens' DisassociateEntitiesFromExperience Prelude.Text+disassociateEntitiesFromExperience_indexId = Lens.lens (\DisassociateEntitiesFromExperience' {indexId} -> indexId) (\s@DisassociateEntitiesFromExperience' {} a -> s {indexId = a} :: DisassociateEntitiesFromExperience)++-- | Lists users or groups in your IAM Identity Center identity source.+disassociateEntitiesFromExperience_entityList :: Lens.Lens' DisassociateEntitiesFromExperience (Prelude.NonEmpty EntityConfiguration)+disassociateEntitiesFromExperience_entityList = Lens.lens (\DisassociateEntitiesFromExperience' {entityList} -> entityList) (\s@DisassociateEntitiesFromExperience' {} a -> s {entityList = a} :: DisassociateEntitiesFromExperience) Prelude.. Lens.coerced++instance+  Core.AWSRequest+    DisassociateEntitiesFromExperience+  where+  type+    AWSResponse DisassociateEntitiesFromExperience =+      DisassociateEntitiesFromExperienceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DisassociateEntitiesFromExperienceResponse'+            Prelude.<$> (x Data..?> "FailedEntityList")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DisassociateEntitiesFromExperience+  where+  hashWithSalt+    _salt+    DisassociateEntitiesFromExperience' {..} =+      _salt+        `Prelude.hashWithSalt` id+        `Prelude.hashWithSalt` indexId+        `Prelude.hashWithSalt` entityList++instance+  Prelude.NFData+    DisassociateEntitiesFromExperience+  where+  rnf DisassociateEntitiesFromExperience' {..} =+    Prelude.rnf id+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf entityList++instance+  Data.ToHeaders+    DisassociateEntitiesFromExperience+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DisassociateEntitiesFromExperience" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    DisassociateEntitiesFromExperience+  where+  toJSON DisassociateEntitiesFromExperience' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("EntityList" Data..= entityList)+          ]+      )++instance+  Data.ToPath+    DisassociateEntitiesFromExperience+  where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    DisassociateEntitiesFromExperience+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDisassociateEntitiesFromExperienceResponse' smart constructor.+data DisassociateEntitiesFromExperienceResponse = DisassociateEntitiesFromExperienceResponse'+  { -- | Lists the users or groups in your IAM Identity Center identity source+    -- that failed to properly remove access to your Amazon Kendra experience.+    failedEntityList :: Prelude.Maybe (Prelude.NonEmpty FailedEntity),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociateEntitiesFromExperienceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failedEntityList', 'disassociateEntitiesFromExperienceResponse_failedEntityList' - Lists the users or groups in your IAM Identity Center identity source+-- that failed to properly remove access to your Amazon Kendra experience.+--+-- 'httpStatus', 'disassociateEntitiesFromExperienceResponse_httpStatus' - The response's http status code.+newDisassociateEntitiesFromExperienceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DisassociateEntitiesFromExperienceResponse+newDisassociateEntitiesFromExperienceResponse+  pHttpStatus_ =+    DisassociateEntitiesFromExperienceResponse'+      { failedEntityList =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Lists the users or groups in your IAM Identity Center identity source+-- that failed to properly remove access to your Amazon Kendra experience.+disassociateEntitiesFromExperienceResponse_failedEntityList :: Lens.Lens' DisassociateEntitiesFromExperienceResponse (Prelude.Maybe (Prelude.NonEmpty FailedEntity))+disassociateEntitiesFromExperienceResponse_failedEntityList = Lens.lens (\DisassociateEntitiesFromExperienceResponse' {failedEntityList} -> failedEntityList) (\s@DisassociateEntitiesFromExperienceResponse' {} a -> s {failedEntityList = a} :: DisassociateEntitiesFromExperienceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+disassociateEntitiesFromExperienceResponse_httpStatus :: Lens.Lens' DisassociateEntitiesFromExperienceResponse Prelude.Int+disassociateEntitiesFromExperienceResponse_httpStatus = Lens.lens (\DisassociateEntitiesFromExperienceResponse' {httpStatus} -> httpStatus) (\s@DisassociateEntitiesFromExperienceResponse' {} a -> s {httpStatus = a} :: DisassociateEntitiesFromExperienceResponse)++instance+  Prelude.NFData+    DisassociateEntitiesFromExperienceResponse+  where+  rnf DisassociateEntitiesFromExperienceResponse' {..} =+    Prelude.rnf failedEntityList+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/DisassociatePersonasFromEntities.hs view
@@ -0,0 +1,238 @@+{-# 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.Kendra.DisassociatePersonasFromEntities+-- 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 specific permissions of users or groups in your IAM Identity+-- Center identity source with access to your Amazon Kendra experience. You+-- can create an Amazon Kendra experience such as a search application. For+-- more information on creating a search application experience, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html Building a search experience with no code>.+module Amazonka.Kendra.DisassociatePersonasFromEntities+  ( -- * Creating a Request+    DisassociatePersonasFromEntities (..),+    newDisassociatePersonasFromEntities,++    -- * Request Lenses+    disassociatePersonasFromEntities_id,+    disassociatePersonasFromEntities_indexId,+    disassociatePersonasFromEntities_entityIds,++    -- * Destructuring the Response+    DisassociatePersonasFromEntitiesResponse (..),+    newDisassociatePersonasFromEntitiesResponse,++    -- * Response Lenses+    disassociatePersonasFromEntitiesResponse_failedEntityList,+    disassociatePersonasFromEntitiesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDisassociatePersonasFromEntities' smart constructor.+data DisassociatePersonasFromEntities = DisassociatePersonasFromEntities'+  { -- | The identifier of your Amazon Kendra experience.+    id :: Prelude.Text,+    -- | The identifier of the index for your Amazon Kendra experience.+    indexId :: Prelude.Text,+    -- | The identifiers of users or groups in your IAM Identity Center identity+    -- source. For example, user IDs could be user emails.+    entityIds :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociatePersonasFromEntities' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'disassociatePersonasFromEntities_id' - The identifier of your Amazon Kendra experience.+--+-- 'indexId', 'disassociatePersonasFromEntities_indexId' - The identifier of the index for your Amazon Kendra experience.+--+-- 'entityIds', 'disassociatePersonasFromEntities_entityIds' - The identifiers of users or groups in your IAM Identity Center identity+-- source. For example, user IDs could be user emails.+newDisassociatePersonasFromEntities ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  -- | 'entityIds'+  Prelude.NonEmpty Prelude.Text ->+  DisassociatePersonasFromEntities+newDisassociatePersonasFromEntities+  pId_+  pIndexId_+  pEntityIds_ =+    DisassociatePersonasFromEntities'+      { id = pId_,+        indexId = pIndexId_,+        entityIds =+          Lens.coerced Lens.# pEntityIds_+      }++-- | The identifier of your Amazon Kendra experience.+disassociatePersonasFromEntities_id :: Lens.Lens' DisassociatePersonasFromEntities Prelude.Text+disassociatePersonasFromEntities_id = Lens.lens (\DisassociatePersonasFromEntities' {id} -> id) (\s@DisassociatePersonasFromEntities' {} a -> s {id = a} :: DisassociatePersonasFromEntities)++-- | The identifier of the index for your Amazon Kendra experience.+disassociatePersonasFromEntities_indexId :: Lens.Lens' DisassociatePersonasFromEntities Prelude.Text+disassociatePersonasFromEntities_indexId = Lens.lens (\DisassociatePersonasFromEntities' {indexId} -> indexId) (\s@DisassociatePersonasFromEntities' {} a -> s {indexId = a} :: DisassociatePersonasFromEntities)++-- | The identifiers of users or groups in your IAM Identity Center identity+-- source. For example, user IDs could be user emails.+disassociatePersonasFromEntities_entityIds :: Lens.Lens' DisassociatePersonasFromEntities (Prelude.NonEmpty Prelude.Text)+disassociatePersonasFromEntities_entityIds = Lens.lens (\DisassociatePersonasFromEntities' {entityIds} -> entityIds) (\s@DisassociatePersonasFromEntities' {} a -> s {entityIds = a} :: DisassociatePersonasFromEntities) Prelude.. Lens.coerced++instance+  Core.AWSRequest+    DisassociatePersonasFromEntities+  where+  type+    AWSResponse DisassociatePersonasFromEntities =+      DisassociatePersonasFromEntitiesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DisassociatePersonasFromEntitiesResponse'+            Prelude.<$> (x Data..?> "FailedEntityList")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DisassociatePersonasFromEntities+  where+  hashWithSalt+    _salt+    DisassociatePersonasFromEntities' {..} =+      _salt+        `Prelude.hashWithSalt` id+        `Prelude.hashWithSalt` indexId+        `Prelude.hashWithSalt` entityIds++instance+  Prelude.NFData+    DisassociatePersonasFromEntities+  where+  rnf DisassociatePersonasFromEntities' {..} =+    Prelude.rnf id+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf entityIds++instance+  Data.ToHeaders+    DisassociatePersonasFromEntities+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.DisassociatePersonasFromEntities" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DisassociatePersonasFromEntities where+  toJSON DisassociatePersonasFromEntities' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("EntityIds" Data..= entityIds)+          ]+      )++instance Data.ToPath DisassociatePersonasFromEntities where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    DisassociatePersonasFromEntities+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDisassociatePersonasFromEntitiesResponse' smart constructor.+data DisassociatePersonasFromEntitiesResponse = DisassociatePersonasFromEntitiesResponse'+  { -- | Lists the users or groups in your IAM Identity Center identity source+    -- that failed to properly remove access to your Amazon Kendra experience.+    failedEntityList :: Prelude.Maybe (Prelude.NonEmpty FailedEntity),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DisassociatePersonasFromEntitiesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failedEntityList', 'disassociatePersonasFromEntitiesResponse_failedEntityList' - Lists the users or groups in your IAM Identity Center identity source+-- that failed to properly remove access to your Amazon Kendra experience.+--+-- 'httpStatus', 'disassociatePersonasFromEntitiesResponse_httpStatus' - The response's http status code.+newDisassociatePersonasFromEntitiesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DisassociatePersonasFromEntitiesResponse+newDisassociatePersonasFromEntitiesResponse+  pHttpStatus_ =+    DisassociatePersonasFromEntitiesResponse'+      { failedEntityList =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Lists the users or groups in your IAM Identity Center identity source+-- that failed to properly remove access to your Amazon Kendra experience.+disassociatePersonasFromEntitiesResponse_failedEntityList :: Lens.Lens' DisassociatePersonasFromEntitiesResponse (Prelude.Maybe (Prelude.NonEmpty FailedEntity))+disassociatePersonasFromEntitiesResponse_failedEntityList = Lens.lens (\DisassociatePersonasFromEntitiesResponse' {failedEntityList} -> failedEntityList) (\s@DisassociatePersonasFromEntitiesResponse' {} a -> s {failedEntityList = a} :: DisassociatePersonasFromEntitiesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+disassociatePersonasFromEntitiesResponse_httpStatus :: Lens.Lens' DisassociatePersonasFromEntitiesResponse Prelude.Int+disassociatePersonasFromEntitiesResponse_httpStatus = Lens.lens (\DisassociatePersonasFromEntitiesResponse' {httpStatus} -> httpStatus) (\s@DisassociatePersonasFromEntitiesResponse' {} a -> s {httpStatus = a} :: DisassociatePersonasFromEntitiesResponse)++instance+  Prelude.NFData+    DisassociatePersonasFromEntitiesResponse+  where+  rnf DisassociatePersonasFromEntitiesResponse' {..} =+    Prelude.rnf failedEntityList+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/GetQuerySuggestions.hs view
@@ -0,0 +1,242 @@+{-# 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.Kendra.GetQuerySuggestions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Fetches the queries that are suggested to your users.+--+-- @GetQuerySuggestions@ is currently not supported in the Amazon Web+-- Services GovCloud (US-West) region.+module Amazonka.Kendra.GetQuerySuggestions+  ( -- * Creating a Request+    GetQuerySuggestions (..),+    newGetQuerySuggestions,++    -- * Request Lenses+    getQuerySuggestions_maxSuggestionsCount,+    getQuerySuggestions_indexId,+    getQuerySuggestions_queryText,++    -- * Destructuring the Response+    GetQuerySuggestionsResponse (..),+    newGetQuerySuggestionsResponse,++    -- * Response Lenses+    getQuerySuggestionsResponse_querySuggestionsId,+    getQuerySuggestionsResponse_suggestions,+    getQuerySuggestionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetQuerySuggestions' smart constructor.+data GetQuerySuggestions = GetQuerySuggestions'+  { -- | The maximum number of query suggestions you want to show to your users.+    maxSuggestionsCount :: Prelude.Maybe Prelude.Int,+    -- | The identifier of the index you want to get query suggestions from.+    indexId :: Prelude.Text,+    -- | The text of a user\'s query to generate query suggestions.+    --+    -- A query is suggested if the query prefix matches what a user starts to+    -- type as their query.+    --+    -- Amazon Kendra does not show any suggestions if a user types fewer than+    -- two characters or more than 60 characters. A query must also have at+    -- least one search result and contain at least one word of more than four+    -- characters.+    queryText :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetQuerySuggestions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxSuggestionsCount', 'getQuerySuggestions_maxSuggestionsCount' - The maximum number of query suggestions you want to show to your users.+--+-- 'indexId', 'getQuerySuggestions_indexId' - The identifier of the index you want to get query suggestions from.+--+-- 'queryText', 'getQuerySuggestions_queryText' - The text of a user\'s query to generate query suggestions.+--+-- A query is suggested if the query prefix matches what a user starts to+-- type as their query.+--+-- Amazon Kendra does not show any suggestions if a user types fewer than+-- two characters or more than 60 characters. A query must also have at+-- least one search result and contain at least one word of more than four+-- characters.+newGetQuerySuggestions ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'queryText'+  Prelude.Text ->+  GetQuerySuggestions+newGetQuerySuggestions pIndexId_ pQueryText_ =+  GetQuerySuggestions'+    { maxSuggestionsCount =+        Prelude.Nothing,+      indexId = pIndexId_,+      queryText = pQueryText_+    }++-- | The maximum number of query suggestions you want to show to your users.+getQuerySuggestions_maxSuggestionsCount :: Lens.Lens' GetQuerySuggestions (Prelude.Maybe Prelude.Int)+getQuerySuggestions_maxSuggestionsCount = Lens.lens (\GetQuerySuggestions' {maxSuggestionsCount} -> maxSuggestionsCount) (\s@GetQuerySuggestions' {} a -> s {maxSuggestionsCount = a} :: GetQuerySuggestions)++-- | The identifier of the index you want to get query suggestions from.+getQuerySuggestions_indexId :: Lens.Lens' GetQuerySuggestions Prelude.Text+getQuerySuggestions_indexId = Lens.lens (\GetQuerySuggestions' {indexId} -> indexId) (\s@GetQuerySuggestions' {} a -> s {indexId = a} :: GetQuerySuggestions)++-- | The text of a user\'s query to generate query suggestions.+--+-- A query is suggested if the query prefix matches what a user starts to+-- type as their query.+--+-- Amazon Kendra does not show any suggestions if a user types fewer than+-- two characters or more than 60 characters. A query must also have at+-- least one search result and contain at least one word of more than four+-- characters.+getQuerySuggestions_queryText :: Lens.Lens' GetQuerySuggestions Prelude.Text+getQuerySuggestions_queryText = Lens.lens (\GetQuerySuggestions' {queryText} -> queryText) (\s@GetQuerySuggestions' {} a -> s {queryText = a} :: GetQuerySuggestions)++instance Core.AWSRequest GetQuerySuggestions where+  type+    AWSResponse GetQuerySuggestions =+      GetQuerySuggestionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetQuerySuggestionsResponse'+            Prelude.<$> (x Data..?> "QuerySuggestionsId")+            Prelude.<*> (x Data..?> "Suggestions" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetQuerySuggestions where+  hashWithSalt _salt GetQuerySuggestions' {..} =+    _salt+      `Prelude.hashWithSalt` maxSuggestionsCount+      `Prelude.hashWithSalt` indexId+      `Prelude.hashWithSalt` queryText++instance Prelude.NFData GetQuerySuggestions where+  rnf GetQuerySuggestions' {..} =+    Prelude.rnf maxSuggestionsCount+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf queryText++instance Data.ToHeaders GetQuerySuggestions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.GetQuerySuggestions" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetQuerySuggestions where+  toJSON GetQuerySuggestions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxSuggestionsCount" Data..=)+              Prelude.<$> maxSuggestionsCount,+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("QueryText" Data..= queryText)+          ]+      )++instance Data.ToPath GetQuerySuggestions where+  toPath = Prelude.const "/"++instance Data.ToQuery GetQuerySuggestions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetQuerySuggestionsResponse' smart constructor.+data GetQuerySuggestionsResponse = GetQuerySuggestionsResponse'+  { -- | The identifier for a list of query suggestions for an index.+    querySuggestionsId :: Prelude.Maybe Prelude.Text,+    -- | A list of query suggestions for an index.+    suggestions :: Prelude.Maybe [Suggestion],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetQuerySuggestionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'querySuggestionsId', 'getQuerySuggestionsResponse_querySuggestionsId' - The identifier for a list of query suggestions for an index.+--+-- 'suggestions', 'getQuerySuggestionsResponse_suggestions' - A list of query suggestions for an index.+--+-- 'httpStatus', 'getQuerySuggestionsResponse_httpStatus' - The response's http status code.+newGetQuerySuggestionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetQuerySuggestionsResponse+newGetQuerySuggestionsResponse pHttpStatus_ =+  GetQuerySuggestionsResponse'+    { querySuggestionsId =+        Prelude.Nothing,+      suggestions = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The identifier for a list of query suggestions for an index.+getQuerySuggestionsResponse_querySuggestionsId :: Lens.Lens' GetQuerySuggestionsResponse (Prelude.Maybe Prelude.Text)+getQuerySuggestionsResponse_querySuggestionsId = Lens.lens (\GetQuerySuggestionsResponse' {querySuggestionsId} -> querySuggestionsId) (\s@GetQuerySuggestionsResponse' {} a -> s {querySuggestionsId = a} :: GetQuerySuggestionsResponse)++-- | A list of query suggestions for an index.+getQuerySuggestionsResponse_suggestions :: Lens.Lens' GetQuerySuggestionsResponse (Prelude.Maybe [Suggestion])+getQuerySuggestionsResponse_suggestions = Lens.lens (\GetQuerySuggestionsResponse' {suggestions} -> suggestions) (\s@GetQuerySuggestionsResponse' {} a -> s {suggestions = a} :: GetQuerySuggestionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getQuerySuggestionsResponse_httpStatus :: Lens.Lens' GetQuerySuggestionsResponse Prelude.Int+getQuerySuggestionsResponse_httpStatus = Lens.lens (\GetQuerySuggestionsResponse' {httpStatus} -> httpStatus) (\s@GetQuerySuggestionsResponse' {} a -> s {httpStatus = a} :: GetQuerySuggestionsResponse)++instance Prelude.NFData GetQuerySuggestionsResponse where+  rnf GetQuerySuggestionsResponse' {..} =+    Prelude.rnf querySuggestionsId+      `Prelude.seq` Prelude.rnf suggestions+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/GetSnapshots.hs view
@@ -0,0 +1,360 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.GetSnapshots+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves search metrics data. The data provides a snapshot of how your+-- users interact with your search application and how effective the+-- application is.+module Amazonka.Kendra.GetSnapshots+  ( -- * Creating a Request+    GetSnapshots (..),+    newGetSnapshots,++    -- * Request Lenses+    getSnapshots_maxResults,+    getSnapshots_nextToken,+    getSnapshots_indexId,+    getSnapshots_interval,+    getSnapshots_metricType,++    -- * Destructuring the Response+    GetSnapshotsResponse (..),+    newGetSnapshotsResponse,++    -- * Response Lenses+    getSnapshotsResponse_nextToken,+    getSnapshotsResponse_snapShotTimeFilter,+    getSnapshotsResponse_snapshotsData,+    getSnapshotsResponse_snapshotsDataHeader,+    getSnapshotsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetSnapshots' smart constructor.+data GetSnapshots = GetSnapshots'+  { -- | The maximum number of returned data for the metric.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | If the previous response was incomplete (because there is more data to+    -- retrieve), Amazon Kendra returns a pagination token in the response. You+    -- can use this pagination token to retrieve the next set of search metrics+    -- data.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the index to get search metrics data.+    indexId :: Prelude.Text,+    -- | The time interval or time window to get search metrics data. The time+    -- interval uses the time zone of your index. You can view data in the+    -- following time windows:+    --+    -- -   @THIS_WEEK@: The current week, starting on the Sunday and ending on+    --     the day before the current date.+    --+    -- -   @ONE_WEEK_AGO@: The previous week, starting on the Sunday and ending+    --     on the following Saturday.+    --+    -- -   @TWO_WEEKS_AGO@: The week before the previous week, starting on the+    --     Sunday and ending on the following Saturday.+    --+    -- -   @THIS_MONTH@: The current month, starting on the first day of the+    --     month and ending on the day before the current date.+    --+    -- -   @ONE_MONTH_AGO@: The previous month, starting on the first day of+    --     the month and ending on the last day of the month.+    --+    -- -   @TWO_MONTHS_AGO@: The month before the previous month, starting on+    --     the first day of the month and ending on last day of the month.+    interval :: Interval,+    -- | The metric you want to retrieve. You can specify only one metric per+    -- call.+    --+    -- For more information about the metrics you can view, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/search-analytics.html Gaining insights with search analytics>.+    metricType :: MetricType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSnapshots' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'getSnapshots_maxResults' - The maximum number of returned data for the metric.+--+-- 'nextToken', 'getSnapshots_nextToken' - If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of search metrics+-- data.+--+-- 'indexId', 'getSnapshots_indexId' - The identifier of the index to get search metrics data.+--+-- 'interval', 'getSnapshots_interval' - The time interval or time window to get search metrics data. The time+-- interval uses the time zone of your index. You can view data in the+-- following time windows:+--+-- -   @THIS_WEEK@: The current week, starting on the Sunday and ending on+--     the day before the current date.+--+-- -   @ONE_WEEK_AGO@: The previous week, starting on the Sunday and ending+--     on the following Saturday.+--+-- -   @TWO_WEEKS_AGO@: The week before the previous week, starting on the+--     Sunday and ending on the following Saturday.+--+-- -   @THIS_MONTH@: The current month, starting on the first day of the+--     month and ending on the day before the current date.+--+-- -   @ONE_MONTH_AGO@: The previous month, starting on the first day of+--     the month and ending on the last day of the month.+--+-- -   @TWO_MONTHS_AGO@: The month before the previous month, starting on+--     the first day of the month and ending on last day of the month.+--+-- 'metricType', 'getSnapshots_metricType' - The metric you want to retrieve. You can specify only one metric per+-- call.+--+-- For more information about the metrics you can view, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/search-analytics.html Gaining insights with search analytics>.+newGetSnapshots ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'interval'+  Interval ->+  -- | 'metricType'+  MetricType ->+  GetSnapshots+newGetSnapshots pIndexId_ pInterval_ pMetricType_ =+  GetSnapshots'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      indexId = pIndexId_,+      interval = pInterval_,+      metricType = pMetricType_+    }++-- | The maximum number of returned data for the metric.+getSnapshots_maxResults :: Lens.Lens' GetSnapshots (Prelude.Maybe Prelude.Int)+getSnapshots_maxResults = Lens.lens (\GetSnapshots' {maxResults} -> maxResults) (\s@GetSnapshots' {} a -> s {maxResults = a} :: GetSnapshots)++-- | If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of search metrics+-- data.+getSnapshots_nextToken :: Lens.Lens' GetSnapshots (Prelude.Maybe Prelude.Text)+getSnapshots_nextToken = Lens.lens (\GetSnapshots' {nextToken} -> nextToken) (\s@GetSnapshots' {} a -> s {nextToken = a} :: GetSnapshots)++-- | The identifier of the index to get search metrics data.+getSnapshots_indexId :: Lens.Lens' GetSnapshots Prelude.Text+getSnapshots_indexId = Lens.lens (\GetSnapshots' {indexId} -> indexId) (\s@GetSnapshots' {} a -> s {indexId = a} :: GetSnapshots)++-- | The time interval or time window to get search metrics data. The time+-- interval uses the time zone of your index. You can view data in the+-- following time windows:+--+-- -   @THIS_WEEK@: The current week, starting on the Sunday and ending on+--     the day before the current date.+--+-- -   @ONE_WEEK_AGO@: The previous week, starting on the Sunday and ending+--     on the following Saturday.+--+-- -   @TWO_WEEKS_AGO@: The week before the previous week, starting on the+--     Sunday and ending on the following Saturday.+--+-- -   @THIS_MONTH@: The current month, starting on the first day of the+--     month and ending on the day before the current date.+--+-- -   @ONE_MONTH_AGO@: The previous month, starting on the first day of+--     the month and ending on the last day of the month.+--+-- -   @TWO_MONTHS_AGO@: The month before the previous month, starting on+--     the first day of the month and ending on last day of the month.+getSnapshots_interval :: Lens.Lens' GetSnapshots Interval+getSnapshots_interval = Lens.lens (\GetSnapshots' {interval} -> interval) (\s@GetSnapshots' {} a -> s {interval = a} :: GetSnapshots)++-- | The metric you want to retrieve. You can specify only one metric per+-- call.+--+-- For more information about the metrics you can view, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/search-analytics.html Gaining insights with search analytics>.+getSnapshots_metricType :: Lens.Lens' GetSnapshots MetricType+getSnapshots_metricType = Lens.lens (\GetSnapshots' {metricType} -> metricType) (\s@GetSnapshots' {} a -> s {metricType = a} :: GetSnapshots)++instance Core.AWSRequest GetSnapshots where+  type AWSResponse GetSnapshots = GetSnapshotsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetSnapshotsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "SnapShotTimeFilter")+            Prelude.<*> (x Data..?> "SnapshotsData" Core..!@ Prelude.mempty)+            Prelude.<*> ( x+                            Data..?> "SnapshotsDataHeader"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetSnapshots where+  hashWithSalt _salt GetSnapshots' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` indexId+      `Prelude.hashWithSalt` interval+      `Prelude.hashWithSalt` metricType++instance Prelude.NFData GetSnapshots where+  rnf GetSnapshots' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf interval+      `Prelude.seq` Prelude.rnf metricType++instance Data.ToHeaders GetSnapshots where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.GetSnapshots" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetSnapshots where+  toJSON GetSnapshots' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("Interval" Data..= interval),+            Prelude.Just ("MetricType" Data..= metricType)+          ]+      )++instance Data.ToPath GetSnapshots where+  toPath = Prelude.const "/"++instance Data.ToQuery GetSnapshots where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetSnapshotsResponse' smart constructor.+data GetSnapshotsResponse = GetSnapshotsResponse'+  { -- | If the response is truncated, Amazon Kendra returns this token, which+    -- you can use in a later request to retrieve the next set of search+    -- metrics data.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The date-time for the beginning and end of the time window for the+    -- search metrics data.+    snapShotTimeFilter :: Prelude.Maybe TimeRange,+    -- | The search metrics data. The data returned depends on the metric type+    -- you requested.+    snapshotsData :: Prelude.Maybe [[Prelude.Text]],+    -- | The column headers for the search metrics data.+    snapshotsDataHeader :: 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 'GetSnapshotsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'getSnapshotsResponse_nextToken' - If the response is truncated, Amazon Kendra returns this token, which+-- you can use in a later request to retrieve the next set of search+-- metrics data.+--+-- 'snapShotTimeFilter', 'getSnapshotsResponse_snapShotTimeFilter' - The date-time for the beginning and end of the time window for the+-- search metrics data.+--+-- 'snapshotsData', 'getSnapshotsResponse_snapshotsData' - The search metrics data. The data returned depends on the metric type+-- you requested.+--+-- 'snapshotsDataHeader', 'getSnapshotsResponse_snapshotsDataHeader' - The column headers for the search metrics data.+--+-- 'httpStatus', 'getSnapshotsResponse_httpStatus' - The response's http status code.+newGetSnapshotsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetSnapshotsResponse+newGetSnapshotsResponse pHttpStatus_ =+  GetSnapshotsResponse'+    { nextToken = Prelude.Nothing,+      snapShotTimeFilter = Prelude.Nothing,+      snapshotsData = Prelude.Nothing,+      snapshotsDataHeader = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If the response is truncated, Amazon Kendra returns this token, which+-- you can use in a later request to retrieve the next set of search+-- metrics data.+getSnapshotsResponse_nextToken :: Lens.Lens' GetSnapshotsResponse (Prelude.Maybe Prelude.Text)+getSnapshotsResponse_nextToken = Lens.lens (\GetSnapshotsResponse' {nextToken} -> nextToken) (\s@GetSnapshotsResponse' {} a -> s {nextToken = a} :: GetSnapshotsResponse)++-- | The date-time for the beginning and end of the time window for the+-- search metrics data.+getSnapshotsResponse_snapShotTimeFilter :: Lens.Lens' GetSnapshotsResponse (Prelude.Maybe TimeRange)+getSnapshotsResponse_snapShotTimeFilter = Lens.lens (\GetSnapshotsResponse' {snapShotTimeFilter} -> snapShotTimeFilter) (\s@GetSnapshotsResponse' {} a -> s {snapShotTimeFilter = a} :: GetSnapshotsResponse)++-- | The search metrics data. The data returned depends on the metric type+-- you requested.+getSnapshotsResponse_snapshotsData :: Lens.Lens' GetSnapshotsResponse (Prelude.Maybe [[Prelude.Text]])+getSnapshotsResponse_snapshotsData = Lens.lens (\GetSnapshotsResponse' {snapshotsData} -> snapshotsData) (\s@GetSnapshotsResponse' {} a -> s {snapshotsData = a} :: GetSnapshotsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The column headers for the search metrics data.+getSnapshotsResponse_snapshotsDataHeader :: Lens.Lens' GetSnapshotsResponse (Prelude.Maybe [Prelude.Text])+getSnapshotsResponse_snapshotsDataHeader = Lens.lens (\GetSnapshotsResponse' {snapshotsDataHeader} -> snapshotsDataHeader) (\s@GetSnapshotsResponse' {} a -> s {snapshotsDataHeader = a} :: GetSnapshotsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getSnapshotsResponse_httpStatus :: Lens.Lens' GetSnapshotsResponse Prelude.Int+getSnapshotsResponse_httpStatus = Lens.lens (\GetSnapshotsResponse' {httpStatus} -> httpStatus) (\s@GetSnapshotsResponse' {} a -> s {httpStatus = a} :: GetSnapshotsResponse)++instance Prelude.NFData GetSnapshotsResponse where+  rnf GetSnapshotsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf snapShotTimeFilter+      `Prelude.seq` Prelude.rnf snapshotsData+      `Prelude.seq` Prelude.rnf snapshotsDataHeader+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/Lens.hs view
@@ -0,0 +1,1596 @@+{-# 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.Kendra.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.Kendra.Lens+  ( -- * Operations++    -- ** AssociateEntitiesToExperience+    associateEntitiesToExperience_id,+    associateEntitiesToExperience_indexId,+    associateEntitiesToExperience_entityList,+    associateEntitiesToExperienceResponse_failedEntityList,+    associateEntitiesToExperienceResponse_httpStatus,++    -- ** AssociatePersonasToEntities+    associatePersonasToEntities_id,+    associatePersonasToEntities_indexId,+    associatePersonasToEntities_personas,+    associatePersonasToEntitiesResponse_failedEntityList,+    associatePersonasToEntitiesResponse_httpStatus,++    -- ** BatchDeleteDocument+    batchDeleteDocument_dataSourceSyncJobMetricTarget,+    batchDeleteDocument_indexId,+    batchDeleteDocument_documentIdList,+    batchDeleteDocumentResponse_failedDocuments,+    batchDeleteDocumentResponse_httpStatus,++    -- ** BatchGetDocumentStatus+    batchGetDocumentStatus_indexId,+    batchGetDocumentStatus_documentInfoList,+    batchGetDocumentStatusResponse_documentStatusList,+    batchGetDocumentStatusResponse_errors,+    batchGetDocumentStatusResponse_httpStatus,++    -- ** BatchPutDocument+    batchPutDocument_customDocumentEnrichmentConfiguration,+    batchPutDocument_roleArn,+    batchPutDocument_indexId,+    batchPutDocument_documents,+    batchPutDocumentResponse_failedDocuments,+    batchPutDocumentResponse_httpStatus,++    -- ** ClearQuerySuggestions+    clearQuerySuggestions_indexId,++    -- ** CreateAccessControlConfiguration+    createAccessControlConfiguration_accessControlList,+    createAccessControlConfiguration_clientToken,+    createAccessControlConfiguration_description,+    createAccessControlConfiguration_hierarchicalAccessControlList,+    createAccessControlConfiguration_indexId,+    createAccessControlConfiguration_name,+    createAccessControlConfigurationResponse_httpStatus,+    createAccessControlConfigurationResponse_id,++    -- ** CreateDataSource+    createDataSource_clientToken,+    createDataSource_configuration,+    createDataSource_customDocumentEnrichmentConfiguration,+    createDataSource_description,+    createDataSource_languageCode,+    createDataSource_roleArn,+    createDataSource_schedule,+    createDataSource_tags,+    createDataSource_vpcConfiguration,+    createDataSource_name,+    createDataSource_indexId,+    createDataSource_type,+    createDataSourceResponse_httpStatus,+    createDataSourceResponse_id,++    -- ** CreateExperience+    createExperience_clientToken,+    createExperience_configuration,+    createExperience_description,+    createExperience_roleArn,+    createExperience_name,+    createExperience_indexId,+    createExperienceResponse_httpStatus,+    createExperienceResponse_id,++    -- ** CreateFaq+    createFaq_clientToken,+    createFaq_description,+    createFaq_fileFormat,+    createFaq_languageCode,+    createFaq_tags,+    createFaq_indexId,+    createFaq_name,+    createFaq_s3Path,+    createFaq_roleArn,+    createFaqResponse_id,+    createFaqResponse_httpStatus,++    -- ** CreateIndex+    createIndex_clientToken,+    createIndex_description,+    createIndex_edition,+    createIndex_serverSideEncryptionConfiguration,+    createIndex_tags,+    createIndex_userContextPolicy,+    createIndex_userGroupResolutionConfiguration,+    createIndex_userTokenConfigurations,+    createIndex_name,+    createIndex_roleArn,+    createIndexResponse_id,+    createIndexResponse_httpStatus,++    -- ** CreateQuerySuggestionsBlockList+    createQuerySuggestionsBlockList_clientToken,+    createQuerySuggestionsBlockList_description,+    createQuerySuggestionsBlockList_tags,+    createQuerySuggestionsBlockList_indexId,+    createQuerySuggestionsBlockList_name,+    createQuerySuggestionsBlockList_sourceS3Path,+    createQuerySuggestionsBlockList_roleArn,+    createQuerySuggestionsBlockListResponse_id,+    createQuerySuggestionsBlockListResponse_httpStatus,++    -- ** CreateThesaurus+    createThesaurus_clientToken,+    createThesaurus_description,+    createThesaurus_tags,+    createThesaurus_indexId,+    createThesaurus_name,+    createThesaurus_roleArn,+    createThesaurus_sourceS3Path,+    createThesaurusResponse_id,+    createThesaurusResponse_httpStatus,++    -- ** DeleteAccessControlConfiguration+    deleteAccessControlConfiguration_indexId,+    deleteAccessControlConfiguration_id,+    deleteAccessControlConfigurationResponse_httpStatus,++    -- ** DeleteDataSource+    deleteDataSource_id,+    deleteDataSource_indexId,++    -- ** DeleteExperience+    deleteExperience_id,+    deleteExperience_indexId,+    deleteExperienceResponse_httpStatus,++    -- ** DeleteFaq+    deleteFaq_id,+    deleteFaq_indexId,++    -- ** DeleteIndex+    deleteIndex_id,++    -- ** DeletePrincipalMapping+    deletePrincipalMapping_dataSourceId,+    deletePrincipalMapping_orderingId,+    deletePrincipalMapping_indexId,+    deletePrincipalMapping_groupId,++    -- ** DeleteQuerySuggestionsBlockList+    deleteQuerySuggestionsBlockList_indexId,+    deleteQuerySuggestionsBlockList_id,++    -- ** DeleteThesaurus+    deleteThesaurus_id,+    deleteThesaurus_indexId,++    -- ** DescribeAccessControlConfiguration+    describeAccessControlConfiguration_indexId,+    describeAccessControlConfiguration_id,+    describeAccessControlConfigurationResponse_accessControlList,+    describeAccessControlConfigurationResponse_description,+    describeAccessControlConfigurationResponse_errorMessage,+    describeAccessControlConfigurationResponse_hierarchicalAccessControlList,+    describeAccessControlConfigurationResponse_httpStatus,+    describeAccessControlConfigurationResponse_name,++    -- ** DescribeDataSource+    describeDataSource_id,+    describeDataSource_indexId,+    describeDataSourceResponse_configuration,+    describeDataSourceResponse_createdAt,+    describeDataSourceResponse_customDocumentEnrichmentConfiguration,+    describeDataSourceResponse_description,+    describeDataSourceResponse_errorMessage,+    describeDataSourceResponse_id,+    describeDataSourceResponse_indexId,+    describeDataSourceResponse_languageCode,+    describeDataSourceResponse_name,+    describeDataSourceResponse_roleArn,+    describeDataSourceResponse_schedule,+    describeDataSourceResponse_status,+    describeDataSourceResponse_type,+    describeDataSourceResponse_updatedAt,+    describeDataSourceResponse_vpcConfiguration,+    describeDataSourceResponse_httpStatus,++    -- ** DescribeExperience+    describeExperience_id,+    describeExperience_indexId,+    describeExperienceResponse_configuration,+    describeExperienceResponse_createdAt,+    describeExperienceResponse_description,+    describeExperienceResponse_endpoints,+    describeExperienceResponse_errorMessage,+    describeExperienceResponse_id,+    describeExperienceResponse_indexId,+    describeExperienceResponse_name,+    describeExperienceResponse_roleArn,+    describeExperienceResponse_status,+    describeExperienceResponse_updatedAt,+    describeExperienceResponse_httpStatus,++    -- ** DescribeFaq+    describeFaq_id,+    describeFaq_indexId,+    describeFaqResponse_createdAt,+    describeFaqResponse_description,+    describeFaqResponse_errorMessage,+    describeFaqResponse_fileFormat,+    describeFaqResponse_id,+    describeFaqResponse_indexId,+    describeFaqResponse_languageCode,+    describeFaqResponse_name,+    describeFaqResponse_roleArn,+    describeFaqResponse_s3Path,+    describeFaqResponse_status,+    describeFaqResponse_updatedAt,+    describeFaqResponse_httpStatus,++    -- ** DescribeIndex+    describeIndex_id,+    describeIndexResponse_capacityUnits,+    describeIndexResponse_createdAt,+    describeIndexResponse_description,+    describeIndexResponse_documentMetadataConfigurations,+    describeIndexResponse_edition,+    describeIndexResponse_errorMessage,+    describeIndexResponse_id,+    describeIndexResponse_indexStatistics,+    describeIndexResponse_name,+    describeIndexResponse_roleArn,+    describeIndexResponse_serverSideEncryptionConfiguration,+    describeIndexResponse_status,+    describeIndexResponse_updatedAt,+    describeIndexResponse_userContextPolicy,+    describeIndexResponse_userGroupResolutionConfiguration,+    describeIndexResponse_userTokenConfigurations,+    describeIndexResponse_httpStatus,++    -- ** DescribePrincipalMapping+    describePrincipalMapping_dataSourceId,+    describePrincipalMapping_indexId,+    describePrincipalMapping_groupId,+    describePrincipalMappingResponse_dataSourceId,+    describePrincipalMappingResponse_groupId,+    describePrincipalMappingResponse_groupOrderingIdSummaries,+    describePrincipalMappingResponse_indexId,+    describePrincipalMappingResponse_httpStatus,++    -- ** DescribeQuerySuggestionsBlockList+    describeQuerySuggestionsBlockList_indexId,+    describeQuerySuggestionsBlockList_id,+    describeQuerySuggestionsBlockListResponse_createdAt,+    describeQuerySuggestionsBlockListResponse_description,+    describeQuerySuggestionsBlockListResponse_errorMessage,+    describeQuerySuggestionsBlockListResponse_fileSizeBytes,+    describeQuerySuggestionsBlockListResponse_id,+    describeQuerySuggestionsBlockListResponse_indexId,+    describeQuerySuggestionsBlockListResponse_itemCount,+    describeQuerySuggestionsBlockListResponse_name,+    describeQuerySuggestionsBlockListResponse_roleArn,+    describeQuerySuggestionsBlockListResponse_sourceS3Path,+    describeQuerySuggestionsBlockListResponse_status,+    describeQuerySuggestionsBlockListResponse_updatedAt,+    describeQuerySuggestionsBlockListResponse_httpStatus,++    -- ** DescribeQuerySuggestionsConfig+    describeQuerySuggestionsConfig_indexId,+    describeQuerySuggestionsConfigResponse_includeQueriesWithoutUserInformation,+    describeQuerySuggestionsConfigResponse_lastClearTime,+    describeQuerySuggestionsConfigResponse_lastSuggestionsBuildTime,+    describeQuerySuggestionsConfigResponse_minimumNumberOfQueryingUsers,+    describeQuerySuggestionsConfigResponse_minimumQueryCount,+    describeQuerySuggestionsConfigResponse_mode,+    describeQuerySuggestionsConfigResponse_queryLogLookBackWindowInDays,+    describeQuerySuggestionsConfigResponse_status,+    describeQuerySuggestionsConfigResponse_totalSuggestionsCount,+    describeQuerySuggestionsConfigResponse_httpStatus,++    -- ** DescribeThesaurus+    describeThesaurus_id,+    describeThesaurus_indexId,+    describeThesaurusResponse_createdAt,+    describeThesaurusResponse_description,+    describeThesaurusResponse_errorMessage,+    describeThesaurusResponse_fileSizeBytes,+    describeThesaurusResponse_id,+    describeThesaurusResponse_indexId,+    describeThesaurusResponse_name,+    describeThesaurusResponse_roleArn,+    describeThesaurusResponse_sourceS3Path,+    describeThesaurusResponse_status,+    describeThesaurusResponse_synonymRuleCount,+    describeThesaurusResponse_termCount,+    describeThesaurusResponse_updatedAt,+    describeThesaurusResponse_httpStatus,++    -- ** DisassociateEntitiesFromExperience+    disassociateEntitiesFromExperience_id,+    disassociateEntitiesFromExperience_indexId,+    disassociateEntitiesFromExperience_entityList,+    disassociateEntitiesFromExperienceResponse_failedEntityList,+    disassociateEntitiesFromExperienceResponse_httpStatus,++    -- ** DisassociatePersonasFromEntities+    disassociatePersonasFromEntities_id,+    disassociatePersonasFromEntities_indexId,+    disassociatePersonasFromEntities_entityIds,+    disassociatePersonasFromEntitiesResponse_failedEntityList,+    disassociatePersonasFromEntitiesResponse_httpStatus,++    -- ** GetQuerySuggestions+    getQuerySuggestions_maxSuggestionsCount,+    getQuerySuggestions_indexId,+    getQuerySuggestions_queryText,+    getQuerySuggestionsResponse_querySuggestionsId,+    getQuerySuggestionsResponse_suggestions,+    getQuerySuggestionsResponse_httpStatus,++    -- ** GetSnapshots+    getSnapshots_maxResults,+    getSnapshots_nextToken,+    getSnapshots_indexId,+    getSnapshots_interval,+    getSnapshots_metricType,+    getSnapshotsResponse_nextToken,+    getSnapshotsResponse_snapShotTimeFilter,+    getSnapshotsResponse_snapshotsData,+    getSnapshotsResponse_snapshotsDataHeader,+    getSnapshotsResponse_httpStatus,++    -- ** ListAccessControlConfigurations+    listAccessControlConfigurations_maxResults,+    listAccessControlConfigurations_nextToken,+    listAccessControlConfigurations_indexId,+    listAccessControlConfigurationsResponse_nextToken,+    listAccessControlConfigurationsResponse_httpStatus,+    listAccessControlConfigurationsResponse_accessControlConfigurations,++    -- ** ListDataSourceSyncJobs+    listDataSourceSyncJobs_maxResults,+    listDataSourceSyncJobs_nextToken,+    listDataSourceSyncJobs_startTimeFilter,+    listDataSourceSyncJobs_statusFilter,+    listDataSourceSyncJobs_id,+    listDataSourceSyncJobs_indexId,+    listDataSourceSyncJobsResponse_history,+    listDataSourceSyncJobsResponse_nextToken,+    listDataSourceSyncJobsResponse_httpStatus,++    -- ** ListDataSources+    listDataSources_maxResults,+    listDataSources_nextToken,+    listDataSources_indexId,+    listDataSourcesResponse_nextToken,+    listDataSourcesResponse_summaryItems,+    listDataSourcesResponse_httpStatus,++    -- ** ListEntityPersonas+    listEntityPersonas_maxResults,+    listEntityPersonas_nextToken,+    listEntityPersonas_id,+    listEntityPersonas_indexId,+    listEntityPersonasResponse_nextToken,+    listEntityPersonasResponse_summaryItems,+    listEntityPersonasResponse_httpStatus,++    -- ** ListExperienceEntities+    listExperienceEntities_nextToken,+    listExperienceEntities_id,+    listExperienceEntities_indexId,+    listExperienceEntitiesResponse_nextToken,+    listExperienceEntitiesResponse_summaryItems,+    listExperienceEntitiesResponse_httpStatus,++    -- ** ListExperiences+    listExperiences_maxResults,+    listExperiences_nextToken,+    listExperiences_indexId,+    listExperiencesResponse_nextToken,+    listExperiencesResponse_summaryItems,+    listExperiencesResponse_httpStatus,++    -- ** ListFaqs+    listFaqs_maxResults,+    listFaqs_nextToken,+    listFaqs_indexId,+    listFaqsResponse_faqSummaryItems,+    listFaqsResponse_nextToken,+    listFaqsResponse_httpStatus,++    -- ** ListGroupsOlderThanOrderingId+    listGroupsOlderThanOrderingId_dataSourceId,+    listGroupsOlderThanOrderingId_maxResults,+    listGroupsOlderThanOrderingId_nextToken,+    listGroupsOlderThanOrderingId_indexId,+    listGroupsOlderThanOrderingId_orderingId,+    listGroupsOlderThanOrderingIdResponse_groupsSummaries,+    listGroupsOlderThanOrderingIdResponse_nextToken,+    listGroupsOlderThanOrderingIdResponse_httpStatus,++    -- ** ListIndices+    listIndices_maxResults,+    listIndices_nextToken,+    listIndicesResponse_indexConfigurationSummaryItems,+    listIndicesResponse_nextToken,+    listIndicesResponse_httpStatus,++    -- ** ListQuerySuggestionsBlockLists+    listQuerySuggestionsBlockLists_maxResults,+    listQuerySuggestionsBlockLists_nextToken,+    listQuerySuggestionsBlockLists_indexId,+    listQuerySuggestionsBlockListsResponse_blockListSummaryItems,+    listQuerySuggestionsBlockListsResponse_nextToken,+    listQuerySuggestionsBlockListsResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceARN,+    listTagsForResourceResponse_tags,+    listTagsForResourceResponse_httpStatus,++    -- ** ListThesauri+    listThesauri_maxResults,+    listThesauri_nextToken,+    listThesauri_indexId,+    listThesauriResponse_nextToken,+    listThesauriResponse_thesaurusSummaryItems,+    listThesauriResponse_httpStatus,++    -- ** PutPrincipalMapping+    putPrincipalMapping_dataSourceId,+    putPrincipalMapping_orderingId,+    putPrincipalMapping_roleArn,+    putPrincipalMapping_indexId,+    putPrincipalMapping_groupId,+    putPrincipalMapping_groupMembers,++    -- ** Query+    query_attributeFilter,+    query_documentRelevanceOverrideConfigurations,+    query_facets,+    query_pageNumber,+    query_pageSize,+    query_queryResultTypeFilter,+    query_queryText,+    query_requestedDocumentAttributes,+    query_sortingConfiguration,+    query_spellCorrectionConfiguration,+    query_userContext,+    query_visitorId,+    query_indexId,+    queryResponse_facetResults,+    queryResponse_queryId,+    queryResponse_resultItems,+    queryResponse_spellCorrectedQueries,+    queryResponse_totalNumberOfResults,+    queryResponse_warnings,+    queryResponse_httpStatus,++    -- ** StartDataSourceSyncJob+    startDataSourceSyncJob_id,+    startDataSourceSyncJob_indexId,+    startDataSourceSyncJobResponse_executionId,+    startDataSourceSyncJobResponse_httpStatus,++    -- ** StopDataSourceSyncJob+    stopDataSourceSyncJob_id,+    stopDataSourceSyncJob_indexId,++    -- ** SubmitFeedback+    submitFeedback_clickFeedbackItems,+    submitFeedback_relevanceFeedbackItems,+    submitFeedback_indexId,+    submitFeedback_queryId,++    -- ** TagResource+    tagResource_resourceARN,+    tagResource_tags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceARN,+    untagResource_tagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateAccessControlConfiguration+    updateAccessControlConfiguration_accessControlList,+    updateAccessControlConfiguration_description,+    updateAccessControlConfiguration_hierarchicalAccessControlList,+    updateAccessControlConfiguration_name,+    updateAccessControlConfiguration_indexId,+    updateAccessControlConfiguration_id,+    updateAccessControlConfigurationResponse_httpStatus,++    -- ** UpdateDataSource+    updateDataSource_configuration,+    updateDataSource_customDocumentEnrichmentConfiguration,+    updateDataSource_description,+    updateDataSource_languageCode,+    updateDataSource_name,+    updateDataSource_roleArn,+    updateDataSource_schedule,+    updateDataSource_vpcConfiguration,+    updateDataSource_id,+    updateDataSource_indexId,++    -- ** UpdateExperience+    updateExperience_configuration,+    updateExperience_description,+    updateExperience_name,+    updateExperience_roleArn,+    updateExperience_id,+    updateExperience_indexId,++    -- ** UpdateIndex+    updateIndex_capacityUnits,+    updateIndex_description,+    updateIndex_documentMetadataConfigurationUpdates,+    updateIndex_name,+    updateIndex_roleArn,+    updateIndex_userContextPolicy,+    updateIndex_userGroupResolutionConfiguration,+    updateIndex_userTokenConfigurations,+    updateIndex_id,++    -- ** UpdateQuerySuggestionsBlockList+    updateQuerySuggestionsBlockList_description,+    updateQuerySuggestionsBlockList_name,+    updateQuerySuggestionsBlockList_roleArn,+    updateQuerySuggestionsBlockList_sourceS3Path,+    updateQuerySuggestionsBlockList_indexId,+    updateQuerySuggestionsBlockList_id,++    -- ** UpdateQuerySuggestionsConfig+    updateQuerySuggestionsConfig_includeQueriesWithoutUserInformation,+    updateQuerySuggestionsConfig_minimumNumberOfQueryingUsers,+    updateQuerySuggestionsConfig_minimumQueryCount,+    updateQuerySuggestionsConfig_mode,+    updateQuerySuggestionsConfig_queryLogLookBackWindowInDays,+    updateQuerySuggestionsConfig_indexId,++    -- ** UpdateThesaurus+    updateThesaurus_description,+    updateThesaurus_name,+    updateThesaurus_roleArn,+    updateThesaurus_sourceS3Path,+    updateThesaurus_id,+    updateThesaurus_indexId,++    -- * Types++    -- ** AccessControlConfigurationSummary+    accessControlConfigurationSummary_id,++    -- ** AccessControlListConfiguration+    accessControlListConfiguration_keyPath,++    -- ** AclConfiguration+    aclConfiguration_allowedGroupsColumnName,++    -- ** AdditionalResultAttribute+    additionalResultAttribute_key,+    additionalResultAttribute_valueType,+    additionalResultAttribute_value,++    -- ** AdditionalResultAttributeValue+    additionalResultAttributeValue_textWithHighlightsValue,++    -- ** AlfrescoConfiguration+    alfrescoConfiguration_blogFieldMappings,+    alfrescoConfiguration_crawlComments,+    alfrescoConfiguration_crawlSystemFolders,+    alfrescoConfiguration_documentLibraryFieldMappings,+    alfrescoConfiguration_entityFilter,+    alfrescoConfiguration_exclusionPatterns,+    alfrescoConfiguration_inclusionPatterns,+    alfrescoConfiguration_vpcConfiguration,+    alfrescoConfiguration_wikiFieldMappings,+    alfrescoConfiguration_siteUrl,+    alfrescoConfiguration_siteId,+    alfrescoConfiguration_secretArn,+    alfrescoConfiguration_sslCertificateS3Path,++    -- ** AttributeFilter+    attributeFilter_andAllFilters,+    attributeFilter_containsAll,+    attributeFilter_containsAny,+    attributeFilter_equalsTo,+    attributeFilter_greaterThan,+    attributeFilter_greaterThanOrEquals,+    attributeFilter_lessThan,+    attributeFilter_lessThanOrEquals,+    attributeFilter_notFilter,+    attributeFilter_orAllFilters,++    -- ** AuthenticationConfiguration+    authenticationConfiguration_basicAuthentication,++    -- ** BasicAuthenticationConfiguration+    basicAuthenticationConfiguration_host,+    basicAuthenticationConfiguration_port,+    basicAuthenticationConfiguration_credentials,++    -- ** BatchDeleteDocumentResponseFailedDocument+    batchDeleteDocumentResponseFailedDocument_errorCode,+    batchDeleteDocumentResponseFailedDocument_errorMessage,+    batchDeleteDocumentResponseFailedDocument_id,++    -- ** BatchGetDocumentStatusResponseError+    batchGetDocumentStatusResponseError_documentId,+    batchGetDocumentStatusResponseError_errorCode,+    batchGetDocumentStatusResponseError_errorMessage,++    -- ** BatchPutDocumentResponseFailedDocument+    batchPutDocumentResponseFailedDocument_errorCode,+    batchPutDocumentResponseFailedDocument_errorMessage,+    batchPutDocumentResponseFailedDocument_id,++    -- ** BoxConfiguration+    boxConfiguration_commentFieldMappings,+    boxConfiguration_crawlComments,+    boxConfiguration_crawlTasks,+    boxConfiguration_crawlWebLinks,+    boxConfiguration_exclusionPatterns,+    boxConfiguration_fileFieldMappings,+    boxConfiguration_inclusionPatterns,+    boxConfiguration_taskFieldMappings,+    boxConfiguration_useChangeLog,+    boxConfiguration_vpcConfiguration,+    boxConfiguration_webLinkFieldMappings,+    boxConfiguration_enterpriseId,+    boxConfiguration_secretArn,++    -- ** CapacityUnitsConfiguration+    capacityUnitsConfiguration_storageCapacityUnits,+    capacityUnitsConfiguration_queryCapacityUnits,++    -- ** ClickFeedback+    clickFeedback_resultId,+    clickFeedback_clickTime,++    -- ** ColumnConfiguration+    columnConfiguration_documentTitleColumnName,+    columnConfiguration_fieldMappings,+    columnConfiguration_documentIdColumnName,+    columnConfiguration_documentDataColumnName,+    columnConfiguration_changeDetectingColumns,++    -- ** ConfluenceAttachmentConfiguration+    confluenceAttachmentConfiguration_attachmentFieldMappings,+    confluenceAttachmentConfiguration_crawlAttachments,++    -- ** ConfluenceAttachmentToIndexFieldMapping+    confluenceAttachmentToIndexFieldMapping_dataSourceFieldName,+    confluenceAttachmentToIndexFieldMapping_dateFieldFormat,+    confluenceAttachmentToIndexFieldMapping_indexFieldName,++    -- ** ConfluenceBlogConfiguration+    confluenceBlogConfiguration_blogFieldMappings,++    -- ** ConfluenceBlogToIndexFieldMapping+    confluenceBlogToIndexFieldMapping_dataSourceFieldName,+    confluenceBlogToIndexFieldMapping_dateFieldFormat,+    confluenceBlogToIndexFieldMapping_indexFieldName,++    -- ** ConfluenceConfiguration+    confluenceConfiguration_attachmentConfiguration,+    confluenceConfiguration_authenticationType,+    confluenceConfiguration_blogConfiguration,+    confluenceConfiguration_exclusionPatterns,+    confluenceConfiguration_inclusionPatterns,+    confluenceConfiguration_pageConfiguration,+    confluenceConfiguration_proxyConfiguration,+    confluenceConfiguration_spaceConfiguration,+    confluenceConfiguration_vpcConfiguration,+    confluenceConfiguration_serverUrl,+    confluenceConfiguration_secretArn,+    confluenceConfiguration_version,++    -- ** ConfluencePageConfiguration+    confluencePageConfiguration_pageFieldMappings,++    -- ** ConfluencePageToIndexFieldMapping+    confluencePageToIndexFieldMapping_dataSourceFieldName,+    confluencePageToIndexFieldMapping_dateFieldFormat,+    confluencePageToIndexFieldMapping_indexFieldName,++    -- ** ConfluenceSpaceConfiguration+    confluenceSpaceConfiguration_crawlArchivedSpaces,+    confluenceSpaceConfiguration_crawlPersonalSpaces,+    confluenceSpaceConfiguration_excludeSpaces,+    confluenceSpaceConfiguration_includeSpaces,+    confluenceSpaceConfiguration_spaceFieldMappings,++    -- ** ConfluenceSpaceToIndexFieldMapping+    confluenceSpaceToIndexFieldMapping_dataSourceFieldName,+    confluenceSpaceToIndexFieldMapping_dateFieldFormat,+    confluenceSpaceToIndexFieldMapping_indexFieldName,++    -- ** ConnectionConfiguration+    connectionConfiguration_databaseHost,+    connectionConfiguration_databasePort,+    connectionConfiguration_databaseName,+    connectionConfiguration_tableName,+    connectionConfiguration_secretArn,++    -- ** ContentSourceConfiguration+    contentSourceConfiguration_dataSourceIds,+    contentSourceConfiguration_directPutContent,+    contentSourceConfiguration_faqIds,++    -- ** Correction+    correction_beginOffset,+    correction_correctedTerm,+    correction_endOffset,+    correction_term,++    -- ** CustomDocumentEnrichmentConfiguration+    customDocumentEnrichmentConfiguration_inlineConfigurations,+    customDocumentEnrichmentConfiguration_postExtractionHookConfiguration,+    customDocumentEnrichmentConfiguration_preExtractionHookConfiguration,+    customDocumentEnrichmentConfiguration_roleArn,++    -- ** DataSourceConfiguration+    dataSourceConfiguration_alfrescoConfiguration,+    dataSourceConfiguration_boxConfiguration,+    dataSourceConfiguration_confluenceConfiguration,+    dataSourceConfiguration_databaseConfiguration,+    dataSourceConfiguration_fsxConfiguration,+    dataSourceConfiguration_gitHubConfiguration,+    dataSourceConfiguration_googleDriveConfiguration,+    dataSourceConfiguration_jiraConfiguration,+    dataSourceConfiguration_oneDriveConfiguration,+    dataSourceConfiguration_quipConfiguration,+    dataSourceConfiguration_s3Configuration,+    dataSourceConfiguration_salesforceConfiguration,+    dataSourceConfiguration_serviceNowConfiguration,+    dataSourceConfiguration_sharePointConfiguration,+    dataSourceConfiguration_slackConfiguration,+    dataSourceConfiguration_templateConfiguration,+    dataSourceConfiguration_webCrawlerConfiguration,+    dataSourceConfiguration_workDocsConfiguration,++    -- ** DataSourceGroup+    dataSourceGroup_groupId,+    dataSourceGroup_dataSourceId,++    -- ** DataSourceSummary+    dataSourceSummary_createdAt,+    dataSourceSummary_id,+    dataSourceSummary_languageCode,+    dataSourceSummary_name,+    dataSourceSummary_status,+    dataSourceSummary_type,+    dataSourceSummary_updatedAt,++    -- ** DataSourceSyncJob+    dataSourceSyncJob_dataSourceErrorCode,+    dataSourceSyncJob_endTime,+    dataSourceSyncJob_errorCode,+    dataSourceSyncJob_errorMessage,+    dataSourceSyncJob_executionId,+    dataSourceSyncJob_metrics,+    dataSourceSyncJob_startTime,+    dataSourceSyncJob_status,++    -- ** DataSourceSyncJobMetricTarget+    dataSourceSyncJobMetricTarget_dataSourceSyncJobId,+    dataSourceSyncJobMetricTarget_dataSourceId,++    -- ** DataSourceSyncJobMetrics+    dataSourceSyncJobMetrics_documentsAdded,+    dataSourceSyncJobMetrics_documentsDeleted,+    dataSourceSyncJobMetrics_documentsFailed,+    dataSourceSyncJobMetrics_documentsModified,+    dataSourceSyncJobMetrics_documentsScanned,++    -- ** DataSourceToIndexFieldMapping+    dataSourceToIndexFieldMapping_dateFieldFormat,+    dataSourceToIndexFieldMapping_dataSourceFieldName,+    dataSourceToIndexFieldMapping_indexFieldName,++    -- ** DataSourceVpcConfiguration+    dataSourceVpcConfiguration_subnetIds,+    dataSourceVpcConfiguration_securityGroupIds,++    -- ** DatabaseConfiguration+    databaseConfiguration_aclConfiguration,+    databaseConfiguration_sqlConfiguration,+    databaseConfiguration_vpcConfiguration,+    databaseConfiguration_databaseEngineType,+    databaseConfiguration_connectionConfiguration,+    databaseConfiguration_columnConfiguration,++    -- ** Document+    document_accessControlConfigurationId,+    document_accessControlList,+    document_attributes,+    document_blob,+    document_contentType,+    document_hierarchicalAccessControlList,+    document_s3Path,+    document_title,+    document_id,++    -- ** DocumentAttribute+    documentAttribute_key,+    documentAttribute_value,++    -- ** DocumentAttributeCondition+    documentAttributeCondition_conditionOnValue,+    documentAttributeCondition_conditionDocumentAttributeKey,+    documentAttributeCondition_operator,++    -- ** DocumentAttributeTarget+    documentAttributeTarget_targetDocumentAttributeKey,+    documentAttributeTarget_targetDocumentAttributeValue,+    documentAttributeTarget_targetDocumentAttributeValueDeletion,++    -- ** DocumentAttributeValue+    documentAttributeValue_dateValue,+    documentAttributeValue_longValue,+    documentAttributeValue_stringListValue,+    documentAttributeValue_stringValue,++    -- ** DocumentAttributeValueCountPair+    documentAttributeValueCountPair_count,+    documentAttributeValueCountPair_documentAttributeValue,+    documentAttributeValueCountPair_facetResults,++    -- ** DocumentInfo+    documentInfo_attributes,+    documentInfo_documentId,++    -- ** DocumentMetadataConfiguration+    documentMetadataConfiguration_relevance,+    documentMetadataConfiguration_search,+    documentMetadataConfiguration_name,+    documentMetadataConfiguration_type,++    -- ** DocumentRelevanceConfiguration+    documentRelevanceConfiguration_name,+    documentRelevanceConfiguration_relevance,++    -- ** DocumentsMetadataConfiguration+    documentsMetadataConfiguration_s3Prefix,++    -- ** EntityConfiguration+    entityConfiguration_entityId,+    entityConfiguration_entityType,++    -- ** EntityDisplayData+    entityDisplayData_firstName,+    entityDisplayData_groupName,+    entityDisplayData_identifiedUserName,+    entityDisplayData_lastName,+    entityDisplayData_userName,++    -- ** EntityPersonaConfiguration+    entityPersonaConfiguration_entityId,+    entityPersonaConfiguration_persona,++    -- ** ExperienceConfiguration+    experienceConfiguration_contentSourceConfiguration,+    experienceConfiguration_userIdentityConfiguration,++    -- ** ExperienceEndpoint+    experienceEndpoint_endpoint,+    experienceEndpoint_endpointType,++    -- ** ExperienceEntitiesSummary+    experienceEntitiesSummary_displayData,+    experienceEntitiesSummary_entityId,+    experienceEntitiesSummary_entityType,++    -- ** ExperiencesSummary+    experiencesSummary_createdAt,+    experiencesSummary_endpoints,+    experiencesSummary_id,+    experiencesSummary_name,+    experiencesSummary_status,++    -- ** Facet+    facet_documentAttributeKey,+    facet_facets,+    facet_maxResults,++    -- ** FacetResult+    facetResult_documentAttributeKey,+    facetResult_documentAttributeValueCountPairs,+    facetResult_documentAttributeValueType,++    -- ** FailedEntity+    failedEntity_entityId,+    failedEntity_errorMessage,++    -- ** FaqStatistics+    faqStatistics_indexedQuestionAnswersCount,++    -- ** FaqSummary+    faqSummary_createdAt,+    faqSummary_fileFormat,+    faqSummary_id,+    faqSummary_languageCode,+    faqSummary_name,+    faqSummary_status,+    faqSummary_updatedAt,++    -- ** FsxConfiguration+    fsxConfiguration_exclusionPatterns,+    fsxConfiguration_fieldMappings,+    fsxConfiguration_inclusionPatterns,+    fsxConfiguration_secretArn,+    fsxConfiguration_fileSystemId,+    fsxConfiguration_fileSystemType,+    fsxConfiguration_vpcConfiguration,++    -- ** GitHubConfiguration+    gitHubConfiguration_exclusionFileNamePatterns,+    gitHubConfiguration_exclusionFileTypePatterns,+    gitHubConfiguration_exclusionFolderNamePatterns,+    gitHubConfiguration_gitHubCommitConfigurationFieldMappings,+    gitHubConfiguration_gitHubDocumentCrawlProperties,+    gitHubConfiguration_gitHubIssueAttachmentConfigurationFieldMappings,+    gitHubConfiguration_gitHubIssueCommentConfigurationFieldMappings,+    gitHubConfiguration_gitHubIssueDocumentConfigurationFieldMappings,+    gitHubConfiguration_gitHubPullRequestCommentConfigurationFieldMappings,+    gitHubConfiguration_gitHubPullRequestDocumentAttachmentConfigurationFieldMappings,+    gitHubConfiguration_gitHubPullRequestDocumentConfigurationFieldMappings,+    gitHubConfiguration_gitHubRepositoryConfigurationFieldMappings,+    gitHubConfiguration_inclusionFileNamePatterns,+    gitHubConfiguration_inclusionFileTypePatterns,+    gitHubConfiguration_inclusionFolderNamePatterns,+    gitHubConfiguration_onPremiseConfiguration,+    gitHubConfiguration_repositoryFilter,+    gitHubConfiguration_saaSConfiguration,+    gitHubConfiguration_type,+    gitHubConfiguration_useChangeLog,+    gitHubConfiguration_vpcConfiguration,+    gitHubConfiguration_secretArn,++    -- ** GitHubDocumentCrawlProperties+    gitHubDocumentCrawlProperties_crawlIssue,+    gitHubDocumentCrawlProperties_crawlIssueComment,+    gitHubDocumentCrawlProperties_crawlIssueCommentAttachment,+    gitHubDocumentCrawlProperties_crawlPullRequest,+    gitHubDocumentCrawlProperties_crawlPullRequestComment,+    gitHubDocumentCrawlProperties_crawlPullRequestCommentAttachment,+    gitHubDocumentCrawlProperties_crawlRepositoryDocuments,++    -- ** GoogleDriveConfiguration+    googleDriveConfiguration_excludeMimeTypes,+    googleDriveConfiguration_excludeSharedDrives,+    googleDriveConfiguration_excludeUserAccounts,+    googleDriveConfiguration_exclusionPatterns,+    googleDriveConfiguration_fieldMappings,+    googleDriveConfiguration_inclusionPatterns,+    googleDriveConfiguration_secretArn,++    -- ** GroupMembers+    groupMembers_memberGroups,+    groupMembers_memberUsers,+    groupMembers_s3PathforGroupMembers,++    -- ** GroupOrderingIdSummary+    groupOrderingIdSummary_failureReason,+    groupOrderingIdSummary_lastUpdatedAt,+    groupOrderingIdSummary_orderingId,+    groupOrderingIdSummary_receivedAt,+    groupOrderingIdSummary_status,++    -- ** GroupSummary+    groupSummary_groupId,+    groupSummary_orderingId,++    -- ** HierarchicalPrincipal+    hierarchicalPrincipal_principalList,++    -- ** Highlight+    highlight_topAnswer,+    highlight_type,+    highlight_beginOffset,+    highlight_endOffset,++    -- ** HookConfiguration+    hookConfiguration_invocationCondition,+    hookConfiguration_lambdaArn,+    hookConfiguration_s3Bucket,++    -- ** IndexConfigurationSummary+    indexConfigurationSummary_edition,+    indexConfigurationSummary_id,+    indexConfigurationSummary_name,+    indexConfigurationSummary_createdAt,+    indexConfigurationSummary_updatedAt,+    indexConfigurationSummary_status,++    -- ** IndexStatistics+    indexStatistics_faqStatistics,+    indexStatistics_textDocumentStatistics,++    -- ** InlineCustomDocumentEnrichmentConfiguration+    inlineCustomDocumentEnrichmentConfiguration_condition,+    inlineCustomDocumentEnrichmentConfiguration_documentContentDeletion,+    inlineCustomDocumentEnrichmentConfiguration_target,++    -- ** JiraConfiguration+    jiraConfiguration_attachmentFieldMappings,+    jiraConfiguration_commentFieldMappings,+    jiraConfiguration_exclusionPatterns,+    jiraConfiguration_inclusionPatterns,+    jiraConfiguration_issueFieldMappings,+    jiraConfiguration_issueSubEntityFilter,+    jiraConfiguration_issueType,+    jiraConfiguration_project,+    jiraConfiguration_projectFieldMappings,+    jiraConfiguration_status,+    jiraConfiguration_useChangeLog,+    jiraConfiguration_vpcConfiguration,+    jiraConfiguration_workLogFieldMappings,+    jiraConfiguration_jiraAccountUrl,+    jiraConfiguration_secretArn,++    -- ** JsonTokenTypeConfiguration+    jsonTokenTypeConfiguration_userNameAttributeField,+    jsonTokenTypeConfiguration_groupAttributeField,++    -- ** JwtTokenTypeConfiguration+    jwtTokenTypeConfiguration_claimRegex,+    jwtTokenTypeConfiguration_groupAttributeField,+    jwtTokenTypeConfiguration_issuer,+    jwtTokenTypeConfiguration_secretManagerArn,+    jwtTokenTypeConfiguration_url,+    jwtTokenTypeConfiguration_userNameAttributeField,+    jwtTokenTypeConfiguration_keyLocation,++    -- ** MemberGroup+    memberGroup_dataSourceId,+    memberGroup_groupId,++    -- ** MemberUser+    memberUser_userId,++    -- ** OnPremiseConfiguration+    onPremiseConfiguration_hostUrl,+    onPremiseConfiguration_organizationName,+    onPremiseConfiguration_sslCertificateS3Path,++    -- ** OneDriveConfiguration+    oneDriveConfiguration_disableLocalGroups,+    oneDriveConfiguration_exclusionPatterns,+    oneDriveConfiguration_fieldMappings,+    oneDriveConfiguration_inclusionPatterns,+    oneDriveConfiguration_tenantDomain,+    oneDriveConfiguration_secretArn,+    oneDriveConfiguration_oneDriveUsers,++    -- ** OneDriveUsers+    oneDriveUsers_oneDriveUserList,+    oneDriveUsers_oneDriveUserS3Path,++    -- ** PersonasSummary+    personasSummary_createdAt,+    personasSummary_entityId,+    personasSummary_persona,+    personasSummary_updatedAt,++    -- ** Principal+    principal_dataSourceId,+    principal_name,+    principal_type,+    principal_access,++    -- ** ProxyConfiguration+    proxyConfiguration_credentials,+    proxyConfiguration_host,+    proxyConfiguration_port,++    -- ** QueryResultItem+    queryResultItem_additionalAttributes,+    queryResultItem_documentAttributes,+    queryResultItem_documentExcerpt,+    queryResultItem_documentId,+    queryResultItem_documentTitle,+    queryResultItem_documentURI,+    queryResultItem_feedbackToken,+    queryResultItem_format,+    queryResultItem_id,+    queryResultItem_scoreAttributes,+    queryResultItem_tableExcerpt,+    queryResultItem_type,++    -- ** QuerySuggestionsBlockListSummary+    querySuggestionsBlockListSummary_createdAt,+    querySuggestionsBlockListSummary_id,+    querySuggestionsBlockListSummary_itemCount,+    querySuggestionsBlockListSummary_name,+    querySuggestionsBlockListSummary_status,+    querySuggestionsBlockListSummary_updatedAt,++    -- ** QuipConfiguration+    quipConfiguration_attachmentFieldMappings,+    quipConfiguration_crawlAttachments,+    quipConfiguration_crawlChatRooms,+    quipConfiguration_crawlFileComments,+    quipConfiguration_exclusionPatterns,+    quipConfiguration_folderIds,+    quipConfiguration_inclusionPatterns,+    quipConfiguration_messageFieldMappings,+    quipConfiguration_threadFieldMappings,+    quipConfiguration_vpcConfiguration,+    quipConfiguration_domain,+    quipConfiguration_secretArn,++    -- ** Relevance+    relevance_duration,+    relevance_freshness,+    relevance_importance,+    relevance_rankOrder,+    relevance_valueImportanceMap,++    -- ** RelevanceFeedback+    relevanceFeedback_resultId,+    relevanceFeedback_relevanceValue,++    -- ** S3DataSourceConfiguration+    s3DataSourceConfiguration_accessControlListConfiguration,+    s3DataSourceConfiguration_documentsMetadataConfiguration,+    s3DataSourceConfiguration_exclusionPatterns,+    s3DataSourceConfiguration_inclusionPatterns,+    s3DataSourceConfiguration_inclusionPrefixes,+    s3DataSourceConfiguration_bucketName,++    -- ** S3Path+    s3Path_bucket,+    s3Path_key,++    -- ** SaaSConfiguration+    saaSConfiguration_organizationName,+    saaSConfiguration_hostUrl,++    -- ** SalesforceChatterFeedConfiguration+    salesforceChatterFeedConfiguration_documentTitleFieldName,+    salesforceChatterFeedConfiguration_fieldMappings,+    salesforceChatterFeedConfiguration_includeFilterTypes,+    salesforceChatterFeedConfiguration_documentDataFieldName,++    -- ** SalesforceConfiguration+    salesforceConfiguration_chatterFeedConfiguration,+    salesforceConfiguration_crawlAttachments,+    salesforceConfiguration_excludeAttachmentFilePatterns,+    salesforceConfiguration_includeAttachmentFilePatterns,+    salesforceConfiguration_knowledgeArticleConfiguration,+    salesforceConfiguration_standardObjectAttachmentConfiguration,+    salesforceConfiguration_standardObjectConfigurations,+    salesforceConfiguration_serverUrl,+    salesforceConfiguration_secretArn,++    -- ** SalesforceCustomKnowledgeArticleTypeConfiguration+    salesforceCustomKnowledgeArticleTypeConfiguration_documentTitleFieldName,+    salesforceCustomKnowledgeArticleTypeConfiguration_fieldMappings,+    salesforceCustomKnowledgeArticleTypeConfiguration_name,+    salesforceCustomKnowledgeArticleTypeConfiguration_documentDataFieldName,++    -- ** SalesforceKnowledgeArticleConfiguration+    salesforceKnowledgeArticleConfiguration_customKnowledgeArticleTypeConfigurations,+    salesforceKnowledgeArticleConfiguration_standardKnowledgeArticleTypeConfiguration,+    salesforceKnowledgeArticleConfiguration_includedStates,++    -- ** SalesforceStandardKnowledgeArticleTypeConfiguration+    salesforceStandardKnowledgeArticleTypeConfiguration_documentTitleFieldName,+    salesforceStandardKnowledgeArticleTypeConfiguration_fieldMappings,+    salesforceStandardKnowledgeArticleTypeConfiguration_documentDataFieldName,++    -- ** SalesforceStandardObjectAttachmentConfiguration+    salesforceStandardObjectAttachmentConfiguration_documentTitleFieldName,+    salesforceStandardObjectAttachmentConfiguration_fieldMappings,++    -- ** SalesforceStandardObjectConfiguration+    salesforceStandardObjectConfiguration_documentTitleFieldName,+    salesforceStandardObjectConfiguration_fieldMappings,+    salesforceStandardObjectConfiguration_name,+    salesforceStandardObjectConfiguration_documentDataFieldName,++    -- ** ScoreAttributes+    scoreAttributes_scoreConfidence,++    -- ** Search+    search_displayable,+    search_facetable,+    search_searchable,+    search_sortable,++    -- ** SeedUrlConfiguration+    seedUrlConfiguration_webCrawlerMode,+    seedUrlConfiguration_seedUrls,++    -- ** ServerSideEncryptionConfiguration+    serverSideEncryptionConfiguration_kmsKeyId,++    -- ** ServiceNowConfiguration+    serviceNowConfiguration_authenticationType,+    serviceNowConfiguration_knowledgeArticleConfiguration,+    serviceNowConfiguration_serviceCatalogConfiguration,+    serviceNowConfiguration_hostUrl,+    serviceNowConfiguration_secretArn,+    serviceNowConfiguration_serviceNowBuildVersion,++    -- ** ServiceNowKnowledgeArticleConfiguration+    serviceNowKnowledgeArticleConfiguration_crawlAttachments,+    serviceNowKnowledgeArticleConfiguration_documentTitleFieldName,+    serviceNowKnowledgeArticleConfiguration_excludeAttachmentFilePatterns,+    serviceNowKnowledgeArticleConfiguration_fieldMappings,+    serviceNowKnowledgeArticleConfiguration_filterQuery,+    serviceNowKnowledgeArticleConfiguration_includeAttachmentFilePatterns,+    serviceNowKnowledgeArticleConfiguration_documentDataFieldName,++    -- ** ServiceNowServiceCatalogConfiguration+    serviceNowServiceCatalogConfiguration_crawlAttachments,+    serviceNowServiceCatalogConfiguration_documentTitleFieldName,+    serviceNowServiceCatalogConfiguration_excludeAttachmentFilePatterns,+    serviceNowServiceCatalogConfiguration_fieldMappings,+    serviceNowServiceCatalogConfiguration_includeAttachmentFilePatterns,+    serviceNowServiceCatalogConfiguration_documentDataFieldName,++    -- ** SharePointConfiguration+    sharePointConfiguration_authenticationType,+    sharePointConfiguration_crawlAttachments,+    sharePointConfiguration_disableLocalGroups,+    sharePointConfiguration_documentTitleFieldName,+    sharePointConfiguration_exclusionPatterns,+    sharePointConfiguration_fieldMappings,+    sharePointConfiguration_inclusionPatterns,+    sharePointConfiguration_proxyConfiguration,+    sharePointConfiguration_sslCertificateS3Path,+    sharePointConfiguration_useChangeLog,+    sharePointConfiguration_vpcConfiguration,+    sharePointConfiguration_sharePointVersion,+    sharePointConfiguration_urls,+    sharePointConfiguration_secretArn,++    -- ** SiteMapsConfiguration+    siteMapsConfiguration_siteMaps,++    -- ** SlackConfiguration+    slackConfiguration_crawlBotMessage,+    slackConfiguration_excludeArchived,+    slackConfiguration_exclusionPatterns,+    slackConfiguration_fieldMappings,+    slackConfiguration_inclusionPatterns,+    slackConfiguration_lookBackPeriod,+    slackConfiguration_privateChannelFilter,+    slackConfiguration_publicChannelFilter,+    slackConfiguration_useChangeLog,+    slackConfiguration_vpcConfiguration,+    slackConfiguration_teamId,+    slackConfiguration_secretArn,+    slackConfiguration_slackEntityList,+    slackConfiguration_sinceCrawlDate,++    -- ** SortingConfiguration+    sortingConfiguration_documentAttributeKey,+    sortingConfiguration_sortOrder,++    -- ** SpellCorrectedQuery+    spellCorrectedQuery_corrections,+    spellCorrectedQuery_suggestedQueryText,++    -- ** SpellCorrectionConfiguration+    spellCorrectionConfiguration_includeQuerySpellCheckSuggestions,++    -- ** SqlConfiguration+    sqlConfiguration_queryIdentifiersEnclosingOption,++    -- ** Status+    status_documentId,+    status_documentStatus,+    status_failureCode,+    status_failureReason,++    -- ** Suggestion+    suggestion_id,+    suggestion_value,++    -- ** SuggestionHighlight+    suggestionHighlight_beginOffset,+    suggestionHighlight_endOffset,++    -- ** SuggestionTextWithHighlights+    suggestionTextWithHighlights_highlights,+    suggestionTextWithHighlights_text,++    -- ** SuggestionValue+    suggestionValue_text,++    -- ** TableCell+    tableCell_header,+    tableCell_highlighted,+    tableCell_topAnswer,+    tableCell_value,++    -- ** TableExcerpt+    tableExcerpt_rows,+    tableExcerpt_totalNumberOfRows,++    -- ** TableRow+    tableRow_cells,++    -- ** Tag+    tag_key,+    tag_value,++    -- ** Template++    -- ** TemplateConfiguration+    templateConfiguration_template,++    -- ** TextDocumentStatistics+    textDocumentStatistics_indexedTextDocumentsCount,+    textDocumentStatistics_indexedTextBytes,++    -- ** TextWithHighlights+    textWithHighlights_highlights,+    textWithHighlights_text,++    -- ** ThesaurusSummary+    thesaurusSummary_createdAt,+    thesaurusSummary_id,+    thesaurusSummary_name,+    thesaurusSummary_status,+    thesaurusSummary_updatedAt,++    -- ** TimeRange+    timeRange_endTime,+    timeRange_startTime,++    -- ** Urls+    urls_seedUrlConfiguration,+    urls_siteMapsConfiguration,++    -- ** UserContext+    userContext_dataSourceGroups,+    userContext_groups,+    userContext_token,+    userContext_userId,++    -- ** UserGroupResolutionConfiguration+    userGroupResolutionConfiguration_userGroupResolutionMode,++    -- ** UserIdentityConfiguration+    userIdentityConfiguration_identityAttributeName,++    -- ** UserTokenConfiguration+    userTokenConfiguration_jsonTokenTypeConfiguration,+    userTokenConfiguration_jwtTokenTypeConfiguration,++    -- ** Warning+    warning_code,+    warning_message,++    -- ** WebCrawlerConfiguration+    webCrawlerConfiguration_authenticationConfiguration,+    webCrawlerConfiguration_crawlDepth,+    webCrawlerConfiguration_maxContentSizePerPageInMegaBytes,+    webCrawlerConfiguration_maxLinksPerPage,+    webCrawlerConfiguration_maxUrlsPerMinuteCrawlRate,+    webCrawlerConfiguration_proxyConfiguration,+    webCrawlerConfiguration_urlExclusionPatterns,+    webCrawlerConfiguration_urlInclusionPatterns,+    webCrawlerConfiguration_urls,++    -- ** WorkDocsConfiguration+    workDocsConfiguration_crawlComments,+    workDocsConfiguration_exclusionPatterns,+    workDocsConfiguration_fieldMappings,+    workDocsConfiguration_inclusionPatterns,+    workDocsConfiguration_useChangeLog,+    workDocsConfiguration_organizationId,+  )+where++import Amazonka.Kendra.AssociateEntitiesToExperience+import Amazonka.Kendra.AssociatePersonasToEntities+import Amazonka.Kendra.BatchDeleteDocument+import Amazonka.Kendra.BatchGetDocumentStatus+import Amazonka.Kendra.BatchPutDocument+import Amazonka.Kendra.ClearQuerySuggestions+import Amazonka.Kendra.CreateAccessControlConfiguration+import Amazonka.Kendra.CreateDataSource+import Amazonka.Kendra.CreateExperience+import Amazonka.Kendra.CreateFaq+import Amazonka.Kendra.CreateIndex+import Amazonka.Kendra.CreateQuerySuggestionsBlockList+import Amazonka.Kendra.CreateThesaurus+import Amazonka.Kendra.DeleteAccessControlConfiguration+import Amazonka.Kendra.DeleteDataSource+import Amazonka.Kendra.DeleteExperience+import Amazonka.Kendra.DeleteFaq+import Amazonka.Kendra.DeleteIndex+import Amazonka.Kendra.DeletePrincipalMapping+import Amazonka.Kendra.DeleteQuerySuggestionsBlockList+import Amazonka.Kendra.DeleteThesaurus+import Amazonka.Kendra.DescribeAccessControlConfiguration+import Amazonka.Kendra.DescribeDataSource+import Amazonka.Kendra.DescribeExperience+import Amazonka.Kendra.DescribeFaq+import Amazonka.Kendra.DescribeIndex+import Amazonka.Kendra.DescribePrincipalMapping+import Amazonka.Kendra.DescribeQuerySuggestionsBlockList+import Amazonka.Kendra.DescribeQuerySuggestionsConfig+import Amazonka.Kendra.DescribeThesaurus+import Amazonka.Kendra.DisassociateEntitiesFromExperience+import Amazonka.Kendra.DisassociatePersonasFromEntities+import Amazonka.Kendra.GetQuerySuggestions+import Amazonka.Kendra.GetSnapshots+import Amazonka.Kendra.ListAccessControlConfigurations+import Amazonka.Kendra.ListDataSourceSyncJobs+import Amazonka.Kendra.ListDataSources+import Amazonka.Kendra.ListEntityPersonas+import Amazonka.Kendra.ListExperienceEntities+import Amazonka.Kendra.ListExperiences+import Amazonka.Kendra.ListFaqs+import Amazonka.Kendra.ListGroupsOlderThanOrderingId+import Amazonka.Kendra.ListIndices+import Amazonka.Kendra.ListQuerySuggestionsBlockLists+import Amazonka.Kendra.ListTagsForResource+import Amazonka.Kendra.ListThesauri+import Amazonka.Kendra.PutPrincipalMapping+import Amazonka.Kendra.Query+import Amazonka.Kendra.StartDataSourceSyncJob+import Amazonka.Kendra.StopDataSourceSyncJob+import Amazonka.Kendra.SubmitFeedback+import Amazonka.Kendra.TagResource+import Amazonka.Kendra.Types.AccessControlConfigurationSummary+import Amazonka.Kendra.Types.AccessControlListConfiguration+import Amazonka.Kendra.Types.AclConfiguration+import Amazonka.Kendra.Types.AdditionalResultAttribute+import Amazonka.Kendra.Types.AdditionalResultAttributeValue+import Amazonka.Kendra.Types.AlfrescoConfiguration+import Amazonka.Kendra.Types.AttributeFilter+import Amazonka.Kendra.Types.AuthenticationConfiguration+import Amazonka.Kendra.Types.BasicAuthenticationConfiguration+import Amazonka.Kendra.Types.BatchDeleteDocumentResponseFailedDocument+import Amazonka.Kendra.Types.BatchGetDocumentStatusResponseError+import Amazonka.Kendra.Types.BatchPutDocumentResponseFailedDocument+import Amazonka.Kendra.Types.BoxConfiguration+import Amazonka.Kendra.Types.CapacityUnitsConfiguration+import Amazonka.Kendra.Types.ClickFeedback+import Amazonka.Kendra.Types.ColumnConfiguration+import Amazonka.Kendra.Types.ConfluenceAttachmentConfiguration+import Amazonka.Kendra.Types.ConfluenceAttachmentToIndexFieldMapping+import Amazonka.Kendra.Types.ConfluenceBlogConfiguration+import Amazonka.Kendra.Types.ConfluenceBlogToIndexFieldMapping+import Amazonka.Kendra.Types.ConfluenceConfiguration+import Amazonka.Kendra.Types.ConfluencePageConfiguration+import Amazonka.Kendra.Types.ConfluencePageToIndexFieldMapping+import Amazonka.Kendra.Types.ConfluenceSpaceConfiguration+import Amazonka.Kendra.Types.ConfluenceSpaceToIndexFieldMapping+import Amazonka.Kendra.Types.ConnectionConfiguration+import Amazonka.Kendra.Types.ContentSourceConfiguration+import Amazonka.Kendra.Types.Correction+import Amazonka.Kendra.Types.CustomDocumentEnrichmentConfiguration+import Amazonka.Kendra.Types.DataSourceConfiguration+import Amazonka.Kendra.Types.DataSourceGroup+import Amazonka.Kendra.Types.DataSourceSummary+import Amazonka.Kendra.Types.DataSourceSyncJob+import Amazonka.Kendra.Types.DataSourceSyncJobMetricTarget+import Amazonka.Kendra.Types.DataSourceSyncJobMetrics+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import Amazonka.Kendra.Types.DataSourceVpcConfiguration+import Amazonka.Kendra.Types.DatabaseConfiguration+import Amazonka.Kendra.Types.Document+import Amazonka.Kendra.Types.DocumentAttribute+import Amazonka.Kendra.Types.DocumentAttributeCondition+import Amazonka.Kendra.Types.DocumentAttributeTarget+import Amazonka.Kendra.Types.DocumentAttributeValue+import Amazonka.Kendra.Types.DocumentAttributeValueCountPair+import Amazonka.Kendra.Types.DocumentInfo+import Amazonka.Kendra.Types.DocumentMetadataConfiguration+import Amazonka.Kendra.Types.DocumentRelevanceConfiguration+import Amazonka.Kendra.Types.DocumentsMetadataConfiguration+import Amazonka.Kendra.Types.EntityConfiguration+import Amazonka.Kendra.Types.EntityDisplayData+import Amazonka.Kendra.Types.EntityPersonaConfiguration+import Amazonka.Kendra.Types.ExperienceConfiguration+import Amazonka.Kendra.Types.ExperienceEndpoint+import Amazonka.Kendra.Types.ExperienceEntitiesSummary+import Amazonka.Kendra.Types.ExperiencesSummary+import Amazonka.Kendra.Types.Facet+import Amazonka.Kendra.Types.FacetResult+import Amazonka.Kendra.Types.FailedEntity+import Amazonka.Kendra.Types.FaqStatistics+import Amazonka.Kendra.Types.FaqSummary+import Amazonka.Kendra.Types.FsxConfiguration+import Amazonka.Kendra.Types.GitHubConfiguration+import Amazonka.Kendra.Types.GitHubDocumentCrawlProperties+import Amazonka.Kendra.Types.GoogleDriveConfiguration+import Amazonka.Kendra.Types.GroupMembers+import Amazonka.Kendra.Types.GroupOrderingIdSummary+import Amazonka.Kendra.Types.GroupSummary+import Amazonka.Kendra.Types.HierarchicalPrincipal+import Amazonka.Kendra.Types.Highlight+import Amazonka.Kendra.Types.HookConfiguration+import Amazonka.Kendra.Types.IndexConfigurationSummary+import Amazonka.Kendra.Types.IndexStatistics+import Amazonka.Kendra.Types.InlineCustomDocumentEnrichmentConfiguration+import Amazonka.Kendra.Types.JiraConfiguration+import Amazonka.Kendra.Types.JsonTokenTypeConfiguration+import Amazonka.Kendra.Types.JwtTokenTypeConfiguration+import Amazonka.Kendra.Types.MemberGroup+import Amazonka.Kendra.Types.MemberUser+import Amazonka.Kendra.Types.OnPremiseConfiguration+import Amazonka.Kendra.Types.OneDriveConfiguration+import Amazonka.Kendra.Types.OneDriveUsers+import Amazonka.Kendra.Types.PersonasSummary+import Amazonka.Kendra.Types.Principal+import Amazonka.Kendra.Types.ProxyConfiguration+import Amazonka.Kendra.Types.QueryResultItem+import Amazonka.Kendra.Types.QuerySuggestionsBlockListSummary+import Amazonka.Kendra.Types.QuipConfiguration+import Amazonka.Kendra.Types.Relevance+import Amazonka.Kendra.Types.RelevanceFeedback+import Amazonka.Kendra.Types.S3DataSourceConfiguration+import Amazonka.Kendra.Types.S3Path+import Amazonka.Kendra.Types.SaaSConfiguration+import Amazonka.Kendra.Types.SalesforceChatterFeedConfiguration+import Amazonka.Kendra.Types.SalesforceConfiguration+import Amazonka.Kendra.Types.SalesforceCustomKnowledgeArticleTypeConfiguration+import Amazonka.Kendra.Types.SalesforceKnowledgeArticleConfiguration+import Amazonka.Kendra.Types.SalesforceStandardKnowledgeArticleTypeConfiguration+import Amazonka.Kendra.Types.SalesforceStandardObjectAttachmentConfiguration+import Amazonka.Kendra.Types.SalesforceStandardObjectConfiguration+import Amazonka.Kendra.Types.ScoreAttributes+import Amazonka.Kendra.Types.Search+import Amazonka.Kendra.Types.SeedUrlConfiguration+import Amazonka.Kendra.Types.ServerSideEncryptionConfiguration+import Amazonka.Kendra.Types.ServiceNowConfiguration+import Amazonka.Kendra.Types.ServiceNowKnowledgeArticleConfiguration+import Amazonka.Kendra.Types.ServiceNowServiceCatalogConfiguration+import Amazonka.Kendra.Types.SharePointConfiguration+import Amazonka.Kendra.Types.SiteMapsConfiguration+import Amazonka.Kendra.Types.SlackConfiguration+import Amazonka.Kendra.Types.SortingConfiguration+import Amazonka.Kendra.Types.SpellCorrectedQuery+import Amazonka.Kendra.Types.SpellCorrectionConfiguration+import Amazonka.Kendra.Types.SqlConfiguration+import Amazonka.Kendra.Types.Status+import Amazonka.Kendra.Types.Suggestion+import Amazonka.Kendra.Types.SuggestionHighlight+import Amazonka.Kendra.Types.SuggestionTextWithHighlights+import Amazonka.Kendra.Types.SuggestionValue+import Amazonka.Kendra.Types.TableCell+import Amazonka.Kendra.Types.TableExcerpt+import Amazonka.Kendra.Types.TableRow+import Amazonka.Kendra.Types.Tag+import Amazonka.Kendra.Types.Template+import Amazonka.Kendra.Types.TemplateConfiguration+import Amazonka.Kendra.Types.TextDocumentStatistics+import Amazonka.Kendra.Types.TextWithHighlights+import Amazonka.Kendra.Types.ThesaurusSummary+import Amazonka.Kendra.Types.TimeRange+import Amazonka.Kendra.Types.Urls+import Amazonka.Kendra.Types.UserContext+import Amazonka.Kendra.Types.UserGroupResolutionConfiguration+import Amazonka.Kendra.Types.UserIdentityConfiguration+import Amazonka.Kendra.Types.UserTokenConfiguration+import Amazonka.Kendra.Types.Warning+import Amazonka.Kendra.Types.WebCrawlerConfiguration+import Amazonka.Kendra.Types.WorkDocsConfiguration+import Amazonka.Kendra.UntagResource+import Amazonka.Kendra.UpdateAccessControlConfiguration+import Amazonka.Kendra.UpdateDataSource+import Amazonka.Kendra.UpdateExperience+import Amazonka.Kendra.UpdateIndex+import Amazonka.Kendra.UpdateQuerySuggestionsBlockList+import Amazonka.Kendra.UpdateQuerySuggestionsConfig+import Amazonka.Kendra.UpdateThesaurus
+ gen/Amazonka/Kendra/ListAccessControlConfigurations.hs view
@@ -0,0 +1,252 @@+{-# 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.Kendra.ListAccessControlConfigurations+-- 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 one or more access control configurations for an index. This+-- includes user and group access information for your documents. This is+-- useful for user context filtering, where search results are filtered+-- based on the user or their group access to documents.+module Amazonka.Kendra.ListAccessControlConfigurations+  ( -- * Creating a Request+    ListAccessControlConfigurations (..),+    newListAccessControlConfigurations,++    -- * Request Lenses+    listAccessControlConfigurations_maxResults,+    listAccessControlConfigurations_nextToken,+    listAccessControlConfigurations_indexId,++    -- * Destructuring the Response+    ListAccessControlConfigurationsResponse (..),+    newListAccessControlConfigurationsResponse,++    -- * Response Lenses+    listAccessControlConfigurationsResponse_nextToken,+    listAccessControlConfigurationsResponse_httpStatus,+    listAccessControlConfigurationsResponse_accessControlConfigurations,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListAccessControlConfigurations' smart constructor.+data ListAccessControlConfigurations = ListAccessControlConfigurations'+  { -- | The maximum number of access control configurations to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the previous response was incomplete (because there\'s more data to+    -- retrieve), Amazon Kendra returns a pagination token in the response. You+    -- can use this pagination token to retrieve the next set of access control+    -- configurations.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the index for the access control configuration.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAccessControlConfigurations' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listAccessControlConfigurations_maxResults' - The maximum number of access control configurations to return.+--+-- 'nextToken', 'listAccessControlConfigurations_nextToken' - If the previous response was incomplete (because there\'s more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of access control+-- configurations.+--+-- 'indexId', 'listAccessControlConfigurations_indexId' - The identifier of the index for the access control configuration.+newListAccessControlConfigurations ::+  -- | 'indexId'+  Prelude.Text ->+  ListAccessControlConfigurations+newListAccessControlConfigurations pIndexId_ =+  ListAccessControlConfigurations'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      indexId = pIndexId_+    }++-- | The maximum number of access control configurations to return.+listAccessControlConfigurations_maxResults :: Lens.Lens' ListAccessControlConfigurations (Prelude.Maybe Prelude.Natural)+listAccessControlConfigurations_maxResults = Lens.lens (\ListAccessControlConfigurations' {maxResults} -> maxResults) (\s@ListAccessControlConfigurations' {} a -> s {maxResults = a} :: ListAccessControlConfigurations)++-- | If the previous response was incomplete (because there\'s more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of access control+-- configurations.+listAccessControlConfigurations_nextToken :: Lens.Lens' ListAccessControlConfigurations (Prelude.Maybe Prelude.Text)+listAccessControlConfigurations_nextToken = Lens.lens (\ListAccessControlConfigurations' {nextToken} -> nextToken) (\s@ListAccessControlConfigurations' {} a -> s {nextToken = a} :: ListAccessControlConfigurations)++-- | The identifier of the index for the access control configuration.+listAccessControlConfigurations_indexId :: Lens.Lens' ListAccessControlConfigurations Prelude.Text+listAccessControlConfigurations_indexId = Lens.lens (\ListAccessControlConfigurations' {indexId} -> indexId) (\s@ListAccessControlConfigurations' {} a -> s {indexId = a} :: ListAccessControlConfigurations)++instance+  Core.AWSRequest+    ListAccessControlConfigurations+  where+  type+    AWSResponse ListAccessControlConfigurations =+      ListAccessControlConfigurationsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListAccessControlConfigurationsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "AccessControlConfigurations"+                            Core..!@ Prelude.mempty+                        )+      )++instance+  Prelude.Hashable+    ListAccessControlConfigurations+  where+  hashWithSalt+    _salt+    ListAccessControlConfigurations' {..} =+      _salt+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken+        `Prelude.hashWithSalt` indexId++instance+  Prelude.NFData+    ListAccessControlConfigurations+  where+  rnf ListAccessControlConfigurations' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf indexId++instance+  Data.ToHeaders+    ListAccessControlConfigurations+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.ListAccessControlConfigurations" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListAccessControlConfigurations where+  toJSON ListAccessControlConfigurations' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath ListAccessControlConfigurations where+  toPath = Prelude.const "/"++instance Data.ToQuery ListAccessControlConfigurations where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListAccessControlConfigurationsResponse' smart constructor.+data ListAccessControlConfigurationsResponse = ListAccessControlConfigurationsResponse'+  { -- | If the response is truncated, Amazon Kendra returns this token, which+    -- you can use in the subsequent request to retrieve the next set of access+    -- control configurations.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The details of your access control configurations.+    accessControlConfigurations :: [AccessControlConfigurationSummary]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListAccessControlConfigurationsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listAccessControlConfigurationsResponse_nextToken' - If the response is truncated, Amazon Kendra returns this token, which+-- you can use in the subsequent request to retrieve the next set of access+-- control configurations.+--+-- 'httpStatus', 'listAccessControlConfigurationsResponse_httpStatus' - The response's http status code.+--+-- 'accessControlConfigurations', 'listAccessControlConfigurationsResponse_accessControlConfigurations' - The details of your access control configurations.+newListAccessControlConfigurationsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListAccessControlConfigurationsResponse+newListAccessControlConfigurationsResponse+  pHttpStatus_ =+    ListAccessControlConfigurationsResponse'+      { nextToken =+          Prelude.Nothing,+        httpStatus = pHttpStatus_,+        accessControlConfigurations =+          Prelude.mempty+      }++-- | If the response is truncated, Amazon Kendra returns this token, which+-- you can use in the subsequent request to retrieve the next set of access+-- control configurations.+listAccessControlConfigurationsResponse_nextToken :: Lens.Lens' ListAccessControlConfigurationsResponse (Prelude.Maybe Prelude.Text)+listAccessControlConfigurationsResponse_nextToken = Lens.lens (\ListAccessControlConfigurationsResponse' {nextToken} -> nextToken) (\s@ListAccessControlConfigurationsResponse' {} a -> s {nextToken = a} :: ListAccessControlConfigurationsResponse)++-- | The response's http status code.+listAccessControlConfigurationsResponse_httpStatus :: Lens.Lens' ListAccessControlConfigurationsResponse Prelude.Int+listAccessControlConfigurationsResponse_httpStatus = Lens.lens (\ListAccessControlConfigurationsResponse' {httpStatus} -> httpStatus) (\s@ListAccessControlConfigurationsResponse' {} a -> s {httpStatus = a} :: ListAccessControlConfigurationsResponse)++-- | The details of your access control configurations.+listAccessControlConfigurationsResponse_accessControlConfigurations :: Lens.Lens' ListAccessControlConfigurationsResponse [AccessControlConfigurationSummary]+listAccessControlConfigurationsResponse_accessControlConfigurations = Lens.lens (\ListAccessControlConfigurationsResponse' {accessControlConfigurations} -> accessControlConfigurations) (\s@ListAccessControlConfigurationsResponse' {} a -> s {accessControlConfigurations = a} :: ListAccessControlConfigurationsResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    ListAccessControlConfigurationsResponse+  where+  rnf ListAccessControlConfigurationsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf accessControlConfigurations
+ gen/Amazonka/Kendra/ListDataSourceSyncJobs.hs view
@@ -0,0 +1,278 @@+{-# 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.Kendra.ListDataSourceSyncJobs+-- 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 statistics about synchronizing a data source connector.+module Amazonka.Kendra.ListDataSourceSyncJobs+  ( -- * Creating a Request+    ListDataSourceSyncJobs (..),+    newListDataSourceSyncJobs,++    -- * Request Lenses+    listDataSourceSyncJobs_maxResults,+    listDataSourceSyncJobs_nextToken,+    listDataSourceSyncJobs_startTimeFilter,+    listDataSourceSyncJobs_statusFilter,+    listDataSourceSyncJobs_id,+    listDataSourceSyncJobs_indexId,++    -- * Destructuring the Response+    ListDataSourceSyncJobsResponse (..),+    newListDataSourceSyncJobsResponse,++    -- * Response Lenses+    listDataSourceSyncJobsResponse_history,+    listDataSourceSyncJobsResponse_nextToken,+    listDataSourceSyncJobsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDataSourceSyncJobs' smart constructor.+data ListDataSourceSyncJobs = ListDataSourceSyncJobs'+  { -- | The maximum number of synchronization jobs to return in the response. If+    -- there are fewer results in the list, this response contains only the+    -- actual results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the previous response was incomplete (because there is more data to+    -- retrieve), Amazon Kendra returns a pagination token in the response. You+    -- can use this pagination token to retrieve the next set of jobs.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | When specified, the synchronization jobs returned in the list are+    -- limited to jobs between the specified dates.+    startTimeFilter :: Prelude.Maybe TimeRange,+    -- | Only returns synchronization jobs with the @Status@ field equal to the+    -- specified status.+    statusFilter :: Prelude.Maybe DataSourceSyncJobStatus,+    -- | The identifier of the data source connector.+    id :: Prelude.Text,+    -- | The identifier of the index used with the data source connector.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDataSourceSyncJobs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listDataSourceSyncJobs_maxResults' - The maximum number of synchronization jobs to return in the response. If+-- there are fewer results in the list, this response contains only the+-- actual results.+--+-- 'nextToken', 'listDataSourceSyncJobs_nextToken' - If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of jobs.+--+-- 'startTimeFilter', 'listDataSourceSyncJobs_startTimeFilter' - When specified, the synchronization jobs returned in the list are+-- limited to jobs between the specified dates.+--+-- 'statusFilter', 'listDataSourceSyncJobs_statusFilter' - Only returns synchronization jobs with the @Status@ field equal to the+-- specified status.+--+-- 'id', 'listDataSourceSyncJobs_id' - The identifier of the data source connector.+--+-- 'indexId', 'listDataSourceSyncJobs_indexId' - The identifier of the index used with the data source connector.+newListDataSourceSyncJobs ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  ListDataSourceSyncJobs+newListDataSourceSyncJobs pId_ pIndexId_ =+  ListDataSourceSyncJobs'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      startTimeFilter = Prelude.Nothing,+      statusFilter = Prelude.Nothing,+      id = pId_,+      indexId = pIndexId_+    }++-- | The maximum number of synchronization jobs to return in the response. If+-- there are fewer results in the list, this response contains only the+-- actual results.+listDataSourceSyncJobs_maxResults :: Lens.Lens' ListDataSourceSyncJobs (Prelude.Maybe Prelude.Natural)+listDataSourceSyncJobs_maxResults = Lens.lens (\ListDataSourceSyncJobs' {maxResults} -> maxResults) (\s@ListDataSourceSyncJobs' {} a -> s {maxResults = a} :: ListDataSourceSyncJobs)++-- | If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of jobs.+listDataSourceSyncJobs_nextToken :: Lens.Lens' ListDataSourceSyncJobs (Prelude.Maybe Prelude.Text)+listDataSourceSyncJobs_nextToken = Lens.lens (\ListDataSourceSyncJobs' {nextToken} -> nextToken) (\s@ListDataSourceSyncJobs' {} a -> s {nextToken = a} :: ListDataSourceSyncJobs)++-- | When specified, the synchronization jobs returned in the list are+-- limited to jobs between the specified dates.+listDataSourceSyncJobs_startTimeFilter :: Lens.Lens' ListDataSourceSyncJobs (Prelude.Maybe TimeRange)+listDataSourceSyncJobs_startTimeFilter = Lens.lens (\ListDataSourceSyncJobs' {startTimeFilter} -> startTimeFilter) (\s@ListDataSourceSyncJobs' {} a -> s {startTimeFilter = a} :: ListDataSourceSyncJobs)++-- | Only returns synchronization jobs with the @Status@ field equal to the+-- specified status.+listDataSourceSyncJobs_statusFilter :: Lens.Lens' ListDataSourceSyncJobs (Prelude.Maybe DataSourceSyncJobStatus)+listDataSourceSyncJobs_statusFilter = Lens.lens (\ListDataSourceSyncJobs' {statusFilter} -> statusFilter) (\s@ListDataSourceSyncJobs' {} a -> s {statusFilter = a} :: ListDataSourceSyncJobs)++-- | The identifier of the data source connector.+listDataSourceSyncJobs_id :: Lens.Lens' ListDataSourceSyncJobs Prelude.Text+listDataSourceSyncJobs_id = Lens.lens (\ListDataSourceSyncJobs' {id} -> id) (\s@ListDataSourceSyncJobs' {} a -> s {id = a} :: ListDataSourceSyncJobs)++-- | The identifier of the index used with the data source connector.+listDataSourceSyncJobs_indexId :: Lens.Lens' ListDataSourceSyncJobs Prelude.Text+listDataSourceSyncJobs_indexId = Lens.lens (\ListDataSourceSyncJobs' {indexId} -> indexId) (\s@ListDataSourceSyncJobs' {} a -> s {indexId = a} :: ListDataSourceSyncJobs)++instance Core.AWSRequest ListDataSourceSyncJobs where+  type+    AWSResponse ListDataSourceSyncJobs =+      ListDataSourceSyncJobsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDataSourceSyncJobsResponse'+            Prelude.<$> (x Data..?> "History" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDataSourceSyncJobs where+  hashWithSalt _salt ListDataSourceSyncJobs' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` startTimeFilter+      `Prelude.hashWithSalt` statusFilter+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData ListDataSourceSyncJobs where+  rnf ListDataSourceSyncJobs' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf startTimeFilter+      `Prelude.seq` Prelude.rnf statusFilter+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders ListDataSourceSyncJobs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.ListDataSourceSyncJobs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListDataSourceSyncJobs where+  toJSON ListDataSourceSyncJobs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            ("StartTimeFilter" Data..=)+              Prelude.<$> startTimeFilter,+            ("StatusFilter" Data..=) Prelude.<$> statusFilter,+            Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath ListDataSourceSyncJobs where+  toPath = Prelude.const "/"++instance Data.ToQuery ListDataSourceSyncJobs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListDataSourceSyncJobsResponse' smart constructor.+data ListDataSourceSyncJobsResponse = ListDataSourceSyncJobsResponse'+  { -- | A history of synchronization jobs for the data source connector.+    history :: Prelude.Maybe [DataSourceSyncJob],+    -- | If the response is truncated, Amazon Kendra returns this token that you+    -- can use in the subsequent request to retrieve the next set of jobs.+    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 'ListDataSourceSyncJobsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'history', 'listDataSourceSyncJobsResponse_history' - A history of synchronization jobs for the data source connector.+--+-- 'nextToken', 'listDataSourceSyncJobsResponse_nextToken' - If the response is truncated, Amazon Kendra returns this token that you+-- can use in the subsequent request to retrieve the next set of jobs.+--+-- 'httpStatus', 'listDataSourceSyncJobsResponse_httpStatus' - The response's http status code.+newListDataSourceSyncJobsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDataSourceSyncJobsResponse+newListDataSourceSyncJobsResponse pHttpStatus_ =+  ListDataSourceSyncJobsResponse'+    { history =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A history of synchronization jobs for the data source connector.+listDataSourceSyncJobsResponse_history :: Lens.Lens' ListDataSourceSyncJobsResponse (Prelude.Maybe [DataSourceSyncJob])+listDataSourceSyncJobsResponse_history = Lens.lens (\ListDataSourceSyncJobsResponse' {history} -> history) (\s@ListDataSourceSyncJobsResponse' {} a -> s {history = a} :: ListDataSourceSyncJobsResponse) Prelude.. Lens.mapping Lens.coerced++-- | If the response is truncated, Amazon Kendra returns this token that you+-- can use in the subsequent request to retrieve the next set of jobs.+listDataSourceSyncJobsResponse_nextToken :: Lens.Lens' ListDataSourceSyncJobsResponse (Prelude.Maybe Prelude.Text)+listDataSourceSyncJobsResponse_nextToken = Lens.lens (\ListDataSourceSyncJobsResponse' {nextToken} -> nextToken) (\s@ListDataSourceSyncJobsResponse' {} a -> s {nextToken = a} :: ListDataSourceSyncJobsResponse)++-- | The response's http status code.+listDataSourceSyncJobsResponse_httpStatus :: Lens.Lens' ListDataSourceSyncJobsResponse Prelude.Int+listDataSourceSyncJobsResponse_httpStatus = Lens.lens (\ListDataSourceSyncJobsResponse' {httpStatus} -> httpStatus) (\s@ListDataSourceSyncJobsResponse' {} a -> s {httpStatus = a} :: ListDataSourceSyncJobsResponse)++instance+  Prelude.NFData+    ListDataSourceSyncJobsResponse+  where+  rnf ListDataSourceSyncJobsResponse' {..} =+    Prelude.rnf history+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/ListDataSources.hs view
@@ -0,0 +1,229 @@+{-# 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.Kendra.ListDataSources+-- 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 data source connectors that you have created.+module Amazonka.Kendra.ListDataSources+  ( -- * Creating a Request+    ListDataSources (..),+    newListDataSources,++    -- * Request Lenses+    listDataSources_maxResults,+    listDataSources_nextToken,+    listDataSources_indexId,++    -- * Destructuring the Response+    ListDataSourcesResponse (..),+    newListDataSourcesResponse,++    -- * Response Lenses+    listDataSourcesResponse_nextToken,+    listDataSourcesResponse_summaryItems,+    listDataSourcesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListDataSources' smart constructor.+data ListDataSources = ListDataSources'+  { -- | The maximum number of data source connectors to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the previous response was incomplete (because there is more data to+    -- retrieve), Amazon Kendra returns a pagination token in the response. You+    -- can use this pagination token to retrieve the next set of data source+    -- connectors.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the index used with one or more data source+    -- connectors.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDataSources' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listDataSources_maxResults' - The maximum number of data source connectors to return.+--+-- 'nextToken', 'listDataSources_nextToken' - If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of data source+-- connectors.+--+-- 'indexId', 'listDataSources_indexId' - The identifier of the index used with one or more data source+-- connectors.+newListDataSources ::+  -- | 'indexId'+  Prelude.Text ->+  ListDataSources+newListDataSources pIndexId_ =+  ListDataSources'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      indexId = pIndexId_+    }++-- | The maximum number of data source connectors to return.+listDataSources_maxResults :: Lens.Lens' ListDataSources (Prelude.Maybe Prelude.Natural)+listDataSources_maxResults = Lens.lens (\ListDataSources' {maxResults} -> maxResults) (\s@ListDataSources' {} a -> s {maxResults = a} :: ListDataSources)++-- | If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of data source+-- connectors.+listDataSources_nextToken :: Lens.Lens' ListDataSources (Prelude.Maybe Prelude.Text)+listDataSources_nextToken = Lens.lens (\ListDataSources' {nextToken} -> nextToken) (\s@ListDataSources' {} a -> s {nextToken = a} :: ListDataSources)++-- | The identifier of the index used with one or more data source+-- connectors.+listDataSources_indexId :: Lens.Lens' ListDataSources Prelude.Text+listDataSources_indexId = Lens.lens (\ListDataSources' {indexId} -> indexId) (\s@ListDataSources' {} a -> s {indexId = a} :: ListDataSources)++instance Core.AWSRequest ListDataSources where+  type+    AWSResponse ListDataSources =+      ListDataSourcesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListDataSourcesResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "SummaryItems" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListDataSources where+  hashWithSalt _salt ListDataSources' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData ListDataSources where+  rnf ListDataSources' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders ListDataSources where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.ListDataSources" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListDataSources where+  toJSON ListDataSources' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath ListDataSources where+  toPath = Prelude.const "/"++instance Data.ToQuery ListDataSources where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListDataSourcesResponse' smart constructor.+data ListDataSourcesResponse = ListDataSourcesResponse'+  { -- | If the response is truncated, Amazon Kendra returns this token that you+    -- can use in the subsequent request to retrieve the next set of data+    -- source connectors.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An array of summary information for one or more data source connector.+    summaryItems :: Prelude.Maybe [DataSourceSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListDataSourcesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listDataSourcesResponse_nextToken' - If the response is truncated, Amazon Kendra returns this token that you+-- can use in the subsequent request to retrieve the next set of data+-- source connectors.+--+-- 'summaryItems', 'listDataSourcesResponse_summaryItems' - An array of summary information for one or more data source connector.+--+-- 'httpStatus', 'listDataSourcesResponse_httpStatus' - The response's http status code.+newListDataSourcesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListDataSourcesResponse+newListDataSourcesResponse pHttpStatus_ =+  ListDataSourcesResponse'+    { nextToken =+        Prelude.Nothing,+      summaryItems = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If the response is truncated, Amazon Kendra returns this token that you+-- can use in the subsequent request to retrieve the next set of data+-- source connectors.+listDataSourcesResponse_nextToken :: Lens.Lens' ListDataSourcesResponse (Prelude.Maybe Prelude.Text)+listDataSourcesResponse_nextToken = Lens.lens (\ListDataSourcesResponse' {nextToken} -> nextToken) (\s@ListDataSourcesResponse' {} a -> s {nextToken = a} :: ListDataSourcesResponse)++-- | An array of summary information for one or more data source connector.+listDataSourcesResponse_summaryItems :: Lens.Lens' ListDataSourcesResponse (Prelude.Maybe [DataSourceSummary])+listDataSourcesResponse_summaryItems = Lens.lens (\ListDataSourcesResponse' {summaryItems} -> summaryItems) (\s@ListDataSourcesResponse' {} a -> s {summaryItems = a} :: ListDataSourcesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listDataSourcesResponse_httpStatus :: Lens.Lens' ListDataSourcesResponse Prelude.Int+listDataSourcesResponse_httpStatus = Lens.lens (\ListDataSourcesResponse' {httpStatus} -> httpStatus) (\s@ListDataSourcesResponse' {} a -> s {httpStatus = a} :: ListDataSourcesResponse)++instance Prelude.NFData ListDataSourcesResponse where+  rnf ListDataSourcesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf summaryItems+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/ListEntityPersonas.hs view
@@ -0,0 +1,242 @@+{-# 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.Kendra.ListEntityPersonas+-- 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 specific permissions of users and groups with access to your+-- Amazon Kendra experience.+module Amazonka.Kendra.ListEntityPersonas+  ( -- * Creating a Request+    ListEntityPersonas (..),+    newListEntityPersonas,++    -- * Request Lenses+    listEntityPersonas_maxResults,+    listEntityPersonas_nextToken,+    listEntityPersonas_id,+    listEntityPersonas_indexId,++    -- * Destructuring the Response+    ListEntityPersonasResponse (..),+    newListEntityPersonasResponse,++    -- * Response Lenses+    listEntityPersonasResponse_nextToken,+    listEntityPersonasResponse_summaryItems,+    listEntityPersonasResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListEntityPersonas' smart constructor.+data ListEntityPersonas = ListEntityPersonas'+  { -- | The maximum number of returned users or groups.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the previous response was incomplete (because there is more data to+    -- retrieve), Amazon Kendra returns a pagination token in the response. You+    -- can use this pagination token to retrieve the next set of users or+    -- groups.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The identifier of your Amazon Kendra experience.+    id :: Prelude.Text,+    -- | The identifier of the index for your Amazon Kendra experience.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEntityPersonas' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listEntityPersonas_maxResults' - The maximum number of returned users or groups.+--+-- 'nextToken', 'listEntityPersonas_nextToken' - If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of users or+-- groups.+--+-- 'id', 'listEntityPersonas_id' - The identifier of your Amazon Kendra experience.+--+-- 'indexId', 'listEntityPersonas_indexId' - The identifier of the index for your Amazon Kendra experience.+newListEntityPersonas ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  ListEntityPersonas+newListEntityPersonas pId_ pIndexId_ =+  ListEntityPersonas'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      id = pId_,+      indexId = pIndexId_+    }++-- | The maximum number of returned users or groups.+listEntityPersonas_maxResults :: Lens.Lens' ListEntityPersonas (Prelude.Maybe Prelude.Natural)+listEntityPersonas_maxResults = Lens.lens (\ListEntityPersonas' {maxResults} -> maxResults) (\s@ListEntityPersonas' {} a -> s {maxResults = a} :: ListEntityPersonas)++-- | If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of users or+-- groups.+listEntityPersonas_nextToken :: Lens.Lens' ListEntityPersonas (Prelude.Maybe Prelude.Text)+listEntityPersonas_nextToken = Lens.lens (\ListEntityPersonas' {nextToken} -> nextToken) (\s@ListEntityPersonas' {} a -> s {nextToken = a} :: ListEntityPersonas)++-- | The identifier of your Amazon Kendra experience.+listEntityPersonas_id :: Lens.Lens' ListEntityPersonas Prelude.Text+listEntityPersonas_id = Lens.lens (\ListEntityPersonas' {id} -> id) (\s@ListEntityPersonas' {} a -> s {id = a} :: ListEntityPersonas)++-- | The identifier of the index for your Amazon Kendra experience.+listEntityPersonas_indexId :: Lens.Lens' ListEntityPersonas Prelude.Text+listEntityPersonas_indexId = Lens.lens (\ListEntityPersonas' {indexId} -> indexId) (\s@ListEntityPersonas' {} a -> s {indexId = a} :: ListEntityPersonas)++instance Core.AWSRequest ListEntityPersonas where+  type+    AWSResponse ListEntityPersonas =+      ListEntityPersonasResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListEntityPersonasResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "SummaryItems" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListEntityPersonas where+  hashWithSalt _salt ListEntityPersonas' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData ListEntityPersonas where+  rnf ListEntityPersonas' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders ListEntityPersonas where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.ListEntityPersonas" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListEntityPersonas where+  toJSON ListEntityPersonas' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath ListEntityPersonas where+  toPath = Prelude.const "/"++instance Data.ToQuery ListEntityPersonas where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListEntityPersonasResponse' smart constructor.+data ListEntityPersonasResponse = ListEntityPersonasResponse'+  { -- | If the response is truncated, Amazon Kendra returns this token, which+    -- you can use in a later request to retrieve the next set of users or+    -- groups.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An array of summary information for one or more users or groups.+    summaryItems :: Prelude.Maybe [PersonasSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListEntityPersonasResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listEntityPersonasResponse_nextToken' - If the response is truncated, Amazon Kendra returns this token, which+-- you can use in a later request to retrieve the next set of users or+-- groups.+--+-- 'summaryItems', 'listEntityPersonasResponse_summaryItems' - An array of summary information for one or more users or groups.+--+-- 'httpStatus', 'listEntityPersonasResponse_httpStatus' - The response's http status code.+newListEntityPersonasResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListEntityPersonasResponse+newListEntityPersonasResponse pHttpStatus_ =+  ListEntityPersonasResponse'+    { nextToken =+        Prelude.Nothing,+      summaryItems = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If the response is truncated, Amazon Kendra returns this token, which+-- you can use in a later request to retrieve the next set of users or+-- groups.+listEntityPersonasResponse_nextToken :: Lens.Lens' ListEntityPersonasResponse (Prelude.Maybe Prelude.Text)+listEntityPersonasResponse_nextToken = Lens.lens (\ListEntityPersonasResponse' {nextToken} -> nextToken) (\s@ListEntityPersonasResponse' {} a -> s {nextToken = a} :: ListEntityPersonasResponse)++-- | An array of summary information for one or more users or groups.+listEntityPersonasResponse_summaryItems :: Lens.Lens' ListEntityPersonasResponse (Prelude.Maybe [PersonasSummary])+listEntityPersonasResponse_summaryItems = Lens.lens (\ListEntityPersonasResponse' {summaryItems} -> summaryItems) (\s@ListEntityPersonasResponse' {} a -> s {summaryItems = a} :: ListEntityPersonasResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listEntityPersonasResponse_httpStatus :: Lens.Lens' ListEntityPersonasResponse Prelude.Int+listEntityPersonasResponse_httpStatus = Lens.lens (\ListEntityPersonasResponse' {httpStatus} -> httpStatus) (\s@ListEntityPersonasResponse' {} a -> s {httpStatus = a} :: ListEntityPersonasResponse)++instance Prelude.NFData ListEntityPersonasResponse where+  rnf ListEntityPersonasResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf summaryItems+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/ListExperienceEntities.hs view
@@ -0,0 +1,236 @@+{-# 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.Kendra.ListExperienceEntities+-- 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 users or groups in your IAM Identity Center identity source that+-- are granted access to your Amazon Kendra experience. You can create an+-- Amazon Kendra experience such as a search application. For more+-- information on creating a search application experience, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html Building a search experience with no code>.+module Amazonka.Kendra.ListExperienceEntities+  ( -- * Creating a Request+    ListExperienceEntities (..),+    newListExperienceEntities,++    -- * Request Lenses+    listExperienceEntities_nextToken,+    listExperienceEntities_id,+    listExperienceEntities_indexId,++    -- * Destructuring the Response+    ListExperienceEntitiesResponse (..),+    newListExperienceEntitiesResponse,++    -- * Response Lenses+    listExperienceEntitiesResponse_nextToken,+    listExperienceEntitiesResponse_summaryItems,+    listExperienceEntitiesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListExperienceEntities' smart constructor.+data ListExperienceEntities = ListExperienceEntities'+  { -- | If the previous response was incomplete (because there is more data to+    -- retrieve), Amazon Kendra returns a pagination token in the response. You+    -- can use this pagination token to retrieve the next set of users or+    -- groups.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The identifier of your Amazon Kendra experience.+    id :: Prelude.Text,+    -- | The identifier of the index for your Amazon Kendra experience.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListExperienceEntities' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listExperienceEntities_nextToken' - If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of users or+-- groups.+--+-- 'id', 'listExperienceEntities_id' - The identifier of your Amazon Kendra experience.+--+-- 'indexId', 'listExperienceEntities_indexId' - The identifier of the index for your Amazon Kendra experience.+newListExperienceEntities ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  ListExperienceEntities+newListExperienceEntities pId_ pIndexId_ =+  ListExperienceEntities'+    { nextToken =+        Prelude.Nothing,+      id = pId_,+      indexId = pIndexId_+    }++-- | If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of users or+-- groups.+listExperienceEntities_nextToken :: Lens.Lens' ListExperienceEntities (Prelude.Maybe Prelude.Text)+listExperienceEntities_nextToken = Lens.lens (\ListExperienceEntities' {nextToken} -> nextToken) (\s@ListExperienceEntities' {} a -> s {nextToken = a} :: ListExperienceEntities)++-- | The identifier of your Amazon Kendra experience.+listExperienceEntities_id :: Lens.Lens' ListExperienceEntities Prelude.Text+listExperienceEntities_id = Lens.lens (\ListExperienceEntities' {id} -> id) (\s@ListExperienceEntities' {} a -> s {id = a} :: ListExperienceEntities)++-- | The identifier of the index for your Amazon Kendra experience.+listExperienceEntities_indexId :: Lens.Lens' ListExperienceEntities Prelude.Text+listExperienceEntities_indexId = Lens.lens (\ListExperienceEntities' {indexId} -> indexId) (\s@ListExperienceEntities' {} a -> s {indexId = a} :: ListExperienceEntities)++instance Core.AWSRequest ListExperienceEntities where+  type+    AWSResponse ListExperienceEntities =+      ListExperienceEntitiesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListExperienceEntitiesResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "SummaryItems" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListExperienceEntities where+  hashWithSalt _salt ListExperienceEntities' {..} =+    _salt+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData ListExperienceEntities where+  rnf ListExperienceEntities' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders ListExperienceEntities where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.ListExperienceEntities" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListExperienceEntities where+  toJSON ListExperienceEntities' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath ListExperienceEntities where+  toPath = Prelude.const "/"++instance Data.ToQuery ListExperienceEntities where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListExperienceEntitiesResponse' smart constructor.+data ListExperienceEntitiesResponse = ListExperienceEntitiesResponse'+  { -- | If the response is truncated, Amazon Kendra returns this token, which+    -- you can use in a later request to retrieve the next set of users or+    -- groups.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An array of summary information for one or more users or groups.+    summaryItems :: Prelude.Maybe [ExperienceEntitiesSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListExperienceEntitiesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listExperienceEntitiesResponse_nextToken' - If the response is truncated, Amazon Kendra returns this token, which+-- you can use in a later request to retrieve the next set of users or+-- groups.+--+-- 'summaryItems', 'listExperienceEntitiesResponse_summaryItems' - An array of summary information for one or more users or groups.+--+-- 'httpStatus', 'listExperienceEntitiesResponse_httpStatus' - The response's http status code.+newListExperienceEntitiesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListExperienceEntitiesResponse+newListExperienceEntitiesResponse pHttpStatus_ =+  ListExperienceEntitiesResponse'+    { nextToken =+        Prelude.Nothing,+      summaryItems = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If the response is truncated, Amazon Kendra returns this token, which+-- you can use in a later request to retrieve the next set of users or+-- groups.+listExperienceEntitiesResponse_nextToken :: Lens.Lens' ListExperienceEntitiesResponse (Prelude.Maybe Prelude.Text)+listExperienceEntitiesResponse_nextToken = Lens.lens (\ListExperienceEntitiesResponse' {nextToken} -> nextToken) (\s@ListExperienceEntitiesResponse' {} a -> s {nextToken = a} :: ListExperienceEntitiesResponse)++-- | An array of summary information for one or more users or groups.+listExperienceEntitiesResponse_summaryItems :: Lens.Lens' ListExperienceEntitiesResponse (Prelude.Maybe [ExperienceEntitiesSummary])+listExperienceEntitiesResponse_summaryItems = Lens.lens (\ListExperienceEntitiesResponse' {summaryItems} -> summaryItems) (\s@ListExperienceEntitiesResponse' {} a -> s {summaryItems = a} :: ListExperienceEntitiesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listExperienceEntitiesResponse_httpStatus :: Lens.Lens' ListExperienceEntitiesResponse Prelude.Int+listExperienceEntitiesResponse_httpStatus = Lens.lens (\ListExperienceEntitiesResponse' {httpStatus} -> httpStatus) (\s@ListExperienceEntitiesResponse' {} a -> s {httpStatus = a} :: ListExperienceEntitiesResponse)++instance+  Prelude.NFData+    ListExperienceEntitiesResponse+  where+  rnf ListExperienceEntitiesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf summaryItems+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/ListExperiences.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.Kendra.ListExperiences+-- 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 one or more Amazon Kendra experiences. You can create an Amazon+-- Kendra experience such as a search application. For more information on+-- creating a search application experience, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html Building a search experience with no code>.+module Amazonka.Kendra.ListExperiences+  ( -- * Creating a Request+    ListExperiences (..),+    newListExperiences,++    -- * Request Lenses+    listExperiences_maxResults,+    listExperiences_nextToken,+    listExperiences_indexId,++    -- * Destructuring the Response+    ListExperiencesResponse (..),+    newListExperiencesResponse,++    -- * Response Lenses+    listExperiencesResponse_nextToken,+    listExperiencesResponse_summaryItems,+    listExperiencesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListExperiences' smart constructor.+data ListExperiences = ListExperiences'+  { -- | The maximum number of returned Amazon Kendra experiences.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the previous response was incomplete (because there is more data to+    -- retrieve), Amazon Kendra returns a pagination token in the response. You+    -- can use this pagination token to retrieve the next set of Amazon Kendra+    -- experiences.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the index for your Amazon Kendra experience.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListExperiences' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listExperiences_maxResults' - The maximum number of returned Amazon Kendra experiences.+--+-- 'nextToken', 'listExperiences_nextToken' - If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of Amazon Kendra+-- experiences.+--+-- 'indexId', 'listExperiences_indexId' - The identifier of the index for your Amazon Kendra experience.+newListExperiences ::+  -- | 'indexId'+  Prelude.Text ->+  ListExperiences+newListExperiences pIndexId_ =+  ListExperiences'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      indexId = pIndexId_+    }++-- | The maximum number of returned Amazon Kendra experiences.+listExperiences_maxResults :: Lens.Lens' ListExperiences (Prelude.Maybe Prelude.Natural)+listExperiences_maxResults = Lens.lens (\ListExperiences' {maxResults} -> maxResults) (\s@ListExperiences' {} a -> s {maxResults = a} :: ListExperiences)++-- | If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of Amazon Kendra+-- experiences.+listExperiences_nextToken :: Lens.Lens' ListExperiences (Prelude.Maybe Prelude.Text)+listExperiences_nextToken = Lens.lens (\ListExperiences' {nextToken} -> nextToken) (\s@ListExperiences' {} a -> s {nextToken = a} :: ListExperiences)++-- | The identifier of the index for your Amazon Kendra experience.+listExperiences_indexId :: Lens.Lens' ListExperiences Prelude.Text+listExperiences_indexId = Lens.lens (\ListExperiences' {indexId} -> indexId) (\s@ListExperiences' {} a -> s {indexId = a} :: ListExperiences)++instance Core.AWSRequest ListExperiences where+  type+    AWSResponse ListExperiences =+      ListExperiencesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListExperiencesResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "SummaryItems" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListExperiences where+  hashWithSalt _salt ListExperiences' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData ListExperiences where+  rnf ListExperiences' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders ListExperiences where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.ListExperiences" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListExperiences where+  toJSON ListExperiences' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath ListExperiences where+  toPath = Prelude.const "/"++instance Data.ToQuery ListExperiences where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListExperiencesResponse' smart constructor.+data ListExperiencesResponse = ListExperiencesResponse'+  { -- | If the response is truncated, Amazon Kendra returns this token, which+    -- you can use in a later request to retrieve the next set of Amazon Kendra+    -- experiences.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An array of summary information for one or more Amazon Kendra+    -- experiences.+    summaryItems :: Prelude.Maybe [ExperiencesSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListExperiencesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listExperiencesResponse_nextToken' - If the response is truncated, Amazon Kendra returns this token, which+-- you can use in a later request to retrieve the next set of Amazon Kendra+-- experiences.+--+-- 'summaryItems', 'listExperiencesResponse_summaryItems' - An array of summary information for one or more Amazon Kendra+-- experiences.+--+-- 'httpStatus', 'listExperiencesResponse_httpStatus' - The response's http status code.+newListExperiencesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListExperiencesResponse+newListExperiencesResponse pHttpStatus_ =+  ListExperiencesResponse'+    { nextToken =+        Prelude.Nothing,+      summaryItems = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If the response is truncated, Amazon Kendra returns this token, which+-- you can use in a later request to retrieve the next set of Amazon Kendra+-- experiences.+listExperiencesResponse_nextToken :: Lens.Lens' ListExperiencesResponse (Prelude.Maybe Prelude.Text)+listExperiencesResponse_nextToken = Lens.lens (\ListExperiencesResponse' {nextToken} -> nextToken) (\s@ListExperiencesResponse' {} a -> s {nextToken = a} :: ListExperiencesResponse)++-- | An array of summary information for one or more Amazon Kendra+-- experiences.+listExperiencesResponse_summaryItems :: Lens.Lens' ListExperiencesResponse (Prelude.Maybe [ExperiencesSummary])+listExperiencesResponse_summaryItems = Lens.lens (\ListExperiencesResponse' {summaryItems} -> summaryItems) (\s@ListExperiencesResponse' {} a -> s {summaryItems = a} :: ListExperiencesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listExperiencesResponse_httpStatus :: Lens.Lens' ListExperiencesResponse Prelude.Int+listExperiencesResponse_httpStatus = Lens.lens (\ListExperiencesResponse' {httpStatus} -> httpStatus) (\s@ListExperiencesResponse' {} a -> s {httpStatus = a} :: ListExperiencesResponse)++instance Prelude.NFData ListExperiencesResponse where+  rnf ListExperiencesResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf summaryItems+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/ListFaqs.hs view
@@ -0,0 +1,224 @@+{-# 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.Kendra.ListFaqs+-- 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 FAQ lists associated with an index.+module Amazonka.Kendra.ListFaqs+  ( -- * Creating a Request+    ListFaqs (..),+    newListFaqs,++    -- * Request Lenses+    listFaqs_maxResults,+    listFaqs_nextToken,+    listFaqs_indexId,++    -- * Destructuring the Response+    ListFaqsResponse (..),+    newListFaqsResponse,++    -- * Response Lenses+    listFaqsResponse_faqSummaryItems,+    listFaqsResponse_nextToken,+    listFaqsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListFaqs' smart constructor.+data ListFaqs = ListFaqs'+  { -- | The maximum number of FAQs to return in the response. If there are fewer+    -- results in the list, this response contains only the actual results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the previous response was incomplete (because there is more data to+    -- retrieve), Amazon Kendra returns a pagination token in the response. You+    -- can use this pagination token to retrieve the next set of FAQs.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The index that contains the FAQ lists.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListFaqs' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listFaqs_maxResults' - The maximum number of FAQs to return in the response. If there are fewer+-- results in the list, this response contains only the actual results.+--+-- 'nextToken', 'listFaqs_nextToken' - If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of FAQs.+--+-- 'indexId', 'listFaqs_indexId' - The index that contains the FAQ lists.+newListFaqs ::+  -- | 'indexId'+  Prelude.Text ->+  ListFaqs+newListFaqs pIndexId_ =+  ListFaqs'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      indexId = pIndexId_+    }++-- | The maximum number of FAQs to return in the response. If there are fewer+-- results in the list, this response contains only the actual results.+listFaqs_maxResults :: Lens.Lens' ListFaqs (Prelude.Maybe Prelude.Natural)+listFaqs_maxResults = Lens.lens (\ListFaqs' {maxResults} -> maxResults) (\s@ListFaqs' {} a -> s {maxResults = a} :: ListFaqs)++-- | If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of FAQs.+listFaqs_nextToken :: Lens.Lens' ListFaqs (Prelude.Maybe Prelude.Text)+listFaqs_nextToken = Lens.lens (\ListFaqs' {nextToken} -> nextToken) (\s@ListFaqs' {} a -> s {nextToken = a} :: ListFaqs)++-- | The index that contains the FAQ lists.+listFaqs_indexId :: Lens.Lens' ListFaqs Prelude.Text+listFaqs_indexId = Lens.lens (\ListFaqs' {indexId} -> indexId) (\s@ListFaqs' {} a -> s {indexId = a} :: ListFaqs)++instance Core.AWSRequest ListFaqs where+  type AWSResponse ListFaqs = ListFaqsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListFaqsResponse'+            Prelude.<$> ( x+                            Data..?> "FaqSummaryItems"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListFaqs where+  hashWithSalt _salt ListFaqs' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData ListFaqs where+  rnf ListFaqs' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders ListFaqs where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.ListFaqs" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListFaqs where+  toJSON ListFaqs' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath ListFaqs where+  toPath = Prelude.const "/"++instance Data.ToQuery ListFaqs where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListFaqsResponse' smart constructor.+data ListFaqsResponse = ListFaqsResponse'+  { -- | information about the FAQs associated with the specified index.+    faqSummaryItems :: Prelude.Maybe [FaqSummary],+    -- | If the response is truncated, Amazon Kendra returns this token that you+    -- can use in the subsequent request to retrieve the next set of FAQs.+    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 'ListFaqsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'faqSummaryItems', 'listFaqsResponse_faqSummaryItems' - information about the FAQs associated with the specified index.+--+-- 'nextToken', 'listFaqsResponse_nextToken' - If the response is truncated, Amazon Kendra returns this token that you+-- can use in the subsequent request to retrieve the next set of FAQs.+--+-- 'httpStatus', 'listFaqsResponse_httpStatus' - The response's http status code.+newListFaqsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListFaqsResponse+newListFaqsResponse pHttpStatus_ =+  ListFaqsResponse'+    { faqSummaryItems =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | information about the FAQs associated with the specified index.+listFaqsResponse_faqSummaryItems :: Lens.Lens' ListFaqsResponse (Prelude.Maybe [FaqSummary])+listFaqsResponse_faqSummaryItems = Lens.lens (\ListFaqsResponse' {faqSummaryItems} -> faqSummaryItems) (\s@ListFaqsResponse' {} a -> s {faqSummaryItems = a} :: ListFaqsResponse) Prelude.. Lens.mapping Lens.coerced++-- | If the response is truncated, Amazon Kendra returns this token that you+-- can use in the subsequent request to retrieve the next set of FAQs.+listFaqsResponse_nextToken :: Lens.Lens' ListFaqsResponse (Prelude.Maybe Prelude.Text)+listFaqsResponse_nextToken = Lens.lens (\ListFaqsResponse' {nextToken} -> nextToken) (\s@ListFaqsResponse' {} a -> s {nextToken = a} :: ListFaqsResponse)++-- | The response's http status code.+listFaqsResponse_httpStatus :: Lens.Lens' ListFaqsResponse Prelude.Int+listFaqsResponse_httpStatus = Lens.lens (\ListFaqsResponse' {httpStatus} -> httpStatus) (\s@ListFaqsResponse' {} a -> s {httpStatus = a} :: ListFaqsResponse)++instance Prelude.NFData ListFaqsResponse where+  rnf ListFaqsResponse' {..} =+    Prelude.rnf faqSummaryItems+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/ListGroupsOlderThanOrderingId.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.Kendra.ListGroupsOlderThanOrderingId+-- 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 groups that are mapped to users before a given+-- ordering or timestamp identifier.+--+-- @ListGroupsOlderThanOrderingId@ is currently not supported in the Amazon+-- Web Services GovCloud (US-West) region.+module Amazonka.Kendra.ListGroupsOlderThanOrderingId+  ( -- * Creating a Request+    ListGroupsOlderThanOrderingId (..),+    newListGroupsOlderThanOrderingId,++    -- * Request Lenses+    listGroupsOlderThanOrderingId_dataSourceId,+    listGroupsOlderThanOrderingId_maxResults,+    listGroupsOlderThanOrderingId_nextToken,+    listGroupsOlderThanOrderingId_indexId,+    listGroupsOlderThanOrderingId_orderingId,++    -- * Destructuring the Response+    ListGroupsOlderThanOrderingIdResponse (..),+    newListGroupsOlderThanOrderingIdResponse,++    -- * Response Lenses+    listGroupsOlderThanOrderingIdResponse_groupsSummaries,+    listGroupsOlderThanOrderingIdResponse_nextToken,+    listGroupsOlderThanOrderingIdResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListGroupsOlderThanOrderingId' smart constructor.+data ListGroupsOlderThanOrderingId = ListGroupsOlderThanOrderingId'+  { -- | The identifier of the data source for getting a list of groups mapped to+    -- users before a given ordering timestamp identifier.+    dataSourceId :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of returned groups that are mapped to users before a+    -- given ordering or timestamp identifier.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the previous response was incomplete (because there is more data to+    -- retrieve), Amazon Kendra returns a pagination token in the response. You+    -- can use this pagination token to retrieve the next set of groups that+    -- are mapped to users before a given ordering or timestamp identifier.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the index for getting a list of groups mapped to users+    -- before a given ordering or timestamp identifier.+    indexId :: Prelude.Text,+    -- | The timestamp identifier used for the latest @PUT@ or @DELETE@ action+    -- for mapping users to their groups.+    orderingId :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListGroupsOlderThanOrderingId' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSourceId', 'listGroupsOlderThanOrderingId_dataSourceId' - The identifier of the data source for getting a list of groups mapped to+-- users before a given ordering timestamp identifier.+--+-- 'maxResults', 'listGroupsOlderThanOrderingId_maxResults' - The maximum number of returned groups that are mapped to users before a+-- given ordering or timestamp identifier.+--+-- 'nextToken', 'listGroupsOlderThanOrderingId_nextToken' - If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of groups that+-- are mapped to users before a given ordering or timestamp identifier.+--+-- 'indexId', 'listGroupsOlderThanOrderingId_indexId' - The identifier of the index for getting a list of groups mapped to users+-- before a given ordering or timestamp identifier.+--+-- 'orderingId', 'listGroupsOlderThanOrderingId_orderingId' - The timestamp identifier used for the latest @PUT@ or @DELETE@ action+-- for mapping users to their groups.+newListGroupsOlderThanOrderingId ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'orderingId'+  Prelude.Natural ->+  ListGroupsOlderThanOrderingId+newListGroupsOlderThanOrderingId+  pIndexId_+  pOrderingId_ =+    ListGroupsOlderThanOrderingId'+      { dataSourceId =+          Prelude.Nothing,+        maxResults = Prelude.Nothing,+        nextToken = Prelude.Nothing,+        indexId = pIndexId_,+        orderingId = pOrderingId_+      }++-- | The identifier of the data source for getting a list of groups mapped to+-- users before a given ordering timestamp identifier.+listGroupsOlderThanOrderingId_dataSourceId :: Lens.Lens' ListGroupsOlderThanOrderingId (Prelude.Maybe Prelude.Text)+listGroupsOlderThanOrderingId_dataSourceId = Lens.lens (\ListGroupsOlderThanOrderingId' {dataSourceId} -> dataSourceId) (\s@ListGroupsOlderThanOrderingId' {} a -> s {dataSourceId = a} :: ListGroupsOlderThanOrderingId)++-- | The maximum number of returned groups that are mapped to users before a+-- given ordering or timestamp identifier.+listGroupsOlderThanOrderingId_maxResults :: Lens.Lens' ListGroupsOlderThanOrderingId (Prelude.Maybe Prelude.Natural)+listGroupsOlderThanOrderingId_maxResults = Lens.lens (\ListGroupsOlderThanOrderingId' {maxResults} -> maxResults) (\s@ListGroupsOlderThanOrderingId' {} a -> s {maxResults = a} :: ListGroupsOlderThanOrderingId)++-- | If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of groups that+-- are mapped to users before a given ordering or timestamp identifier.+listGroupsOlderThanOrderingId_nextToken :: Lens.Lens' ListGroupsOlderThanOrderingId (Prelude.Maybe Prelude.Text)+listGroupsOlderThanOrderingId_nextToken = Lens.lens (\ListGroupsOlderThanOrderingId' {nextToken} -> nextToken) (\s@ListGroupsOlderThanOrderingId' {} a -> s {nextToken = a} :: ListGroupsOlderThanOrderingId)++-- | The identifier of the index for getting a list of groups mapped to users+-- before a given ordering or timestamp identifier.+listGroupsOlderThanOrderingId_indexId :: Lens.Lens' ListGroupsOlderThanOrderingId Prelude.Text+listGroupsOlderThanOrderingId_indexId = Lens.lens (\ListGroupsOlderThanOrderingId' {indexId} -> indexId) (\s@ListGroupsOlderThanOrderingId' {} a -> s {indexId = a} :: ListGroupsOlderThanOrderingId)++-- | The timestamp identifier used for the latest @PUT@ or @DELETE@ action+-- for mapping users to their groups.+listGroupsOlderThanOrderingId_orderingId :: Lens.Lens' ListGroupsOlderThanOrderingId Prelude.Natural+listGroupsOlderThanOrderingId_orderingId = Lens.lens (\ListGroupsOlderThanOrderingId' {orderingId} -> orderingId) (\s@ListGroupsOlderThanOrderingId' {} a -> s {orderingId = a} :: ListGroupsOlderThanOrderingId)++instance+  Core.AWSRequest+    ListGroupsOlderThanOrderingId+  where+  type+    AWSResponse ListGroupsOlderThanOrderingId =+      ListGroupsOlderThanOrderingIdResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListGroupsOlderThanOrderingIdResponse'+            Prelude.<$> ( x+                            Data..?> "GroupsSummaries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    ListGroupsOlderThanOrderingId+  where+  hashWithSalt _salt ListGroupsOlderThanOrderingId' {..} =+    _salt+      `Prelude.hashWithSalt` dataSourceId+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` indexId+      `Prelude.hashWithSalt` orderingId++instance Prelude.NFData ListGroupsOlderThanOrderingId where+  rnf ListGroupsOlderThanOrderingId' {..} =+    Prelude.rnf dataSourceId+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf orderingId++instance Data.ToHeaders ListGroupsOlderThanOrderingId where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.ListGroupsOlderThanOrderingId" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListGroupsOlderThanOrderingId where+  toJSON ListGroupsOlderThanOrderingId' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataSourceId" Data..=) Prelude.<$> dataSourceId,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("OrderingId" Data..= orderingId)+          ]+      )++instance Data.ToPath ListGroupsOlderThanOrderingId where+  toPath = Prelude.const "/"++instance Data.ToQuery ListGroupsOlderThanOrderingId where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListGroupsOlderThanOrderingIdResponse' smart constructor.+data ListGroupsOlderThanOrderingIdResponse = ListGroupsOlderThanOrderingIdResponse'+  { -- | Summary information for list of groups that are mapped to users before a+    -- given ordering or timestamp identifier.+    groupsSummaries :: Prelude.Maybe [GroupSummary],+    -- | If the response is truncated, Amazon Kendra returns this token that you+    -- can use in the subsequent request to retrieve the next set of groups+    -- that are mapped to users before a given ordering or timestamp+    -- identifier.+    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 'ListGroupsOlderThanOrderingIdResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'groupsSummaries', 'listGroupsOlderThanOrderingIdResponse_groupsSummaries' - Summary information for list of groups that are mapped to users before a+-- given ordering or timestamp identifier.+--+-- 'nextToken', 'listGroupsOlderThanOrderingIdResponse_nextToken' - If the response is truncated, Amazon Kendra returns this token that you+-- can use in the subsequent request to retrieve the next set of groups+-- that are mapped to users before a given ordering or timestamp+-- identifier.+--+-- 'httpStatus', 'listGroupsOlderThanOrderingIdResponse_httpStatus' - The response's http status code.+newListGroupsOlderThanOrderingIdResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListGroupsOlderThanOrderingIdResponse+newListGroupsOlderThanOrderingIdResponse pHttpStatus_ =+  ListGroupsOlderThanOrderingIdResponse'+    { groupsSummaries =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Summary information for list of groups that are mapped to users before a+-- given ordering or timestamp identifier.+listGroupsOlderThanOrderingIdResponse_groupsSummaries :: Lens.Lens' ListGroupsOlderThanOrderingIdResponse (Prelude.Maybe [GroupSummary])+listGroupsOlderThanOrderingIdResponse_groupsSummaries = Lens.lens (\ListGroupsOlderThanOrderingIdResponse' {groupsSummaries} -> groupsSummaries) (\s@ListGroupsOlderThanOrderingIdResponse' {} a -> s {groupsSummaries = a} :: ListGroupsOlderThanOrderingIdResponse) Prelude.. Lens.mapping Lens.coerced++-- | If the response is truncated, Amazon Kendra returns this token that you+-- can use in the subsequent request to retrieve the next set of groups+-- that are mapped to users before a given ordering or timestamp+-- identifier.+listGroupsOlderThanOrderingIdResponse_nextToken :: Lens.Lens' ListGroupsOlderThanOrderingIdResponse (Prelude.Maybe Prelude.Text)+listGroupsOlderThanOrderingIdResponse_nextToken = Lens.lens (\ListGroupsOlderThanOrderingIdResponse' {nextToken} -> nextToken) (\s@ListGroupsOlderThanOrderingIdResponse' {} a -> s {nextToken = a} :: ListGroupsOlderThanOrderingIdResponse)++-- | The response's http status code.+listGroupsOlderThanOrderingIdResponse_httpStatus :: Lens.Lens' ListGroupsOlderThanOrderingIdResponse Prelude.Int+listGroupsOlderThanOrderingIdResponse_httpStatus = Lens.lens (\ListGroupsOlderThanOrderingIdResponse' {httpStatus} -> httpStatus) (\s@ListGroupsOlderThanOrderingIdResponse' {} a -> s {httpStatus = a} :: ListGroupsOlderThanOrderingIdResponse)++instance+  Prelude.NFData+    ListGroupsOlderThanOrderingIdResponse+  where+  rnf ListGroupsOlderThanOrderingIdResponse' {..} =+    Prelude.rnf groupsSummaries+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/ListIndices.hs view
@@ -0,0 +1,209 @@+{-# 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.Kendra.ListIndices+-- 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 Amazon Kendra indexes that you created.+module Amazonka.Kendra.ListIndices+  ( -- * Creating a Request+    ListIndices (..),+    newListIndices,++    -- * Request Lenses+    listIndices_maxResults,+    listIndices_nextToken,++    -- * Destructuring the Response+    ListIndicesResponse (..),+    newListIndicesResponse,++    -- * Response Lenses+    listIndicesResponse_indexConfigurationSummaryItems,+    listIndicesResponse_nextToken,+    listIndicesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListIndices' smart constructor.+data ListIndices = ListIndices'+  { -- | The maximum number of indices to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the previous response was incomplete (because there is more data to+    -- retrieve), Amazon Kendra returns a pagination token in the response. You+    -- can use this pagination token to retrieve the next set of indexes.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListIndices' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listIndices_maxResults' - The maximum number of indices to return.+--+-- 'nextToken', 'listIndices_nextToken' - If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of indexes.+newListIndices ::+  ListIndices+newListIndices =+  ListIndices'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The maximum number of indices to return.+listIndices_maxResults :: Lens.Lens' ListIndices (Prelude.Maybe Prelude.Natural)+listIndices_maxResults = Lens.lens (\ListIndices' {maxResults} -> maxResults) (\s@ListIndices' {} a -> s {maxResults = a} :: ListIndices)++-- | If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of indexes.+listIndices_nextToken :: Lens.Lens' ListIndices (Prelude.Maybe Prelude.Text)+listIndices_nextToken = Lens.lens (\ListIndices' {nextToken} -> nextToken) (\s@ListIndices' {} a -> s {nextToken = a} :: ListIndices)++instance Core.AWSRequest ListIndices where+  type AWSResponse ListIndices = ListIndicesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListIndicesResponse'+            Prelude.<$> ( x+                            Data..?> "IndexConfigurationSummaryItems"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListIndices where+  hashWithSalt _salt ListIndices' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListIndices where+  rnf ListIndices' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListIndices where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.ListIndices" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListIndices where+  toJSON ListIndices' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListIndices where+  toPath = Prelude.const "/"++instance Data.ToQuery ListIndices where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListIndicesResponse' smart constructor.+data ListIndicesResponse = ListIndicesResponse'+  { -- | An array of summary information on the configuration of one or more+    -- indexes.+    indexConfigurationSummaryItems :: Prelude.Maybe [IndexConfigurationSummary],+    -- | If the response is truncated, Amazon Kendra returns this token that you+    -- can use in the subsequent request to retrieve the next set of indexes.+    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 'ListIndicesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'indexConfigurationSummaryItems', 'listIndicesResponse_indexConfigurationSummaryItems' - An array of summary information on the configuration of one or more+-- indexes.+--+-- 'nextToken', 'listIndicesResponse_nextToken' - If the response is truncated, Amazon Kendra returns this token that you+-- can use in the subsequent request to retrieve the next set of indexes.+--+-- 'httpStatus', 'listIndicesResponse_httpStatus' - The response's http status code.+newListIndicesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListIndicesResponse+newListIndicesResponse pHttpStatus_ =+  ListIndicesResponse'+    { indexConfigurationSummaryItems =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | An array of summary information on the configuration of one or more+-- indexes.+listIndicesResponse_indexConfigurationSummaryItems :: Lens.Lens' ListIndicesResponse (Prelude.Maybe [IndexConfigurationSummary])+listIndicesResponse_indexConfigurationSummaryItems = Lens.lens (\ListIndicesResponse' {indexConfigurationSummaryItems} -> indexConfigurationSummaryItems) (\s@ListIndicesResponse' {} a -> s {indexConfigurationSummaryItems = a} :: ListIndicesResponse) Prelude.. Lens.mapping Lens.coerced++-- | If the response is truncated, Amazon Kendra returns this token that you+-- can use in the subsequent request to retrieve the next set of indexes.+listIndicesResponse_nextToken :: Lens.Lens' ListIndicesResponse (Prelude.Maybe Prelude.Text)+listIndicesResponse_nextToken = Lens.lens (\ListIndicesResponse' {nextToken} -> nextToken) (\s@ListIndicesResponse' {} a -> s {nextToken = a} :: ListIndicesResponse)++-- | The response's http status code.+listIndicesResponse_httpStatus :: Lens.Lens' ListIndicesResponse Prelude.Int+listIndicesResponse_httpStatus = Lens.lens (\ListIndicesResponse' {httpStatus} -> httpStatus) (\s@ListIndicesResponse' {} a -> s {httpStatus = a} :: ListIndicesResponse)++instance Prelude.NFData ListIndicesResponse where+  rnf ListIndicesResponse' {..} =+    Prelude.rnf indexConfigurationSummaryItems+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/ListQuerySuggestionsBlockLists.hs view
@@ -0,0 +1,287 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.ListQuerySuggestionsBlockLists+-- 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 block lists used for query suggestions for an index.+--+-- For information on the current quota limits for block lists, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas for Amazon Kendra>.+--+-- @ListQuerySuggestionsBlockLists@ is currently not supported in the+-- Amazon Web Services GovCloud (US-West) region.+module Amazonka.Kendra.ListQuerySuggestionsBlockLists+  ( -- * Creating a Request+    ListQuerySuggestionsBlockLists (..),+    newListQuerySuggestionsBlockLists,++    -- * Request Lenses+    listQuerySuggestionsBlockLists_maxResults,+    listQuerySuggestionsBlockLists_nextToken,+    listQuerySuggestionsBlockLists_indexId,++    -- * Destructuring the Response+    ListQuerySuggestionsBlockListsResponse (..),+    newListQuerySuggestionsBlockListsResponse,++    -- * Response Lenses+    listQuerySuggestionsBlockListsResponse_blockListSummaryItems,+    listQuerySuggestionsBlockListsResponse_nextToken,+    listQuerySuggestionsBlockListsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListQuerySuggestionsBlockLists' smart constructor.+data ListQuerySuggestionsBlockLists = ListQuerySuggestionsBlockLists'+  { -- | The maximum number of block lists to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the previous response was incomplete (because there is more data to+    -- retrieve), Amazon Kendra returns a pagination token in the response. You+    -- can use this pagination token to retrieve the next set of block lists+    -- (@BlockListSummaryItems@).+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the index for a list of all block lists that exist for+    -- that index.+    --+    -- For information on the current quota limits for block lists, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas for Amazon Kendra>.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListQuerySuggestionsBlockLists' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listQuerySuggestionsBlockLists_maxResults' - The maximum number of block lists to return.+--+-- 'nextToken', 'listQuerySuggestionsBlockLists_nextToken' - If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of block lists+-- (@BlockListSummaryItems@).+--+-- 'indexId', 'listQuerySuggestionsBlockLists_indexId' - The identifier of the index for a list of all block lists that exist for+-- that index.+--+-- For information on the current quota limits for block lists, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas for Amazon Kendra>.+newListQuerySuggestionsBlockLists ::+  -- | 'indexId'+  Prelude.Text ->+  ListQuerySuggestionsBlockLists+newListQuerySuggestionsBlockLists pIndexId_ =+  ListQuerySuggestionsBlockLists'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      indexId = pIndexId_+    }++-- | The maximum number of block lists to return.+listQuerySuggestionsBlockLists_maxResults :: Lens.Lens' ListQuerySuggestionsBlockLists (Prelude.Maybe Prelude.Natural)+listQuerySuggestionsBlockLists_maxResults = Lens.lens (\ListQuerySuggestionsBlockLists' {maxResults} -> maxResults) (\s@ListQuerySuggestionsBlockLists' {} a -> s {maxResults = a} :: ListQuerySuggestionsBlockLists)++-- | If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of block lists+-- (@BlockListSummaryItems@).+listQuerySuggestionsBlockLists_nextToken :: Lens.Lens' ListQuerySuggestionsBlockLists (Prelude.Maybe Prelude.Text)+listQuerySuggestionsBlockLists_nextToken = Lens.lens (\ListQuerySuggestionsBlockLists' {nextToken} -> nextToken) (\s@ListQuerySuggestionsBlockLists' {} a -> s {nextToken = a} :: ListQuerySuggestionsBlockLists)++-- | The identifier of the index for a list of all block lists that exist for+-- that index.+--+-- For information on the current quota limits for block lists, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas for Amazon Kendra>.+listQuerySuggestionsBlockLists_indexId :: Lens.Lens' ListQuerySuggestionsBlockLists Prelude.Text+listQuerySuggestionsBlockLists_indexId = Lens.lens (\ListQuerySuggestionsBlockLists' {indexId} -> indexId) (\s@ListQuerySuggestionsBlockLists' {} a -> s {indexId = a} :: ListQuerySuggestionsBlockLists)++instance+  Core.AWSRequest+    ListQuerySuggestionsBlockLists+  where+  type+    AWSResponse ListQuerySuggestionsBlockLists =+      ListQuerySuggestionsBlockListsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListQuerySuggestionsBlockListsResponse'+            Prelude.<$> ( x+                            Data..?> "BlockListSummaryItems"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    ListQuerySuggestionsBlockLists+  where+  hashWithSalt+    _salt+    ListQuerySuggestionsBlockLists' {..} =+      _salt+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken+        `Prelude.hashWithSalt` indexId++instance+  Prelude.NFData+    ListQuerySuggestionsBlockLists+  where+  rnf ListQuerySuggestionsBlockLists' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf indexId++instance+  Data.ToHeaders+    ListQuerySuggestionsBlockLists+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.ListQuerySuggestionsBlockLists" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListQuerySuggestionsBlockLists where+  toJSON ListQuerySuggestionsBlockLists' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath ListQuerySuggestionsBlockLists where+  toPath = Prelude.const "/"++instance Data.ToQuery ListQuerySuggestionsBlockLists where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListQuerySuggestionsBlockListsResponse' smart constructor.+data ListQuerySuggestionsBlockListsResponse = ListQuerySuggestionsBlockListsResponse'+  { -- | Summary items for a block list.+    --+    -- This includes summary items on the block list ID, block list name, when+    -- the block list was created, when the block list was last updated, and+    -- the count of block words\/phrases in the block list.+    --+    -- For information on the current quota limits for block lists, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas for Amazon Kendra>.+    blockListSummaryItems :: Prelude.Maybe [QuerySuggestionsBlockListSummary],+    -- | If the response is truncated, Amazon Kendra returns this token that you+    -- can use in the subsequent request to retrieve the next set of block+    -- lists.+    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 'ListQuerySuggestionsBlockListsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'blockListSummaryItems', 'listQuerySuggestionsBlockListsResponse_blockListSummaryItems' - Summary items for a block list.+--+-- This includes summary items on the block list ID, block list name, when+-- the block list was created, when the block list was last updated, and+-- the count of block words\/phrases in the block list.+--+-- For information on the current quota limits for block lists, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas for Amazon Kendra>.+--+-- 'nextToken', 'listQuerySuggestionsBlockListsResponse_nextToken' - If the response is truncated, Amazon Kendra returns this token that you+-- can use in the subsequent request to retrieve the next set of block+-- lists.+--+-- 'httpStatus', 'listQuerySuggestionsBlockListsResponse_httpStatus' - The response's http status code.+newListQuerySuggestionsBlockListsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListQuerySuggestionsBlockListsResponse+newListQuerySuggestionsBlockListsResponse+  pHttpStatus_ =+    ListQuerySuggestionsBlockListsResponse'+      { blockListSummaryItems =+          Prelude.Nothing,+        nextToken = Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Summary items for a block list.+--+-- This includes summary items on the block list ID, block list name, when+-- the block list was created, when the block list was last updated, and+-- the count of block words\/phrases in the block list.+--+-- For information on the current quota limits for block lists, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas for Amazon Kendra>.+listQuerySuggestionsBlockListsResponse_blockListSummaryItems :: Lens.Lens' ListQuerySuggestionsBlockListsResponse (Prelude.Maybe [QuerySuggestionsBlockListSummary])+listQuerySuggestionsBlockListsResponse_blockListSummaryItems = Lens.lens (\ListQuerySuggestionsBlockListsResponse' {blockListSummaryItems} -> blockListSummaryItems) (\s@ListQuerySuggestionsBlockListsResponse' {} a -> s {blockListSummaryItems = a} :: ListQuerySuggestionsBlockListsResponse) Prelude.. Lens.mapping Lens.coerced++-- | If the response is truncated, Amazon Kendra returns this token that you+-- can use in the subsequent request to retrieve the next set of block+-- lists.+listQuerySuggestionsBlockListsResponse_nextToken :: Lens.Lens' ListQuerySuggestionsBlockListsResponse (Prelude.Maybe Prelude.Text)+listQuerySuggestionsBlockListsResponse_nextToken = Lens.lens (\ListQuerySuggestionsBlockListsResponse' {nextToken} -> nextToken) (\s@ListQuerySuggestionsBlockListsResponse' {} a -> s {nextToken = a} :: ListQuerySuggestionsBlockListsResponse)++-- | The response's http status code.+listQuerySuggestionsBlockListsResponse_httpStatus :: Lens.Lens' ListQuerySuggestionsBlockListsResponse Prelude.Int+listQuerySuggestionsBlockListsResponse_httpStatus = Lens.lens (\ListQuerySuggestionsBlockListsResponse' {httpStatus} -> httpStatus) (\s@ListQuerySuggestionsBlockListsResponse' {} a -> s {httpStatus = a} :: ListQuerySuggestionsBlockListsResponse)++instance+  Prelude.NFData+    ListQuerySuggestionsBlockListsResponse+  where+  rnf ListQuerySuggestionsBlockListsResponse' {..} =+    Prelude.rnf blockListSummaryItems+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/ListTagsForResource.hs view
@@ -0,0 +1,173 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.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 specified resource. Indexes, FAQs,+-- and data sources can have tags associated with them.+module Amazonka.Kendra.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.Kendra.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 index, FAQ, or data source 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 index, FAQ, or data source to get+-- a list of tags for.+newListTagsForResource ::+  -- | 'resourceARN'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceARN_ =+  ListTagsForResource' {resourceARN = pResourceARN_}++-- | The Amazon Resource Name (ARN) of the index, FAQ, or data source 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.postJSON (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+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.ListTagsForResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListTagsForResource where+  toJSON ListTagsForResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("ResourceARN" Data..= resourceARN)]+      )++instance Data.ToPath ListTagsForResource where+  toPath = Prelude.const "/"++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | A list of tags associated with the index, FAQ, or data source.+    tags :: Prelude.Maybe [Tag],+    -- | 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' - A list of tags associated with the index, FAQ, or data source.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { tags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of tags associated with the index, FAQ, or data source.+listTagsForResourceResponse_tags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe [Tag])+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/Kendra/ListThesauri.hs view
@@ -0,0 +1,223 @@+{-# 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.Kendra.ListThesauri+-- 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 thesauri for an index.+module Amazonka.Kendra.ListThesauri+  ( -- * Creating a Request+    ListThesauri (..),+    newListThesauri,++    -- * Request Lenses+    listThesauri_maxResults,+    listThesauri_nextToken,+    listThesauri_indexId,++    -- * Destructuring the Response+    ListThesauriResponse (..),+    newListThesauriResponse,++    -- * Response Lenses+    listThesauriResponse_nextToken,+    listThesauriResponse_thesaurusSummaryItems,+    listThesauriResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListThesauri' smart constructor.+data ListThesauri = ListThesauri'+  { -- | The maximum number of thesauri to return.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the previous response was incomplete (because there is more data to+    -- retrieve), Amazon Kendra returns a pagination token in the response. You+    -- can use this pagination token to retrieve the next set of thesauri+    -- (@ThesaurusSummaryItems@).+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the index with one or more thesauri.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListThesauri' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'listThesauri_maxResults' - The maximum number of thesauri to return.+--+-- 'nextToken', 'listThesauri_nextToken' - If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of thesauri+-- (@ThesaurusSummaryItems@).+--+-- 'indexId', 'listThesauri_indexId' - The identifier of the index with one or more thesauri.+newListThesauri ::+  -- | 'indexId'+  Prelude.Text ->+  ListThesauri+newListThesauri pIndexId_ =+  ListThesauri'+    { maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      indexId = pIndexId_+    }++-- | The maximum number of thesauri to return.+listThesauri_maxResults :: Lens.Lens' ListThesauri (Prelude.Maybe Prelude.Natural)+listThesauri_maxResults = Lens.lens (\ListThesauri' {maxResults} -> maxResults) (\s@ListThesauri' {} a -> s {maxResults = a} :: ListThesauri)++-- | If the previous response was incomplete (because there is more data to+-- retrieve), Amazon Kendra returns a pagination token in the response. You+-- can use this pagination token to retrieve the next set of thesauri+-- (@ThesaurusSummaryItems@).+listThesauri_nextToken :: Lens.Lens' ListThesauri (Prelude.Maybe Prelude.Text)+listThesauri_nextToken = Lens.lens (\ListThesauri' {nextToken} -> nextToken) (\s@ListThesauri' {} a -> s {nextToken = a} :: ListThesauri)++-- | The identifier of the index with one or more thesauri.+listThesauri_indexId :: Lens.Lens' ListThesauri Prelude.Text+listThesauri_indexId = Lens.lens (\ListThesauri' {indexId} -> indexId) (\s@ListThesauri' {} a -> s {indexId = a} :: ListThesauri)++instance Core.AWSRequest ListThesauri where+  type AWSResponse ListThesauri = ListThesauriResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListThesauriResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> ( x+                            Data..?> "ThesaurusSummaryItems"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListThesauri where+  hashWithSalt _salt ListThesauri' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData ListThesauri where+  rnf ListThesauri' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders ListThesauri where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.ListThesauri" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListThesauri where+  toJSON ListThesauri' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath ListThesauri where+  toPath = Prelude.const "/"++instance Data.ToQuery ListThesauri where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListThesauriResponse' smart constructor.+data ListThesauriResponse = ListThesauriResponse'+  { -- | If the response is truncated, Amazon Kendra returns this token that you+    -- can use in the subsequent request to retrieve the next set of thesauri.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | An array of summary information for a thesaurus or multiple thesauri.+    thesaurusSummaryItems :: Prelude.Maybe [ThesaurusSummary],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListThesauriResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'listThesauriResponse_nextToken' - If the response is truncated, Amazon Kendra returns this token that you+-- can use in the subsequent request to retrieve the next set of thesauri.+--+-- 'thesaurusSummaryItems', 'listThesauriResponse_thesaurusSummaryItems' - An array of summary information for a thesaurus or multiple thesauri.+--+-- 'httpStatus', 'listThesauriResponse_httpStatus' - The response's http status code.+newListThesauriResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListThesauriResponse+newListThesauriResponse pHttpStatus_ =+  ListThesauriResponse'+    { nextToken = Prelude.Nothing,+      thesaurusSummaryItems = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | If the response is truncated, Amazon Kendra returns this token that you+-- can use in the subsequent request to retrieve the next set of thesauri.+listThesauriResponse_nextToken :: Lens.Lens' ListThesauriResponse (Prelude.Maybe Prelude.Text)+listThesauriResponse_nextToken = Lens.lens (\ListThesauriResponse' {nextToken} -> nextToken) (\s@ListThesauriResponse' {} a -> s {nextToken = a} :: ListThesauriResponse)++-- | An array of summary information for a thesaurus or multiple thesauri.+listThesauriResponse_thesaurusSummaryItems :: Lens.Lens' ListThesauriResponse (Prelude.Maybe [ThesaurusSummary])+listThesauriResponse_thesaurusSummaryItems = Lens.lens (\ListThesauriResponse' {thesaurusSummaryItems} -> thesaurusSummaryItems) (\s@ListThesauriResponse' {} a -> s {thesaurusSummaryItems = a} :: ListThesauriResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listThesauriResponse_httpStatus :: Lens.Lens' ListThesauriResponse Prelude.Int+listThesauriResponse_httpStatus = Lens.lens (\ListThesauriResponse' {httpStatus} -> httpStatus) (\s@ListThesauriResponse' {} a -> s {httpStatus = a} :: ListThesauriResponse)++instance Prelude.NFData ListThesauriResponse where+  rnf ListThesauriResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf thesaurusSummaryItems+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/PutPrincipalMapping.hs view
@@ -0,0 +1,335 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.PutPrincipalMapping+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Maps users to their groups so that you only need to provide the user ID+-- when you issue the query.+--+-- You can also map sub groups to groups. For example, the group \"Company+-- Intellectual Property Teams\" includes sub groups \"Research\" and+-- \"Engineering\". These sub groups include their own list of users or+-- people who work in these teams. Only users who work in research and+-- engineering, and therefore belong in the intellectual property group,+-- can see top-secret company documents in their search results.+--+-- This is useful for user context filtering, where search results are+-- filtered based on the user or their group access to documents. For more+-- information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html Filtering on user context>.+--+-- If more than five @PUT@ actions for a group are currently processing, a+-- validation exception is thrown.+--+-- @PutPrincipalMapping@ is currently not supported in the Amazon Web+-- Services GovCloud (US-West) region.+module Amazonka.Kendra.PutPrincipalMapping+  ( -- * Creating a Request+    PutPrincipalMapping (..),+    newPutPrincipalMapping,++    -- * Request Lenses+    putPrincipalMapping_dataSourceId,+    putPrincipalMapping_orderingId,+    putPrincipalMapping_roleArn,+    putPrincipalMapping_indexId,+    putPrincipalMapping_groupId,+    putPrincipalMapping_groupMembers,++    -- * Destructuring the Response+    PutPrincipalMappingResponse (..),+    newPutPrincipalMappingResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newPutPrincipalMapping' smart constructor.+data PutPrincipalMapping = PutPrincipalMapping'+  { -- | The identifier of the data source you want to map users to their groups.+    --+    -- This is useful if a group is tied to multiple data sources, but you only+    -- want the group to access documents of a certain data source. For+    -- example, the groups \"Research\", \"Engineering\", and \"Sales and+    -- Marketing\" are all tied to the company\'s documents stored in the data+    -- sources Confluence and Salesforce. However, \"Sales and Marketing\" team+    -- only needs access to customer-related documents stored in Salesforce.+    dataSourceId :: Prelude.Maybe Prelude.Text,+    -- | The timestamp identifier you specify to ensure Amazon Kendra does not+    -- override the latest @PUT@ action with previous actions. The highest+    -- number ID, which is the ordering ID, is the latest action you want to+    -- process and apply on top of other actions with lower number IDs. This+    -- prevents previous actions with lower number IDs from possibly overriding+    -- the latest action.+    --+    -- The ordering ID can be the UNIX time of the last update you made to a+    -- group members list. You would then provide this list when calling+    -- @PutPrincipalMapping@. This ensures your @PUT@ action for that updated+    -- group with the latest members list doesn\'t get overwritten by earlier+    -- @PUT@ actions for the same group which are yet to be processed.+    --+    -- The default ordering ID is the current UNIX time in milliseconds that+    -- the action was received by Amazon Kendra.+    orderingId :: Prelude.Maybe Prelude.Natural,+    -- | The Amazon Resource Name (ARN) of a role that has access to the S3 file+    -- that contains your list of users or sub groups that belong to a group.+    --+    -- For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-ds IAM roles for Amazon Kendra>.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the index you want to map users to their groups.+    indexId :: Prelude.Text,+    -- | The identifier of the group you want to map its users to.+    groupId :: Prelude.Text,+    -- | The list that contains your users or sub groups that belong the same+    -- group.+    --+    -- For example, the group \"Company\" includes the user \"CEO\" and the sub+    -- groups \"Research\", \"Engineering\", and \"Sales and Marketing\".+    --+    -- If you have more than 1000 users and\/or sub groups for a single group,+    -- you need to provide the path to the S3 file that lists your users and+    -- sub groups for a group. Your sub groups can contain more than 1000+    -- users, but the list of sub groups that belong to a group (and\/or users)+    -- must be no more than 1000.+    groupMembers :: GroupMembers+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutPrincipalMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSourceId', 'putPrincipalMapping_dataSourceId' - The identifier of the data source you want to map users to their groups.+--+-- This is useful if a group is tied to multiple data sources, but you only+-- want the group to access documents of a certain data source. For+-- example, the groups \"Research\", \"Engineering\", and \"Sales and+-- Marketing\" are all tied to the company\'s documents stored in the data+-- sources Confluence and Salesforce. However, \"Sales and Marketing\" team+-- only needs access to customer-related documents stored in Salesforce.+--+-- 'orderingId', 'putPrincipalMapping_orderingId' - The timestamp identifier you specify to ensure Amazon Kendra does not+-- override the latest @PUT@ action with previous actions. The highest+-- number ID, which is the ordering ID, is the latest action you want to+-- process and apply on top of other actions with lower number IDs. This+-- prevents previous actions with lower number IDs from possibly overriding+-- the latest action.+--+-- The ordering ID can be the UNIX time of the last update you made to a+-- group members list. You would then provide this list when calling+-- @PutPrincipalMapping@. This ensures your @PUT@ action for that updated+-- group with the latest members list doesn\'t get overwritten by earlier+-- @PUT@ actions for the same group which are yet to be processed.+--+-- The default ordering ID is the current UNIX time in milliseconds that+-- the action was received by Amazon Kendra.+--+-- 'roleArn', 'putPrincipalMapping_roleArn' - The Amazon Resource Name (ARN) of a role that has access to the S3 file+-- that contains your list of users or sub groups that belong to a group.+--+-- For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-ds IAM roles for Amazon Kendra>.+--+-- 'indexId', 'putPrincipalMapping_indexId' - The identifier of the index you want to map users to their groups.+--+-- 'groupId', 'putPrincipalMapping_groupId' - The identifier of the group you want to map its users to.+--+-- 'groupMembers', 'putPrincipalMapping_groupMembers' - The list that contains your users or sub groups that belong the same+-- group.+--+-- For example, the group \"Company\" includes the user \"CEO\" and the sub+-- groups \"Research\", \"Engineering\", and \"Sales and Marketing\".+--+-- If you have more than 1000 users and\/or sub groups for a single group,+-- you need to provide the path to the S3 file that lists your users and+-- sub groups for a group. Your sub groups can contain more than 1000+-- users, but the list of sub groups that belong to a group (and\/or users)+-- must be no more than 1000.+newPutPrincipalMapping ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'groupId'+  Prelude.Text ->+  -- | 'groupMembers'+  GroupMembers ->+  PutPrincipalMapping+newPutPrincipalMapping+  pIndexId_+  pGroupId_+  pGroupMembers_ =+    PutPrincipalMapping'+      { dataSourceId =+          Prelude.Nothing,+        orderingId = Prelude.Nothing,+        roleArn = Prelude.Nothing,+        indexId = pIndexId_,+        groupId = pGroupId_,+        groupMembers = pGroupMembers_+      }++-- | The identifier of the data source you want to map users to their groups.+--+-- This is useful if a group is tied to multiple data sources, but you only+-- want the group to access documents of a certain data source. For+-- example, the groups \"Research\", \"Engineering\", and \"Sales and+-- Marketing\" are all tied to the company\'s documents stored in the data+-- sources Confluence and Salesforce. However, \"Sales and Marketing\" team+-- only needs access to customer-related documents stored in Salesforce.+putPrincipalMapping_dataSourceId :: Lens.Lens' PutPrincipalMapping (Prelude.Maybe Prelude.Text)+putPrincipalMapping_dataSourceId = Lens.lens (\PutPrincipalMapping' {dataSourceId} -> dataSourceId) (\s@PutPrincipalMapping' {} a -> s {dataSourceId = a} :: PutPrincipalMapping)++-- | The timestamp identifier you specify to ensure Amazon Kendra does not+-- override the latest @PUT@ action with previous actions. The highest+-- number ID, which is the ordering ID, is the latest action you want to+-- process and apply on top of other actions with lower number IDs. This+-- prevents previous actions with lower number IDs from possibly overriding+-- the latest action.+--+-- The ordering ID can be the UNIX time of the last update you made to a+-- group members list. You would then provide this list when calling+-- @PutPrincipalMapping@. This ensures your @PUT@ action for that updated+-- group with the latest members list doesn\'t get overwritten by earlier+-- @PUT@ actions for the same group which are yet to be processed.+--+-- The default ordering ID is the current UNIX time in milliseconds that+-- the action was received by Amazon Kendra.+putPrincipalMapping_orderingId :: Lens.Lens' PutPrincipalMapping (Prelude.Maybe Prelude.Natural)+putPrincipalMapping_orderingId = Lens.lens (\PutPrincipalMapping' {orderingId} -> orderingId) (\s@PutPrincipalMapping' {} a -> s {orderingId = a} :: PutPrincipalMapping)++-- | The Amazon Resource Name (ARN) of a role that has access to the S3 file+-- that contains your list of users or sub groups that belong to a group.+--+-- For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-ds IAM roles for Amazon Kendra>.+putPrincipalMapping_roleArn :: Lens.Lens' PutPrincipalMapping (Prelude.Maybe Prelude.Text)+putPrincipalMapping_roleArn = Lens.lens (\PutPrincipalMapping' {roleArn} -> roleArn) (\s@PutPrincipalMapping' {} a -> s {roleArn = a} :: PutPrincipalMapping)++-- | The identifier of the index you want to map users to their groups.+putPrincipalMapping_indexId :: Lens.Lens' PutPrincipalMapping Prelude.Text+putPrincipalMapping_indexId = Lens.lens (\PutPrincipalMapping' {indexId} -> indexId) (\s@PutPrincipalMapping' {} a -> s {indexId = a} :: PutPrincipalMapping)++-- | The identifier of the group you want to map its users to.+putPrincipalMapping_groupId :: Lens.Lens' PutPrincipalMapping Prelude.Text+putPrincipalMapping_groupId = Lens.lens (\PutPrincipalMapping' {groupId} -> groupId) (\s@PutPrincipalMapping' {} a -> s {groupId = a} :: PutPrincipalMapping)++-- | The list that contains your users or sub groups that belong the same+-- group.+--+-- For example, the group \"Company\" includes the user \"CEO\" and the sub+-- groups \"Research\", \"Engineering\", and \"Sales and Marketing\".+--+-- If you have more than 1000 users and\/or sub groups for a single group,+-- you need to provide the path to the S3 file that lists your users and+-- sub groups for a group. Your sub groups can contain more than 1000+-- users, but the list of sub groups that belong to a group (and\/or users)+-- must be no more than 1000.+putPrincipalMapping_groupMembers :: Lens.Lens' PutPrincipalMapping GroupMembers+putPrincipalMapping_groupMembers = Lens.lens (\PutPrincipalMapping' {groupMembers} -> groupMembers) (\s@PutPrincipalMapping' {} a -> s {groupMembers = a} :: PutPrincipalMapping)++instance Core.AWSRequest PutPrincipalMapping where+  type+    AWSResponse PutPrincipalMapping =+      PutPrincipalMappingResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull PutPrincipalMappingResponse'++instance Prelude.Hashable PutPrincipalMapping where+  hashWithSalt _salt PutPrincipalMapping' {..} =+    _salt+      `Prelude.hashWithSalt` dataSourceId+      `Prelude.hashWithSalt` orderingId+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` indexId+      `Prelude.hashWithSalt` groupId+      `Prelude.hashWithSalt` groupMembers++instance Prelude.NFData PutPrincipalMapping where+  rnf PutPrincipalMapping' {..} =+    Prelude.rnf dataSourceId+      `Prelude.seq` Prelude.rnf orderingId+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf groupId+      `Prelude.seq` Prelude.rnf groupMembers++instance Data.ToHeaders PutPrincipalMapping where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.PutPrincipalMapping" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON PutPrincipalMapping where+  toJSON PutPrincipalMapping' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataSourceId" Data..=) Prelude.<$> dataSourceId,+            ("OrderingId" Data..=) Prelude.<$> orderingId,+            ("RoleArn" Data..=) Prelude.<$> roleArn,+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("GroupId" Data..= groupId),+            Prelude.Just ("GroupMembers" Data..= groupMembers)+          ]+      )++instance Data.ToPath PutPrincipalMapping where+  toPath = Prelude.const "/"++instance Data.ToQuery PutPrincipalMapping where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newPutPrincipalMappingResponse' smart constructor.+data PutPrincipalMappingResponse = PutPrincipalMappingResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PutPrincipalMappingResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newPutPrincipalMappingResponse ::+  PutPrincipalMappingResponse+newPutPrincipalMappingResponse =+  PutPrincipalMappingResponse'++instance Prelude.NFData PutPrincipalMappingResponse where+  rnf _ = ()
+ gen/Amazonka/Kendra/Query.hs view
@@ -0,0 +1,563 @@+{-# 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.Kendra.Query+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Searches an active index. Use this API to search your documents using+-- query. The @Query@ API enables to do faceted search and to filter+-- results based on document attributes.+--+-- It also enables you to provide user context that Amazon Kendra uses to+-- enforce document access control in the search results.+--+-- Amazon Kendra searches your index for text content and question and+-- answer (FAQ) content. By default the response contains three types of+-- results.+--+-- -   Relevant passages+--+-- -   Matching FAQs+--+-- -   Relevant documents+--+-- You can specify that the query return only one type of result using the+-- @QueryResultTypeConfig@ parameter.+--+-- Each query returns the 100 most relevant results.+module Amazonka.Kendra.Query+  ( -- * Creating a Request+    Query (..),+    newQuery,++    -- * Request Lenses+    query_attributeFilter,+    query_documentRelevanceOverrideConfigurations,+    query_facets,+    query_pageNumber,+    query_pageSize,+    query_queryResultTypeFilter,+    query_queryText,+    query_requestedDocumentAttributes,+    query_sortingConfiguration,+    query_spellCorrectionConfiguration,+    query_userContext,+    query_visitorId,+    query_indexId,++    -- * Destructuring the Response+    QueryResponse (..),+    newQueryResponse,++    -- * Response Lenses+    queryResponse_facetResults,+    queryResponse_queryId,+    queryResponse_resultItems,+    queryResponse_spellCorrectedQueries,+    queryResponse_totalNumberOfResults,+    queryResponse_warnings,+    queryResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newQuery' smart constructor.+data Query = Query'+  { -- | Enables filtered searches based on document attributes. You can only+    -- provide one attribute filter; however, the @AndAllFilters@, @NotFilter@,+    -- and @OrAllFilters@ parameters contain a list of other filters.+    --+    -- The @AttributeFilter@ parameter enables you to create a set of filtering+    -- rules that a document must satisfy to be included in the query results.+    attributeFilter :: Prelude.Maybe AttributeFilter,+    -- | Overrides relevance tuning configurations of fields or attributes set at+    -- the index level.+    --+    -- If you use this API to override the relevance tuning configured at the+    -- index level, but there is no relevance tuning configured at the index+    -- level, then Amazon Kendra does not apply any relevance tuning.+    --+    -- If there is relevance tuning configured at the index level, but you do+    -- not use this API to override any relevance tuning in the index, then+    -- Amazon Kendra uses the relevance tuning that is configured at the index+    -- level.+    --+    -- If there is relevance tuning configured for fields at the index level,+    -- but you use this API to override only some of these fields, then for the+    -- fields you did not override, the importance is set to 1.+    documentRelevanceOverrideConfigurations :: Prelude.Maybe [DocumentRelevanceConfiguration],+    -- | An array of documents attributes. Amazon Kendra returns a count for each+    -- attribute key specified. This helps your users narrow their search.+    facets :: Prelude.Maybe [Facet],+    -- | Query results are returned in pages the size of the @PageSize@+    -- parameter. By default, Amazon Kendra returns the first page of results.+    -- Use this parameter to get result pages after the first one.+    pageNumber :: Prelude.Maybe Prelude.Int,+    -- | Sets the number of results that are returned in each page of results.+    -- The default page size is 10. The maximum number of results returned is+    -- 100. If you ask for more than 100 results, only 100 are returned.+    pageSize :: Prelude.Maybe Prelude.Int,+    -- | Sets the type of query. Only results for the specified query type are+    -- returned.+    queryResultTypeFilter :: Prelude.Maybe QueryResultType,+    -- | The input query text for the search. Amazon Kendra truncates queries at+    -- 30 token words, which excludes punctuation and stop words. Truncation+    -- still applies if you use Boolean or more advanced, complex queries.+    queryText :: Prelude.Maybe Prelude.Text,+    -- | An array of document attributes to include in the response. You can+    -- limit the response to include certain document attributes. By default+    -- all document attributes are included in the response.+    requestedDocumentAttributes :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | Provides information that determines how the results of the query are+    -- sorted. You can set the field that Amazon Kendra should sort the results+    -- on, and specify whether the results should be sorted in ascending or+    -- descending order. In the case of ties in sorting the results, the+    -- results are sorted by relevance.+    --+    -- If you don\'t provide sorting configuration, the results are sorted by+    -- the relevance that Amazon Kendra determines for the result.+    sortingConfiguration :: Prelude.Maybe SortingConfiguration,+    -- | Enables suggested spell corrections for queries.+    spellCorrectionConfiguration :: Prelude.Maybe SpellCorrectionConfiguration,+    -- | The user context token or user and group information.+    userContext :: Prelude.Maybe UserContext,+    -- | Provides an identifier for a specific user. The @VisitorId@ should be a+    -- unique identifier, such as a GUID. Don\'t use personally identifiable+    -- information, such as the user\'s email address, as the @VisitorId@.+    visitorId :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the index to search. The identifier is returned in the+    -- response from the @CreateIndex@ API.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Query' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributeFilter', 'query_attributeFilter' - Enables filtered searches based on document attributes. You can only+-- provide one attribute filter; however, the @AndAllFilters@, @NotFilter@,+-- and @OrAllFilters@ parameters contain a list of other filters.+--+-- The @AttributeFilter@ parameter enables you to create a set of filtering+-- rules that a document must satisfy to be included in the query results.+--+-- 'documentRelevanceOverrideConfigurations', 'query_documentRelevanceOverrideConfigurations' - Overrides relevance tuning configurations of fields or attributes set at+-- the index level.+--+-- If you use this API to override the relevance tuning configured at the+-- index level, but there is no relevance tuning configured at the index+-- level, then Amazon Kendra does not apply any relevance tuning.+--+-- If there is relevance tuning configured at the index level, but you do+-- not use this API to override any relevance tuning in the index, then+-- Amazon Kendra uses the relevance tuning that is configured at the index+-- level.+--+-- If there is relevance tuning configured for fields at the index level,+-- but you use this API to override only some of these fields, then for the+-- fields you did not override, the importance is set to 1.+--+-- 'facets', 'query_facets' - An array of documents attributes. Amazon Kendra returns a count for each+-- attribute key specified. This helps your users narrow their search.+--+-- 'pageNumber', 'query_pageNumber' - Query results are returned in pages the size of the @PageSize@+-- parameter. By default, Amazon Kendra returns the first page of results.+-- Use this parameter to get result pages after the first one.+--+-- 'pageSize', 'query_pageSize' - Sets the number of results that are returned in each page of results.+-- The default page size is 10. The maximum number of results returned is+-- 100. If you ask for more than 100 results, only 100 are returned.+--+-- 'queryResultTypeFilter', 'query_queryResultTypeFilter' - Sets the type of query. Only results for the specified query type are+-- returned.+--+-- 'queryText', 'query_queryText' - The input query text for the search. Amazon Kendra truncates queries at+-- 30 token words, which excludes punctuation and stop words. Truncation+-- still applies if you use Boolean or more advanced, complex queries.+--+-- 'requestedDocumentAttributes', 'query_requestedDocumentAttributes' - An array of document attributes to include in the response. You can+-- limit the response to include certain document attributes. By default+-- all document attributes are included in the response.+--+-- 'sortingConfiguration', 'query_sortingConfiguration' - Provides information that determines how the results of the query are+-- sorted. You can set the field that Amazon Kendra should sort the results+-- on, and specify whether the results should be sorted in ascending or+-- descending order. In the case of ties in sorting the results, the+-- results are sorted by relevance.+--+-- If you don\'t provide sorting configuration, the results are sorted by+-- the relevance that Amazon Kendra determines for the result.+--+-- 'spellCorrectionConfiguration', 'query_spellCorrectionConfiguration' - Enables suggested spell corrections for queries.+--+-- 'userContext', 'query_userContext' - The user context token or user and group information.+--+-- 'visitorId', 'query_visitorId' - Provides an identifier for a specific user. The @VisitorId@ should be a+-- unique identifier, such as a GUID. Don\'t use personally identifiable+-- information, such as the user\'s email address, as the @VisitorId@.+--+-- 'indexId', 'query_indexId' - The identifier of the index to search. The identifier is returned in the+-- response from the @CreateIndex@ API.+newQuery ::+  -- | 'indexId'+  Prelude.Text ->+  Query+newQuery pIndexId_ =+  Query'+    { attributeFilter = Prelude.Nothing,+      documentRelevanceOverrideConfigurations =+        Prelude.Nothing,+      facets = Prelude.Nothing,+      pageNumber = Prelude.Nothing,+      pageSize = Prelude.Nothing,+      queryResultTypeFilter = Prelude.Nothing,+      queryText = Prelude.Nothing,+      requestedDocumentAttributes = Prelude.Nothing,+      sortingConfiguration = Prelude.Nothing,+      spellCorrectionConfiguration = Prelude.Nothing,+      userContext = Prelude.Nothing,+      visitorId = Prelude.Nothing,+      indexId = pIndexId_+    }++-- | Enables filtered searches based on document attributes. You can only+-- provide one attribute filter; however, the @AndAllFilters@, @NotFilter@,+-- and @OrAllFilters@ parameters contain a list of other filters.+--+-- The @AttributeFilter@ parameter enables you to create a set of filtering+-- rules that a document must satisfy to be included in the query results.+query_attributeFilter :: Lens.Lens' Query (Prelude.Maybe AttributeFilter)+query_attributeFilter = Lens.lens (\Query' {attributeFilter} -> attributeFilter) (\s@Query' {} a -> s {attributeFilter = a} :: Query)++-- | Overrides relevance tuning configurations of fields or attributes set at+-- the index level.+--+-- If you use this API to override the relevance tuning configured at the+-- index level, but there is no relevance tuning configured at the index+-- level, then Amazon Kendra does not apply any relevance tuning.+--+-- If there is relevance tuning configured at the index level, but you do+-- not use this API to override any relevance tuning in the index, then+-- Amazon Kendra uses the relevance tuning that is configured at the index+-- level.+--+-- If there is relevance tuning configured for fields at the index level,+-- but you use this API to override only some of these fields, then for the+-- fields you did not override, the importance is set to 1.+query_documentRelevanceOverrideConfigurations :: Lens.Lens' Query (Prelude.Maybe [DocumentRelevanceConfiguration])+query_documentRelevanceOverrideConfigurations = Lens.lens (\Query' {documentRelevanceOverrideConfigurations} -> documentRelevanceOverrideConfigurations) (\s@Query' {} a -> s {documentRelevanceOverrideConfigurations = a} :: Query) Prelude.. Lens.mapping Lens.coerced++-- | An array of documents attributes. Amazon Kendra returns a count for each+-- attribute key specified. This helps your users narrow their search.+query_facets :: Lens.Lens' Query (Prelude.Maybe [Facet])+query_facets = Lens.lens (\Query' {facets} -> facets) (\s@Query' {} a -> s {facets = a} :: Query) Prelude.. Lens.mapping Lens.coerced++-- | Query results are returned in pages the size of the @PageSize@+-- parameter. By default, Amazon Kendra returns the first page of results.+-- Use this parameter to get result pages after the first one.+query_pageNumber :: Lens.Lens' Query (Prelude.Maybe Prelude.Int)+query_pageNumber = Lens.lens (\Query' {pageNumber} -> pageNumber) (\s@Query' {} a -> s {pageNumber = a} :: Query)++-- | Sets the number of results that are returned in each page of results.+-- The default page size is 10. The maximum number of results returned is+-- 100. If you ask for more than 100 results, only 100 are returned.+query_pageSize :: Lens.Lens' Query (Prelude.Maybe Prelude.Int)+query_pageSize = Lens.lens (\Query' {pageSize} -> pageSize) (\s@Query' {} a -> s {pageSize = a} :: Query)++-- | Sets the type of query. Only results for the specified query type are+-- returned.+query_queryResultTypeFilter :: Lens.Lens' Query (Prelude.Maybe QueryResultType)+query_queryResultTypeFilter = Lens.lens (\Query' {queryResultTypeFilter} -> queryResultTypeFilter) (\s@Query' {} a -> s {queryResultTypeFilter = a} :: Query)++-- | The input query text for the search. Amazon Kendra truncates queries at+-- 30 token words, which excludes punctuation and stop words. Truncation+-- still applies if you use Boolean or more advanced, complex queries.+query_queryText :: Lens.Lens' Query (Prelude.Maybe Prelude.Text)+query_queryText = Lens.lens (\Query' {queryText} -> queryText) (\s@Query' {} a -> s {queryText = a} :: Query)++-- | An array of document attributes to include in the response. You can+-- limit the response to include certain document attributes. By default+-- all document attributes are included in the response.+query_requestedDocumentAttributes :: Lens.Lens' Query (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+query_requestedDocumentAttributes = Lens.lens (\Query' {requestedDocumentAttributes} -> requestedDocumentAttributes) (\s@Query' {} a -> s {requestedDocumentAttributes = a} :: Query) Prelude.. Lens.mapping Lens.coerced++-- | Provides information that determines how the results of the query are+-- sorted. You can set the field that Amazon Kendra should sort the results+-- on, and specify whether the results should be sorted in ascending or+-- descending order. In the case of ties in sorting the results, the+-- results are sorted by relevance.+--+-- If you don\'t provide sorting configuration, the results are sorted by+-- the relevance that Amazon Kendra determines for the result.+query_sortingConfiguration :: Lens.Lens' Query (Prelude.Maybe SortingConfiguration)+query_sortingConfiguration = Lens.lens (\Query' {sortingConfiguration} -> sortingConfiguration) (\s@Query' {} a -> s {sortingConfiguration = a} :: Query)++-- | Enables suggested spell corrections for queries.+query_spellCorrectionConfiguration :: Lens.Lens' Query (Prelude.Maybe SpellCorrectionConfiguration)+query_spellCorrectionConfiguration = Lens.lens (\Query' {spellCorrectionConfiguration} -> spellCorrectionConfiguration) (\s@Query' {} a -> s {spellCorrectionConfiguration = a} :: Query)++-- | The user context token or user and group information.+query_userContext :: Lens.Lens' Query (Prelude.Maybe UserContext)+query_userContext = Lens.lens (\Query' {userContext} -> userContext) (\s@Query' {} a -> s {userContext = a} :: Query)++-- | Provides an identifier for a specific user. The @VisitorId@ should be a+-- unique identifier, such as a GUID. Don\'t use personally identifiable+-- information, such as the user\'s email address, as the @VisitorId@.+query_visitorId :: Lens.Lens' Query (Prelude.Maybe Prelude.Text)+query_visitorId = Lens.lens (\Query' {visitorId} -> visitorId) (\s@Query' {} a -> s {visitorId = a} :: Query)++-- | The identifier of the index to search. The identifier is returned in the+-- response from the @CreateIndex@ API.+query_indexId :: Lens.Lens' Query Prelude.Text+query_indexId = Lens.lens (\Query' {indexId} -> indexId) (\s@Query' {} a -> s {indexId = a} :: Query)++instance Core.AWSRequest Query where+  type AWSResponse Query = QueryResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          QueryResponse'+            Prelude.<$> (x Data..?> "FacetResults" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..?> "QueryId")+            Prelude.<*> (x Data..?> "ResultItems" Core..!@ Prelude.mempty)+            Prelude.<*> ( x+                            Data..?> "SpellCorrectedQueries"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "TotalNumberOfResults")+            Prelude.<*> (x Data..?> "Warnings")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable Query where+  hashWithSalt _salt Query' {..} =+    _salt+      `Prelude.hashWithSalt` attributeFilter+      `Prelude.hashWithSalt` documentRelevanceOverrideConfigurations+      `Prelude.hashWithSalt` facets+      `Prelude.hashWithSalt` pageNumber+      `Prelude.hashWithSalt` pageSize+      `Prelude.hashWithSalt` queryResultTypeFilter+      `Prelude.hashWithSalt` queryText+      `Prelude.hashWithSalt` requestedDocumentAttributes+      `Prelude.hashWithSalt` sortingConfiguration+      `Prelude.hashWithSalt` spellCorrectionConfiguration+      `Prelude.hashWithSalt` userContext+      `Prelude.hashWithSalt` visitorId+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData Query where+  rnf Query' {..} =+    Prelude.rnf attributeFilter+      `Prelude.seq` Prelude.rnf documentRelevanceOverrideConfigurations+      `Prelude.seq` Prelude.rnf facets+      `Prelude.seq` Prelude.rnf pageNumber+      `Prelude.seq` Prelude.rnf pageSize+      `Prelude.seq` Prelude.rnf queryResultTypeFilter+      `Prelude.seq` Prelude.rnf queryText+      `Prelude.seq` Prelude.rnf requestedDocumentAttributes+      `Prelude.seq` Prelude.rnf sortingConfiguration+      `Prelude.seq` Prelude.rnf spellCorrectionConfiguration+      `Prelude.seq` Prelude.rnf userContext+      `Prelude.seq` Prelude.rnf visitorId+      `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders Query where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.Query" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON Query where+  toJSON Query' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AttributeFilter" Data..=)+              Prelude.<$> attributeFilter,+            ("DocumentRelevanceOverrideConfigurations" Data..=)+              Prelude.<$> documentRelevanceOverrideConfigurations,+            ("Facets" Data..=) Prelude.<$> facets,+            ("PageNumber" Data..=) Prelude.<$> pageNumber,+            ("PageSize" Data..=) Prelude.<$> pageSize,+            ("QueryResultTypeFilter" Data..=)+              Prelude.<$> queryResultTypeFilter,+            ("QueryText" Data..=) Prelude.<$> queryText,+            ("RequestedDocumentAttributes" Data..=)+              Prelude.<$> requestedDocumentAttributes,+            ("SortingConfiguration" Data..=)+              Prelude.<$> sortingConfiguration,+            ("SpellCorrectionConfiguration" Data..=)+              Prelude.<$> spellCorrectionConfiguration,+            ("UserContext" Data..=) Prelude.<$> userContext,+            ("VisitorId" Data..=) Prelude.<$> visitorId,+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath Query where+  toPath = Prelude.const "/"++instance Data.ToQuery Query where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newQueryResponse' smart constructor.+data QueryResponse = QueryResponse'+  { -- | Contains the facet results. A @FacetResult@ contains the counts for each+    -- attribute key that was specified in the @Facets@ input parameter.+    facetResults :: Prelude.Maybe [FacetResult],+    -- | The identifier for the search. You use @QueryId@ to identify the search+    -- when using the feedback API.+    queryId :: Prelude.Maybe Prelude.Text,+    -- | The results of the search.+    resultItems :: Prelude.Maybe [QueryResultItem],+    -- | A list of information related to suggested spell corrections for a+    -- query.+    spellCorrectedQueries :: Prelude.Maybe [SpellCorrectedQuery],+    -- | The total number of items found by the search; however, you can only+    -- retrieve up to 100 items. For example, if the search found 192 items,+    -- you can only retrieve the first 100 of the items.+    totalNumberOfResults :: Prelude.Maybe Prelude.Int,+    -- | A list of warning codes and their messages on problems with your query.+    --+    -- Amazon Kendra currently only supports one type of warning, which is a+    -- warning on invalid syntax used in the query. For examples of invalid+    -- query syntax, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/searching-example.html#searching-index-query-syntax Searching with advanced query syntax>.+    warnings :: Prelude.Maybe (Prelude.NonEmpty Warning),+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'QueryResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'facetResults', 'queryResponse_facetResults' - Contains the facet results. A @FacetResult@ contains the counts for each+-- attribute key that was specified in the @Facets@ input parameter.+--+-- 'queryId', 'queryResponse_queryId' - The identifier for the search. You use @QueryId@ to identify the search+-- when using the feedback API.+--+-- 'resultItems', 'queryResponse_resultItems' - The results of the search.+--+-- 'spellCorrectedQueries', 'queryResponse_spellCorrectedQueries' - A list of information related to suggested spell corrections for a+-- query.+--+-- 'totalNumberOfResults', 'queryResponse_totalNumberOfResults' - The total number of items found by the search; however, you can only+-- retrieve up to 100 items. For example, if the search found 192 items,+-- you can only retrieve the first 100 of the items.+--+-- 'warnings', 'queryResponse_warnings' - A list of warning codes and their messages on problems with your query.+--+-- Amazon Kendra currently only supports one type of warning, which is a+-- warning on invalid syntax used in the query. For examples of invalid+-- query syntax, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/searching-example.html#searching-index-query-syntax Searching with advanced query syntax>.+--+-- 'httpStatus', 'queryResponse_httpStatus' - The response's http status code.+newQueryResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  QueryResponse+newQueryResponse pHttpStatus_ =+  QueryResponse'+    { facetResults = Prelude.Nothing,+      queryId = Prelude.Nothing,+      resultItems = Prelude.Nothing,+      spellCorrectedQueries = Prelude.Nothing,+      totalNumberOfResults = Prelude.Nothing,+      warnings = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Contains the facet results. A @FacetResult@ contains the counts for each+-- attribute key that was specified in the @Facets@ input parameter.+queryResponse_facetResults :: Lens.Lens' QueryResponse (Prelude.Maybe [FacetResult])+queryResponse_facetResults = Lens.lens (\QueryResponse' {facetResults} -> facetResults) (\s@QueryResponse' {} a -> s {facetResults = a} :: QueryResponse) Prelude.. Lens.mapping Lens.coerced++-- | The identifier for the search. You use @QueryId@ to identify the search+-- when using the feedback API.+queryResponse_queryId :: Lens.Lens' QueryResponse (Prelude.Maybe Prelude.Text)+queryResponse_queryId = Lens.lens (\QueryResponse' {queryId} -> queryId) (\s@QueryResponse' {} a -> s {queryId = a} :: QueryResponse)++-- | The results of the search.+queryResponse_resultItems :: Lens.Lens' QueryResponse (Prelude.Maybe [QueryResultItem])+queryResponse_resultItems = Lens.lens (\QueryResponse' {resultItems} -> resultItems) (\s@QueryResponse' {} a -> s {resultItems = a} :: QueryResponse) Prelude.. Lens.mapping Lens.coerced++-- | A list of information related to suggested spell corrections for a+-- query.+queryResponse_spellCorrectedQueries :: Lens.Lens' QueryResponse (Prelude.Maybe [SpellCorrectedQuery])+queryResponse_spellCorrectedQueries = Lens.lens (\QueryResponse' {spellCorrectedQueries} -> spellCorrectedQueries) (\s@QueryResponse' {} a -> s {spellCorrectedQueries = a} :: QueryResponse) Prelude.. Lens.mapping Lens.coerced++-- | The total number of items found by the search; however, you can only+-- retrieve up to 100 items. For example, if the search found 192 items,+-- you can only retrieve the first 100 of the items.+queryResponse_totalNumberOfResults :: Lens.Lens' QueryResponse (Prelude.Maybe Prelude.Int)+queryResponse_totalNumberOfResults = Lens.lens (\QueryResponse' {totalNumberOfResults} -> totalNumberOfResults) (\s@QueryResponse' {} a -> s {totalNumberOfResults = a} :: QueryResponse)++-- | A list of warning codes and their messages on problems with your query.+--+-- Amazon Kendra currently only supports one type of warning, which is a+-- warning on invalid syntax used in the query. For examples of invalid+-- query syntax, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/searching-example.html#searching-index-query-syntax Searching with advanced query syntax>.+queryResponse_warnings :: Lens.Lens' QueryResponse (Prelude.Maybe (Prelude.NonEmpty Warning))+queryResponse_warnings = Lens.lens (\QueryResponse' {warnings} -> warnings) (\s@QueryResponse' {} a -> s {warnings = a} :: QueryResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+queryResponse_httpStatus :: Lens.Lens' QueryResponse Prelude.Int+queryResponse_httpStatus = Lens.lens (\QueryResponse' {httpStatus} -> httpStatus) (\s@QueryResponse' {} a -> s {httpStatus = a} :: QueryResponse)++instance Prelude.NFData QueryResponse where+  rnf QueryResponse' {..} =+    Prelude.rnf facetResults+      `Prelude.seq` Prelude.rnf queryId+      `Prelude.seq` Prelude.rnf resultItems+      `Prelude.seq` Prelude.rnf spellCorrectedQueries+      `Prelude.seq` Prelude.rnf totalNumberOfResults+      `Prelude.seq` Prelude.rnf warnings+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/StartDataSourceSyncJob.hs view
@@ -0,0 +1,192 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.StartDataSourceSyncJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Starts a synchronization job for a data source connector. If a+-- synchronization job is already in progress, Amazon Kendra returns a+-- @ResourceInUseException@ exception.+module Amazonka.Kendra.StartDataSourceSyncJob+  ( -- * Creating a Request+    StartDataSourceSyncJob (..),+    newStartDataSourceSyncJob,++    -- * Request Lenses+    startDataSourceSyncJob_id,+    startDataSourceSyncJob_indexId,++    -- * Destructuring the Response+    StartDataSourceSyncJobResponse (..),+    newStartDataSourceSyncJobResponse,++    -- * Response Lenses+    startDataSourceSyncJobResponse_executionId,+    startDataSourceSyncJobResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartDataSourceSyncJob' smart constructor.+data StartDataSourceSyncJob = StartDataSourceSyncJob'+  { -- | The identifier of the data source connector to synchronize.+    id :: Prelude.Text,+    -- | The identifier of the index used with the data source connector.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartDataSourceSyncJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'startDataSourceSyncJob_id' - The identifier of the data source connector to synchronize.+--+-- 'indexId', 'startDataSourceSyncJob_indexId' - The identifier of the index used with the data source connector.+newStartDataSourceSyncJob ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  StartDataSourceSyncJob+newStartDataSourceSyncJob pId_ pIndexId_ =+  StartDataSourceSyncJob'+    { id = pId_,+      indexId = pIndexId_+    }++-- | The identifier of the data source connector to synchronize.+startDataSourceSyncJob_id :: Lens.Lens' StartDataSourceSyncJob Prelude.Text+startDataSourceSyncJob_id = Lens.lens (\StartDataSourceSyncJob' {id} -> id) (\s@StartDataSourceSyncJob' {} a -> s {id = a} :: StartDataSourceSyncJob)++-- | The identifier of the index used with the data source connector.+startDataSourceSyncJob_indexId :: Lens.Lens' StartDataSourceSyncJob Prelude.Text+startDataSourceSyncJob_indexId = Lens.lens (\StartDataSourceSyncJob' {indexId} -> indexId) (\s@StartDataSourceSyncJob' {} a -> s {indexId = a} :: StartDataSourceSyncJob)++instance Core.AWSRequest StartDataSourceSyncJob where+  type+    AWSResponse StartDataSourceSyncJob =+      StartDataSourceSyncJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartDataSourceSyncJobResponse'+            Prelude.<$> (x Data..?> "ExecutionId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable StartDataSourceSyncJob where+  hashWithSalt _salt StartDataSourceSyncJob' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData StartDataSourceSyncJob where+  rnf StartDataSourceSyncJob' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders StartDataSourceSyncJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.StartDataSourceSyncJob" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StartDataSourceSyncJob where+  toJSON StartDataSourceSyncJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath StartDataSourceSyncJob where+  toPath = Prelude.const "/"++instance Data.ToQuery StartDataSourceSyncJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartDataSourceSyncJobResponse' smart constructor.+data StartDataSourceSyncJobResponse = StartDataSourceSyncJobResponse'+  { -- | Identifies a particular synchronization job.+    executionId :: 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 'StartDataSourceSyncJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'executionId', 'startDataSourceSyncJobResponse_executionId' - Identifies a particular synchronization job.+--+-- 'httpStatus', 'startDataSourceSyncJobResponse_httpStatus' - The response's http status code.+newStartDataSourceSyncJobResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartDataSourceSyncJobResponse+newStartDataSourceSyncJobResponse pHttpStatus_ =+  StartDataSourceSyncJobResponse'+    { executionId =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | Identifies a particular synchronization job.+startDataSourceSyncJobResponse_executionId :: Lens.Lens' StartDataSourceSyncJobResponse (Prelude.Maybe Prelude.Text)+startDataSourceSyncJobResponse_executionId = Lens.lens (\StartDataSourceSyncJobResponse' {executionId} -> executionId) (\s@StartDataSourceSyncJobResponse' {} a -> s {executionId = a} :: StartDataSourceSyncJobResponse)++-- | The response's http status code.+startDataSourceSyncJobResponse_httpStatus :: Lens.Lens' StartDataSourceSyncJobResponse Prelude.Int+startDataSourceSyncJobResponse_httpStatus = Lens.lens (\StartDataSourceSyncJobResponse' {httpStatus} -> httpStatus) (\s@StartDataSourceSyncJobResponse' {} a -> s {httpStatus = a} :: StartDataSourceSyncJobResponse)++instance+  Prelude.NFData+    StartDataSourceSyncJobResponse+  where+  rnf StartDataSourceSyncJobResponse' {..} =+    Prelude.rnf executionId+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/StopDataSourceSyncJob.hs view
@@ -0,0 +1,156 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.StopDataSourceSyncJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Stops a synchronization job that is currently running. You can\'t stop a+-- scheduled synchronization job.+module Amazonka.Kendra.StopDataSourceSyncJob+  ( -- * Creating a Request+    StopDataSourceSyncJob (..),+    newStopDataSourceSyncJob,++    -- * Request Lenses+    stopDataSourceSyncJob_id,+    stopDataSourceSyncJob_indexId,++    -- * Destructuring the Response+    StopDataSourceSyncJobResponse (..),+    newStopDataSourceSyncJobResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStopDataSourceSyncJob' smart constructor.+data StopDataSourceSyncJob = StopDataSourceSyncJob'+  { -- | The identifier of the data source connector for which to stop the+    -- synchronization jobs.+    id :: Prelude.Text,+    -- | The identifier of the index used with the data source connector.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopDataSourceSyncJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'stopDataSourceSyncJob_id' - The identifier of the data source connector for which to stop the+-- synchronization jobs.+--+-- 'indexId', 'stopDataSourceSyncJob_indexId' - The identifier of the index used with the data source connector.+newStopDataSourceSyncJob ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  StopDataSourceSyncJob+newStopDataSourceSyncJob pId_ pIndexId_ =+  StopDataSourceSyncJob'+    { id = pId_,+      indexId = pIndexId_+    }++-- | The identifier of the data source connector for which to stop the+-- synchronization jobs.+stopDataSourceSyncJob_id :: Lens.Lens' StopDataSourceSyncJob Prelude.Text+stopDataSourceSyncJob_id = Lens.lens (\StopDataSourceSyncJob' {id} -> id) (\s@StopDataSourceSyncJob' {} a -> s {id = a} :: StopDataSourceSyncJob)++-- | The identifier of the index used with the data source connector.+stopDataSourceSyncJob_indexId :: Lens.Lens' StopDataSourceSyncJob Prelude.Text+stopDataSourceSyncJob_indexId = Lens.lens (\StopDataSourceSyncJob' {indexId} -> indexId) (\s@StopDataSourceSyncJob' {} a -> s {indexId = a} :: StopDataSourceSyncJob)++instance Core.AWSRequest StopDataSourceSyncJob where+  type+    AWSResponse StopDataSourceSyncJob =+      StopDataSourceSyncJobResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull StopDataSourceSyncJobResponse'++instance Prelude.Hashable StopDataSourceSyncJob where+  hashWithSalt _salt StopDataSourceSyncJob' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData StopDataSourceSyncJob where+  rnf StopDataSourceSyncJob' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders StopDataSourceSyncJob where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.StopDataSourceSyncJob" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON StopDataSourceSyncJob where+  toJSON StopDataSourceSyncJob' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath StopDataSourceSyncJob where+  toPath = Prelude.const "/"++instance Data.ToQuery StopDataSourceSyncJob where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStopDataSourceSyncJobResponse' smart constructor.+data StopDataSourceSyncJobResponse = StopDataSourceSyncJobResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StopDataSourceSyncJobResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newStopDataSourceSyncJobResponse ::+  StopDataSourceSyncJobResponse+newStopDataSourceSyncJobResponse =+  StopDataSourceSyncJobResponse'++instance Prelude.NFData StopDataSourceSyncJobResponse where+  rnf _ = ()
+ gen/Amazonka/Kendra/SubmitFeedback.hs view
@@ -0,0 +1,194 @@+{-# 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.Kendra.SubmitFeedback+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Enables you to provide feedback to Amazon Kendra to improve the+-- performance of your index.+--+-- @SubmitFeedback@ is currently not supported in the Amazon Web Services+-- GovCloud (US-West) region.+module Amazonka.Kendra.SubmitFeedback+  ( -- * Creating a Request+    SubmitFeedback (..),+    newSubmitFeedback,++    -- * Request Lenses+    submitFeedback_clickFeedbackItems,+    submitFeedback_relevanceFeedbackItems,+    submitFeedback_indexId,+    submitFeedback_queryId,++    -- * Destructuring the Response+    SubmitFeedbackResponse (..),+    newSubmitFeedbackResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newSubmitFeedback' smart constructor.+data SubmitFeedback = SubmitFeedback'+  { -- | Tells Amazon Kendra that a particular search result link was chosen by+    -- the user.+    clickFeedbackItems :: Prelude.Maybe [ClickFeedback],+    -- | Provides Amazon Kendra with relevant or not relevant feedback for+    -- whether a particular item was relevant to the search.+    relevanceFeedbackItems :: Prelude.Maybe [RelevanceFeedback],+    -- | The identifier of the index that was queried.+    indexId :: Prelude.Text,+    -- | The identifier of the specific query for which you are submitting+    -- feedback. The query ID is returned in the response to the @Query@ API.+    queryId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SubmitFeedback' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'clickFeedbackItems', 'submitFeedback_clickFeedbackItems' - Tells Amazon Kendra that a particular search result link was chosen by+-- the user.+--+-- 'relevanceFeedbackItems', 'submitFeedback_relevanceFeedbackItems' - Provides Amazon Kendra with relevant or not relevant feedback for+-- whether a particular item was relevant to the search.+--+-- 'indexId', 'submitFeedback_indexId' - The identifier of the index that was queried.+--+-- 'queryId', 'submitFeedback_queryId' - The identifier of the specific query for which you are submitting+-- feedback. The query ID is returned in the response to the @Query@ API.+newSubmitFeedback ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'queryId'+  Prelude.Text ->+  SubmitFeedback+newSubmitFeedback pIndexId_ pQueryId_ =+  SubmitFeedback'+    { clickFeedbackItems =+        Prelude.Nothing,+      relevanceFeedbackItems = Prelude.Nothing,+      indexId = pIndexId_,+      queryId = pQueryId_+    }++-- | Tells Amazon Kendra that a particular search result link was chosen by+-- the user.+submitFeedback_clickFeedbackItems :: Lens.Lens' SubmitFeedback (Prelude.Maybe [ClickFeedback])+submitFeedback_clickFeedbackItems = Lens.lens (\SubmitFeedback' {clickFeedbackItems} -> clickFeedbackItems) (\s@SubmitFeedback' {} a -> s {clickFeedbackItems = a} :: SubmitFeedback) Prelude.. Lens.mapping Lens.coerced++-- | Provides Amazon Kendra with relevant or not relevant feedback for+-- whether a particular item was relevant to the search.+submitFeedback_relevanceFeedbackItems :: Lens.Lens' SubmitFeedback (Prelude.Maybe [RelevanceFeedback])+submitFeedback_relevanceFeedbackItems = Lens.lens (\SubmitFeedback' {relevanceFeedbackItems} -> relevanceFeedbackItems) (\s@SubmitFeedback' {} a -> s {relevanceFeedbackItems = a} :: SubmitFeedback) Prelude.. Lens.mapping Lens.coerced++-- | The identifier of the index that was queried.+submitFeedback_indexId :: Lens.Lens' SubmitFeedback Prelude.Text+submitFeedback_indexId = Lens.lens (\SubmitFeedback' {indexId} -> indexId) (\s@SubmitFeedback' {} a -> s {indexId = a} :: SubmitFeedback)++-- | The identifier of the specific query for which you are submitting+-- feedback. The query ID is returned in the response to the @Query@ API.+submitFeedback_queryId :: Lens.Lens' SubmitFeedback Prelude.Text+submitFeedback_queryId = Lens.lens (\SubmitFeedback' {queryId} -> queryId) (\s@SubmitFeedback' {} a -> s {queryId = a} :: SubmitFeedback)++instance Core.AWSRequest SubmitFeedback where+  type+    AWSResponse SubmitFeedback =+      SubmitFeedbackResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull SubmitFeedbackResponse'++instance Prelude.Hashable SubmitFeedback where+  hashWithSalt _salt SubmitFeedback' {..} =+    _salt+      `Prelude.hashWithSalt` clickFeedbackItems+      `Prelude.hashWithSalt` relevanceFeedbackItems+      `Prelude.hashWithSalt` indexId+      `Prelude.hashWithSalt` queryId++instance Prelude.NFData SubmitFeedback where+  rnf SubmitFeedback' {..} =+    Prelude.rnf clickFeedbackItems+      `Prelude.seq` Prelude.rnf relevanceFeedbackItems+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf queryId++instance Data.ToHeaders SubmitFeedback where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.SubmitFeedback" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON SubmitFeedback where+  toJSON SubmitFeedback' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClickFeedbackItems" Data..=)+              Prelude.<$> clickFeedbackItems,+            ("RelevanceFeedbackItems" Data..=)+              Prelude.<$> relevanceFeedbackItems,+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("QueryId" Data..= queryId)+          ]+      )++instance Data.ToPath SubmitFeedback where+  toPath = Prelude.const "/"++instance Data.ToQuery SubmitFeedback where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newSubmitFeedbackResponse' smart constructor.+data SubmitFeedbackResponse = SubmitFeedbackResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SubmitFeedbackResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newSubmitFeedbackResponse ::+  SubmitFeedbackResponse+newSubmitFeedbackResponse = SubmitFeedbackResponse'++instance Prelude.NFData SubmitFeedbackResponse where+  rnf _ = ()
+ gen/Amazonka/Kendra/TagResource.hs view
@@ -0,0 +1,173 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.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 tag to the specified index, FAQ, or data source+-- resource. If the tag already exists, the existing value is replaced with+-- the new value.+module Amazonka.Kendra.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.Kendra.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 index, FAQ, or data source to tag.+    resourceARN :: Prelude.Text,+    -- | A list of tag keys to add to the index, FAQ, or data source. If a tag+    -- already exists, the existing value is replaced with the new value.+    tags :: [Tag]+  }+  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 index, FAQ, or data source to tag.+--+-- 'tags', 'tagResource_tags' - A list of tag keys to add to the index, FAQ, or data source. If a tag+-- 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 index, FAQ, or data source 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 index, FAQ, or data source. If a tag+-- already exists, the existing value is replaced with the new value.+tagResource_tags :: Lens.Lens' TagResource [Tag]+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+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.TagResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("ResourceARN" Data..= resourceARN),+            Prelude.Just ("Tags" Data..= tags)+          ]+      )++instance Data.ToPath TagResource where+  toPath = Prelude.const "/"++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/Kendra/Types.hs view
@@ -0,0 +1,1668 @@+{-# 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.Kendra.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.Kendra.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _AccessDeniedException,+    _ConflictException,+    _InternalServerException,+    _InvalidRequestException,+    _ResourceAlreadyExistException,+    _ResourceInUseException,+    _ResourceNotFoundException,+    _ResourceUnavailableException,+    _ServiceQuotaExceededException,+    _ThrottlingException,+    _ValidationException,++    -- * AdditionalResultAttributeValueType+    AdditionalResultAttributeValueType (..),++    -- * AlfrescoEntity+    AlfrescoEntity (..),++    -- * ConditionOperator+    ConditionOperator (..),++    -- * ConfluenceAttachmentFieldName+    ConfluenceAttachmentFieldName (..),++    -- * ConfluenceAuthenticationType+    ConfluenceAuthenticationType (..),++    -- * ConfluenceBlogFieldName+    ConfluenceBlogFieldName (..),++    -- * ConfluencePageFieldName+    ConfluencePageFieldName (..),++    -- * ConfluenceSpaceFieldName+    ConfluenceSpaceFieldName (..),++    -- * ConfluenceVersion+    ConfluenceVersion (..),++    -- * ContentType+    ContentType (..),++    -- * DataSourceStatus+    DataSourceStatus (..),++    -- * DataSourceSyncJobStatus+    DataSourceSyncJobStatus (..),++    -- * DataSourceType+    DataSourceType (..),++    -- * DatabaseEngineType+    DatabaseEngineType (..),++    -- * DocumentAttributeValueType+    DocumentAttributeValueType (..),++    -- * DocumentStatus+    DocumentStatus (..),++    -- * EndpointType+    EndpointType (..),++    -- * EntityType+    EntityType (..),++    -- * ErrorCode+    ErrorCode (..),++    -- * ExperienceStatus+    ExperienceStatus (..),++    -- * FaqFileFormat+    FaqFileFormat (..),++    -- * FaqStatus+    FaqStatus (..),++    -- * FsxFileSystemType+    FsxFileSystemType (..),++    -- * HighlightType+    HighlightType (..),++    -- * IndexEdition+    IndexEdition (..),++    -- * IndexStatus+    IndexStatus (..),++    -- * Interval+    Interval (..),++    -- * IssueSubEntity+    IssueSubEntity (..),++    -- * KeyLocation+    KeyLocation (..),++    -- * MetricType+    MetricType (..),++    -- * Mode+    Mode (..),++    -- * Order+    Order (..),++    -- * Persona+    Persona (..),++    -- * PrincipalMappingStatus+    PrincipalMappingStatus (..),++    -- * PrincipalType+    PrincipalType (..),++    -- * QueryIdentifiersEnclosingOption+    QueryIdentifiersEnclosingOption (..),++    -- * QueryResultFormat+    QueryResultFormat (..),++    -- * QueryResultType+    QueryResultType (..),++    -- * QuerySuggestionsBlockListStatus+    QuerySuggestionsBlockListStatus (..),++    -- * QuerySuggestionsStatus+    QuerySuggestionsStatus (..),++    -- * ReadAccessType+    ReadAccessType (..),++    -- * RelevanceType+    RelevanceType (..),++    -- * SalesforceChatterFeedIncludeFilterType+    SalesforceChatterFeedIncludeFilterType (..),++    -- * SalesforceKnowledgeArticleState+    SalesforceKnowledgeArticleState (..),++    -- * SalesforceStandardObjectName+    SalesforceStandardObjectName (..),++    -- * ScoreConfidence+    ScoreConfidence (..),++    -- * ServiceNowAuthenticationType+    ServiceNowAuthenticationType (..),++    -- * ServiceNowBuildVersionType+    ServiceNowBuildVersionType (..),++    -- * SharePointOnlineAuthenticationType+    SharePointOnlineAuthenticationType (..),++    -- * SharePointVersion+    SharePointVersion (..),++    -- * SlackEntity+    SlackEntity (..),++    -- * SortOrder+    SortOrder (..),++    -- * ThesaurusStatus+    ThesaurusStatus (..),++    -- * Type+    Type (..),++    -- * UserContextPolicy+    UserContextPolicy (..),++    -- * UserGroupResolutionMode+    UserGroupResolutionMode (..),++    -- * WarningCode+    WarningCode (..),++    -- * WebCrawlerMode+    WebCrawlerMode (..),++    -- * AccessControlConfigurationSummary+    AccessControlConfigurationSummary (..),+    newAccessControlConfigurationSummary,+    accessControlConfigurationSummary_id,++    -- * AccessControlListConfiguration+    AccessControlListConfiguration (..),+    newAccessControlListConfiguration,+    accessControlListConfiguration_keyPath,++    -- * AclConfiguration+    AclConfiguration (..),+    newAclConfiguration,+    aclConfiguration_allowedGroupsColumnName,++    -- * AdditionalResultAttribute+    AdditionalResultAttribute (..),+    newAdditionalResultAttribute,+    additionalResultAttribute_key,+    additionalResultAttribute_valueType,+    additionalResultAttribute_value,++    -- * AdditionalResultAttributeValue+    AdditionalResultAttributeValue (..),+    newAdditionalResultAttributeValue,+    additionalResultAttributeValue_textWithHighlightsValue,++    -- * AlfrescoConfiguration+    AlfrescoConfiguration (..),+    newAlfrescoConfiguration,+    alfrescoConfiguration_blogFieldMappings,+    alfrescoConfiguration_crawlComments,+    alfrescoConfiguration_crawlSystemFolders,+    alfrescoConfiguration_documentLibraryFieldMappings,+    alfrescoConfiguration_entityFilter,+    alfrescoConfiguration_exclusionPatterns,+    alfrescoConfiguration_inclusionPatterns,+    alfrescoConfiguration_vpcConfiguration,+    alfrescoConfiguration_wikiFieldMappings,+    alfrescoConfiguration_siteUrl,+    alfrescoConfiguration_siteId,+    alfrescoConfiguration_secretArn,+    alfrescoConfiguration_sslCertificateS3Path,++    -- * AttributeFilter+    AttributeFilter (..),+    newAttributeFilter,+    attributeFilter_andAllFilters,+    attributeFilter_containsAll,+    attributeFilter_containsAny,+    attributeFilter_equalsTo,+    attributeFilter_greaterThan,+    attributeFilter_greaterThanOrEquals,+    attributeFilter_lessThan,+    attributeFilter_lessThanOrEquals,+    attributeFilter_notFilter,+    attributeFilter_orAllFilters,++    -- * AuthenticationConfiguration+    AuthenticationConfiguration (..),+    newAuthenticationConfiguration,+    authenticationConfiguration_basicAuthentication,++    -- * BasicAuthenticationConfiguration+    BasicAuthenticationConfiguration (..),+    newBasicAuthenticationConfiguration,+    basicAuthenticationConfiguration_host,+    basicAuthenticationConfiguration_port,+    basicAuthenticationConfiguration_credentials,++    -- * BatchDeleteDocumentResponseFailedDocument+    BatchDeleteDocumentResponseFailedDocument (..),+    newBatchDeleteDocumentResponseFailedDocument,+    batchDeleteDocumentResponseFailedDocument_errorCode,+    batchDeleteDocumentResponseFailedDocument_errorMessage,+    batchDeleteDocumentResponseFailedDocument_id,++    -- * BatchGetDocumentStatusResponseError+    BatchGetDocumentStatusResponseError (..),+    newBatchGetDocumentStatusResponseError,+    batchGetDocumentStatusResponseError_documentId,+    batchGetDocumentStatusResponseError_errorCode,+    batchGetDocumentStatusResponseError_errorMessage,++    -- * BatchPutDocumentResponseFailedDocument+    BatchPutDocumentResponseFailedDocument (..),+    newBatchPutDocumentResponseFailedDocument,+    batchPutDocumentResponseFailedDocument_errorCode,+    batchPutDocumentResponseFailedDocument_errorMessage,+    batchPutDocumentResponseFailedDocument_id,++    -- * BoxConfiguration+    BoxConfiguration (..),+    newBoxConfiguration,+    boxConfiguration_commentFieldMappings,+    boxConfiguration_crawlComments,+    boxConfiguration_crawlTasks,+    boxConfiguration_crawlWebLinks,+    boxConfiguration_exclusionPatterns,+    boxConfiguration_fileFieldMappings,+    boxConfiguration_inclusionPatterns,+    boxConfiguration_taskFieldMappings,+    boxConfiguration_useChangeLog,+    boxConfiguration_vpcConfiguration,+    boxConfiguration_webLinkFieldMappings,+    boxConfiguration_enterpriseId,+    boxConfiguration_secretArn,++    -- * CapacityUnitsConfiguration+    CapacityUnitsConfiguration (..),+    newCapacityUnitsConfiguration,+    capacityUnitsConfiguration_storageCapacityUnits,+    capacityUnitsConfiguration_queryCapacityUnits,++    -- * ClickFeedback+    ClickFeedback (..),+    newClickFeedback,+    clickFeedback_resultId,+    clickFeedback_clickTime,++    -- * ColumnConfiguration+    ColumnConfiguration (..),+    newColumnConfiguration,+    columnConfiguration_documentTitleColumnName,+    columnConfiguration_fieldMappings,+    columnConfiguration_documentIdColumnName,+    columnConfiguration_documentDataColumnName,+    columnConfiguration_changeDetectingColumns,++    -- * ConfluenceAttachmentConfiguration+    ConfluenceAttachmentConfiguration (..),+    newConfluenceAttachmentConfiguration,+    confluenceAttachmentConfiguration_attachmentFieldMappings,+    confluenceAttachmentConfiguration_crawlAttachments,++    -- * ConfluenceAttachmentToIndexFieldMapping+    ConfluenceAttachmentToIndexFieldMapping (..),+    newConfluenceAttachmentToIndexFieldMapping,+    confluenceAttachmentToIndexFieldMapping_dataSourceFieldName,+    confluenceAttachmentToIndexFieldMapping_dateFieldFormat,+    confluenceAttachmentToIndexFieldMapping_indexFieldName,++    -- * ConfluenceBlogConfiguration+    ConfluenceBlogConfiguration (..),+    newConfluenceBlogConfiguration,+    confluenceBlogConfiguration_blogFieldMappings,++    -- * ConfluenceBlogToIndexFieldMapping+    ConfluenceBlogToIndexFieldMapping (..),+    newConfluenceBlogToIndexFieldMapping,+    confluenceBlogToIndexFieldMapping_dataSourceFieldName,+    confluenceBlogToIndexFieldMapping_dateFieldFormat,+    confluenceBlogToIndexFieldMapping_indexFieldName,++    -- * ConfluenceConfiguration+    ConfluenceConfiguration (..),+    newConfluenceConfiguration,+    confluenceConfiguration_attachmentConfiguration,+    confluenceConfiguration_authenticationType,+    confluenceConfiguration_blogConfiguration,+    confluenceConfiguration_exclusionPatterns,+    confluenceConfiguration_inclusionPatterns,+    confluenceConfiguration_pageConfiguration,+    confluenceConfiguration_proxyConfiguration,+    confluenceConfiguration_spaceConfiguration,+    confluenceConfiguration_vpcConfiguration,+    confluenceConfiguration_serverUrl,+    confluenceConfiguration_secretArn,+    confluenceConfiguration_version,++    -- * ConfluencePageConfiguration+    ConfluencePageConfiguration (..),+    newConfluencePageConfiguration,+    confluencePageConfiguration_pageFieldMappings,++    -- * ConfluencePageToIndexFieldMapping+    ConfluencePageToIndexFieldMapping (..),+    newConfluencePageToIndexFieldMapping,+    confluencePageToIndexFieldMapping_dataSourceFieldName,+    confluencePageToIndexFieldMapping_dateFieldFormat,+    confluencePageToIndexFieldMapping_indexFieldName,++    -- * ConfluenceSpaceConfiguration+    ConfluenceSpaceConfiguration (..),+    newConfluenceSpaceConfiguration,+    confluenceSpaceConfiguration_crawlArchivedSpaces,+    confluenceSpaceConfiguration_crawlPersonalSpaces,+    confluenceSpaceConfiguration_excludeSpaces,+    confluenceSpaceConfiguration_includeSpaces,+    confluenceSpaceConfiguration_spaceFieldMappings,++    -- * ConfluenceSpaceToIndexFieldMapping+    ConfluenceSpaceToIndexFieldMapping (..),+    newConfluenceSpaceToIndexFieldMapping,+    confluenceSpaceToIndexFieldMapping_dataSourceFieldName,+    confluenceSpaceToIndexFieldMapping_dateFieldFormat,+    confluenceSpaceToIndexFieldMapping_indexFieldName,++    -- * ConnectionConfiguration+    ConnectionConfiguration (..),+    newConnectionConfiguration,+    connectionConfiguration_databaseHost,+    connectionConfiguration_databasePort,+    connectionConfiguration_databaseName,+    connectionConfiguration_tableName,+    connectionConfiguration_secretArn,++    -- * ContentSourceConfiguration+    ContentSourceConfiguration (..),+    newContentSourceConfiguration,+    contentSourceConfiguration_dataSourceIds,+    contentSourceConfiguration_directPutContent,+    contentSourceConfiguration_faqIds,++    -- * Correction+    Correction (..),+    newCorrection,+    correction_beginOffset,+    correction_correctedTerm,+    correction_endOffset,+    correction_term,++    -- * CustomDocumentEnrichmentConfiguration+    CustomDocumentEnrichmentConfiguration (..),+    newCustomDocumentEnrichmentConfiguration,+    customDocumentEnrichmentConfiguration_inlineConfigurations,+    customDocumentEnrichmentConfiguration_postExtractionHookConfiguration,+    customDocumentEnrichmentConfiguration_preExtractionHookConfiguration,+    customDocumentEnrichmentConfiguration_roleArn,++    -- * DataSourceConfiguration+    DataSourceConfiguration (..),+    newDataSourceConfiguration,+    dataSourceConfiguration_alfrescoConfiguration,+    dataSourceConfiguration_boxConfiguration,+    dataSourceConfiguration_confluenceConfiguration,+    dataSourceConfiguration_databaseConfiguration,+    dataSourceConfiguration_fsxConfiguration,+    dataSourceConfiguration_gitHubConfiguration,+    dataSourceConfiguration_googleDriveConfiguration,+    dataSourceConfiguration_jiraConfiguration,+    dataSourceConfiguration_oneDriveConfiguration,+    dataSourceConfiguration_quipConfiguration,+    dataSourceConfiguration_s3Configuration,+    dataSourceConfiguration_salesforceConfiguration,+    dataSourceConfiguration_serviceNowConfiguration,+    dataSourceConfiguration_sharePointConfiguration,+    dataSourceConfiguration_slackConfiguration,+    dataSourceConfiguration_templateConfiguration,+    dataSourceConfiguration_webCrawlerConfiguration,+    dataSourceConfiguration_workDocsConfiguration,++    -- * DataSourceGroup+    DataSourceGroup (..),+    newDataSourceGroup,+    dataSourceGroup_groupId,+    dataSourceGroup_dataSourceId,++    -- * DataSourceSummary+    DataSourceSummary (..),+    newDataSourceSummary,+    dataSourceSummary_createdAt,+    dataSourceSummary_id,+    dataSourceSummary_languageCode,+    dataSourceSummary_name,+    dataSourceSummary_status,+    dataSourceSummary_type,+    dataSourceSummary_updatedAt,++    -- * DataSourceSyncJob+    DataSourceSyncJob (..),+    newDataSourceSyncJob,+    dataSourceSyncJob_dataSourceErrorCode,+    dataSourceSyncJob_endTime,+    dataSourceSyncJob_errorCode,+    dataSourceSyncJob_errorMessage,+    dataSourceSyncJob_executionId,+    dataSourceSyncJob_metrics,+    dataSourceSyncJob_startTime,+    dataSourceSyncJob_status,++    -- * DataSourceSyncJobMetricTarget+    DataSourceSyncJobMetricTarget (..),+    newDataSourceSyncJobMetricTarget,+    dataSourceSyncJobMetricTarget_dataSourceSyncJobId,+    dataSourceSyncJobMetricTarget_dataSourceId,++    -- * DataSourceSyncJobMetrics+    DataSourceSyncJobMetrics (..),+    newDataSourceSyncJobMetrics,+    dataSourceSyncJobMetrics_documentsAdded,+    dataSourceSyncJobMetrics_documentsDeleted,+    dataSourceSyncJobMetrics_documentsFailed,+    dataSourceSyncJobMetrics_documentsModified,+    dataSourceSyncJobMetrics_documentsScanned,++    -- * DataSourceToIndexFieldMapping+    DataSourceToIndexFieldMapping (..),+    newDataSourceToIndexFieldMapping,+    dataSourceToIndexFieldMapping_dateFieldFormat,+    dataSourceToIndexFieldMapping_dataSourceFieldName,+    dataSourceToIndexFieldMapping_indexFieldName,++    -- * DataSourceVpcConfiguration+    DataSourceVpcConfiguration (..),+    newDataSourceVpcConfiguration,+    dataSourceVpcConfiguration_subnetIds,+    dataSourceVpcConfiguration_securityGroupIds,++    -- * DatabaseConfiguration+    DatabaseConfiguration (..),+    newDatabaseConfiguration,+    databaseConfiguration_aclConfiguration,+    databaseConfiguration_sqlConfiguration,+    databaseConfiguration_vpcConfiguration,+    databaseConfiguration_databaseEngineType,+    databaseConfiguration_connectionConfiguration,+    databaseConfiguration_columnConfiguration,++    -- * Document+    Document (..),+    newDocument,+    document_accessControlConfigurationId,+    document_accessControlList,+    document_attributes,+    document_blob,+    document_contentType,+    document_hierarchicalAccessControlList,+    document_s3Path,+    document_title,+    document_id,++    -- * DocumentAttribute+    DocumentAttribute (..),+    newDocumentAttribute,+    documentAttribute_key,+    documentAttribute_value,++    -- * DocumentAttributeCondition+    DocumentAttributeCondition (..),+    newDocumentAttributeCondition,+    documentAttributeCondition_conditionOnValue,+    documentAttributeCondition_conditionDocumentAttributeKey,+    documentAttributeCondition_operator,++    -- * DocumentAttributeTarget+    DocumentAttributeTarget (..),+    newDocumentAttributeTarget,+    documentAttributeTarget_targetDocumentAttributeKey,+    documentAttributeTarget_targetDocumentAttributeValue,+    documentAttributeTarget_targetDocumentAttributeValueDeletion,++    -- * DocumentAttributeValue+    DocumentAttributeValue (..),+    newDocumentAttributeValue,+    documentAttributeValue_dateValue,+    documentAttributeValue_longValue,+    documentAttributeValue_stringListValue,+    documentAttributeValue_stringValue,++    -- * DocumentAttributeValueCountPair+    DocumentAttributeValueCountPair (..),+    newDocumentAttributeValueCountPair,+    documentAttributeValueCountPair_count,+    documentAttributeValueCountPair_documentAttributeValue,+    documentAttributeValueCountPair_facetResults,++    -- * DocumentInfo+    DocumentInfo (..),+    newDocumentInfo,+    documentInfo_attributes,+    documentInfo_documentId,++    -- * DocumentMetadataConfiguration+    DocumentMetadataConfiguration (..),+    newDocumentMetadataConfiguration,+    documentMetadataConfiguration_relevance,+    documentMetadataConfiguration_search,+    documentMetadataConfiguration_name,+    documentMetadataConfiguration_type,++    -- * DocumentRelevanceConfiguration+    DocumentRelevanceConfiguration (..),+    newDocumentRelevanceConfiguration,+    documentRelevanceConfiguration_name,+    documentRelevanceConfiguration_relevance,++    -- * DocumentsMetadataConfiguration+    DocumentsMetadataConfiguration (..),+    newDocumentsMetadataConfiguration,+    documentsMetadataConfiguration_s3Prefix,++    -- * EntityConfiguration+    EntityConfiguration (..),+    newEntityConfiguration,+    entityConfiguration_entityId,+    entityConfiguration_entityType,++    -- * EntityDisplayData+    EntityDisplayData (..),+    newEntityDisplayData,+    entityDisplayData_firstName,+    entityDisplayData_groupName,+    entityDisplayData_identifiedUserName,+    entityDisplayData_lastName,+    entityDisplayData_userName,++    -- * EntityPersonaConfiguration+    EntityPersonaConfiguration (..),+    newEntityPersonaConfiguration,+    entityPersonaConfiguration_entityId,+    entityPersonaConfiguration_persona,++    -- * ExperienceConfiguration+    ExperienceConfiguration (..),+    newExperienceConfiguration,+    experienceConfiguration_contentSourceConfiguration,+    experienceConfiguration_userIdentityConfiguration,++    -- * ExperienceEndpoint+    ExperienceEndpoint (..),+    newExperienceEndpoint,+    experienceEndpoint_endpoint,+    experienceEndpoint_endpointType,++    -- * ExperienceEntitiesSummary+    ExperienceEntitiesSummary (..),+    newExperienceEntitiesSummary,+    experienceEntitiesSummary_displayData,+    experienceEntitiesSummary_entityId,+    experienceEntitiesSummary_entityType,++    -- * ExperiencesSummary+    ExperiencesSummary (..),+    newExperiencesSummary,+    experiencesSummary_createdAt,+    experiencesSummary_endpoints,+    experiencesSummary_id,+    experiencesSummary_name,+    experiencesSummary_status,++    -- * Facet+    Facet (..),+    newFacet,+    facet_documentAttributeKey,+    facet_facets,+    facet_maxResults,++    -- * FacetResult+    FacetResult (..),+    newFacetResult,+    facetResult_documentAttributeKey,+    facetResult_documentAttributeValueCountPairs,+    facetResult_documentAttributeValueType,++    -- * FailedEntity+    FailedEntity (..),+    newFailedEntity,+    failedEntity_entityId,+    failedEntity_errorMessage,++    -- * FaqStatistics+    FaqStatistics (..),+    newFaqStatistics,+    faqStatistics_indexedQuestionAnswersCount,++    -- * FaqSummary+    FaqSummary (..),+    newFaqSummary,+    faqSummary_createdAt,+    faqSummary_fileFormat,+    faqSummary_id,+    faqSummary_languageCode,+    faqSummary_name,+    faqSummary_status,+    faqSummary_updatedAt,++    -- * FsxConfiguration+    FsxConfiguration (..),+    newFsxConfiguration,+    fsxConfiguration_exclusionPatterns,+    fsxConfiguration_fieldMappings,+    fsxConfiguration_inclusionPatterns,+    fsxConfiguration_secretArn,+    fsxConfiguration_fileSystemId,+    fsxConfiguration_fileSystemType,+    fsxConfiguration_vpcConfiguration,++    -- * GitHubConfiguration+    GitHubConfiguration (..),+    newGitHubConfiguration,+    gitHubConfiguration_exclusionFileNamePatterns,+    gitHubConfiguration_exclusionFileTypePatterns,+    gitHubConfiguration_exclusionFolderNamePatterns,+    gitHubConfiguration_gitHubCommitConfigurationFieldMappings,+    gitHubConfiguration_gitHubDocumentCrawlProperties,+    gitHubConfiguration_gitHubIssueAttachmentConfigurationFieldMappings,+    gitHubConfiguration_gitHubIssueCommentConfigurationFieldMappings,+    gitHubConfiguration_gitHubIssueDocumentConfigurationFieldMappings,+    gitHubConfiguration_gitHubPullRequestCommentConfigurationFieldMappings,+    gitHubConfiguration_gitHubPullRequestDocumentAttachmentConfigurationFieldMappings,+    gitHubConfiguration_gitHubPullRequestDocumentConfigurationFieldMappings,+    gitHubConfiguration_gitHubRepositoryConfigurationFieldMappings,+    gitHubConfiguration_inclusionFileNamePatterns,+    gitHubConfiguration_inclusionFileTypePatterns,+    gitHubConfiguration_inclusionFolderNamePatterns,+    gitHubConfiguration_onPremiseConfiguration,+    gitHubConfiguration_repositoryFilter,+    gitHubConfiguration_saaSConfiguration,+    gitHubConfiguration_type,+    gitHubConfiguration_useChangeLog,+    gitHubConfiguration_vpcConfiguration,+    gitHubConfiguration_secretArn,++    -- * GitHubDocumentCrawlProperties+    GitHubDocumentCrawlProperties (..),+    newGitHubDocumentCrawlProperties,+    gitHubDocumentCrawlProperties_crawlIssue,+    gitHubDocumentCrawlProperties_crawlIssueComment,+    gitHubDocumentCrawlProperties_crawlIssueCommentAttachment,+    gitHubDocumentCrawlProperties_crawlPullRequest,+    gitHubDocumentCrawlProperties_crawlPullRequestComment,+    gitHubDocumentCrawlProperties_crawlPullRequestCommentAttachment,+    gitHubDocumentCrawlProperties_crawlRepositoryDocuments,++    -- * GoogleDriveConfiguration+    GoogleDriveConfiguration (..),+    newGoogleDriveConfiguration,+    googleDriveConfiguration_excludeMimeTypes,+    googleDriveConfiguration_excludeSharedDrives,+    googleDriveConfiguration_excludeUserAccounts,+    googleDriveConfiguration_exclusionPatterns,+    googleDriveConfiguration_fieldMappings,+    googleDriveConfiguration_inclusionPatterns,+    googleDriveConfiguration_secretArn,++    -- * GroupMembers+    GroupMembers (..),+    newGroupMembers,+    groupMembers_memberGroups,+    groupMembers_memberUsers,+    groupMembers_s3PathforGroupMembers,++    -- * GroupOrderingIdSummary+    GroupOrderingIdSummary (..),+    newGroupOrderingIdSummary,+    groupOrderingIdSummary_failureReason,+    groupOrderingIdSummary_lastUpdatedAt,+    groupOrderingIdSummary_orderingId,+    groupOrderingIdSummary_receivedAt,+    groupOrderingIdSummary_status,++    -- * GroupSummary+    GroupSummary (..),+    newGroupSummary,+    groupSummary_groupId,+    groupSummary_orderingId,++    -- * HierarchicalPrincipal+    HierarchicalPrincipal (..),+    newHierarchicalPrincipal,+    hierarchicalPrincipal_principalList,++    -- * Highlight+    Highlight (..),+    newHighlight,+    highlight_topAnswer,+    highlight_type,+    highlight_beginOffset,+    highlight_endOffset,++    -- * HookConfiguration+    HookConfiguration (..),+    newHookConfiguration,+    hookConfiguration_invocationCondition,+    hookConfiguration_lambdaArn,+    hookConfiguration_s3Bucket,++    -- * IndexConfigurationSummary+    IndexConfigurationSummary (..),+    newIndexConfigurationSummary,+    indexConfigurationSummary_edition,+    indexConfigurationSummary_id,+    indexConfigurationSummary_name,+    indexConfigurationSummary_createdAt,+    indexConfigurationSummary_updatedAt,+    indexConfigurationSummary_status,++    -- * IndexStatistics+    IndexStatistics (..),+    newIndexStatistics,+    indexStatistics_faqStatistics,+    indexStatistics_textDocumentStatistics,++    -- * InlineCustomDocumentEnrichmentConfiguration+    InlineCustomDocumentEnrichmentConfiguration (..),+    newInlineCustomDocumentEnrichmentConfiguration,+    inlineCustomDocumentEnrichmentConfiguration_condition,+    inlineCustomDocumentEnrichmentConfiguration_documentContentDeletion,+    inlineCustomDocumentEnrichmentConfiguration_target,++    -- * JiraConfiguration+    JiraConfiguration (..),+    newJiraConfiguration,+    jiraConfiguration_attachmentFieldMappings,+    jiraConfiguration_commentFieldMappings,+    jiraConfiguration_exclusionPatterns,+    jiraConfiguration_inclusionPatterns,+    jiraConfiguration_issueFieldMappings,+    jiraConfiguration_issueSubEntityFilter,+    jiraConfiguration_issueType,+    jiraConfiguration_project,+    jiraConfiguration_projectFieldMappings,+    jiraConfiguration_status,+    jiraConfiguration_useChangeLog,+    jiraConfiguration_vpcConfiguration,+    jiraConfiguration_workLogFieldMappings,+    jiraConfiguration_jiraAccountUrl,+    jiraConfiguration_secretArn,++    -- * JsonTokenTypeConfiguration+    JsonTokenTypeConfiguration (..),+    newJsonTokenTypeConfiguration,+    jsonTokenTypeConfiguration_userNameAttributeField,+    jsonTokenTypeConfiguration_groupAttributeField,++    -- * JwtTokenTypeConfiguration+    JwtTokenTypeConfiguration (..),+    newJwtTokenTypeConfiguration,+    jwtTokenTypeConfiguration_claimRegex,+    jwtTokenTypeConfiguration_groupAttributeField,+    jwtTokenTypeConfiguration_issuer,+    jwtTokenTypeConfiguration_secretManagerArn,+    jwtTokenTypeConfiguration_url,+    jwtTokenTypeConfiguration_userNameAttributeField,+    jwtTokenTypeConfiguration_keyLocation,++    -- * MemberGroup+    MemberGroup (..),+    newMemberGroup,+    memberGroup_dataSourceId,+    memberGroup_groupId,++    -- * MemberUser+    MemberUser (..),+    newMemberUser,+    memberUser_userId,++    -- * OnPremiseConfiguration+    OnPremiseConfiguration (..),+    newOnPremiseConfiguration,+    onPremiseConfiguration_hostUrl,+    onPremiseConfiguration_organizationName,+    onPremiseConfiguration_sslCertificateS3Path,++    -- * OneDriveConfiguration+    OneDriveConfiguration (..),+    newOneDriveConfiguration,+    oneDriveConfiguration_disableLocalGroups,+    oneDriveConfiguration_exclusionPatterns,+    oneDriveConfiguration_fieldMappings,+    oneDriveConfiguration_inclusionPatterns,+    oneDriveConfiguration_tenantDomain,+    oneDriveConfiguration_secretArn,+    oneDriveConfiguration_oneDriveUsers,++    -- * OneDriveUsers+    OneDriveUsers (..),+    newOneDriveUsers,+    oneDriveUsers_oneDriveUserList,+    oneDriveUsers_oneDriveUserS3Path,++    -- * PersonasSummary+    PersonasSummary (..),+    newPersonasSummary,+    personasSummary_createdAt,+    personasSummary_entityId,+    personasSummary_persona,+    personasSummary_updatedAt,++    -- * Principal+    Principal (..),+    newPrincipal,+    principal_dataSourceId,+    principal_name,+    principal_type,+    principal_access,++    -- * ProxyConfiguration+    ProxyConfiguration (..),+    newProxyConfiguration,+    proxyConfiguration_credentials,+    proxyConfiguration_host,+    proxyConfiguration_port,++    -- * QueryResultItem+    QueryResultItem (..),+    newQueryResultItem,+    queryResultItem_additionalAttributes,+    queryResultItem_documentAttributes,+    queryResultItem_documentExcerpt,+    queryResultItem_documentId,+    queryResultItem_documentTitle,+    queryResultItem_documentURI,+    queryResultItem_feedbackToken,+    queryResultItem_format,+    queryResultItem_id,+    queryResultItem_scoreAttributes,+    queryResultItem_tableExcerpt,+    queryResultItem_type,++    -- * QuerySuggestionsBlockListSummary+    QuerySuggestionsBlockListSummary (..),+    newQuerySuggestionsBlockListSummary,+    querySuggestionsBlockListSummary_createdAt,+    querySuggestionsBlockListSummary_id,+    querySuggestionsBlockListSummary_itemCount,+    querySuggestionsBlockListSummary_name,+    querySuggestionsBlockListSummary_status,+    querySuggestionsBlockListSummary_updatedAt,++    -- * QuipConfiguration+    QuipConfiguration (..),+    newQuipConfiguration,+    quipConfiguration_attachmentFieldMappings,+    quipConfiguration_crawlAttachments,+    quipConfiguration_crawlChatRooms,+    quipConfiguration_crawlFileComments,+    quipConfiguration_exclusionPatterns,+    quipConfiguration_folderIds,+    quipConfiguration_inclusionPatterns,+    quipConfiguration_messageFieldMappings,+    quipConfiguration_threadFieldMappings,+    quipConfiguration_vpcConfiguration,+    quipConfiguration_domain,+    quipConfiguration_secretArn,++    -- * Relevance+    Relevance (..),+    newRelevance,+    relevance_duration,+    relevance_freshness,+    relevance_importance,+    relevance_rankOrder,+    relevance_valueImportanceMap,++    -- * RelevanceFeedback+    RelevanceFeedback (..),+    newRelevanceFeedback,+    relevanceFeedback_resultId,+    relevanceFeedback_relevanceValue,++    -- * S3DataSourceConfiguration+    S3DataSourceConfiguration (..),+    newS3DataSourceConfiguration,+    s3DataSourceConfiguration_accessControlListConfiguration,+    s3DataSourceConfiguration_documentsMetadataConfiguration,+    s3DataSourceConfiguration_exclusionPatterns,+    s3DataSourceConfiguration_inclusionPatterns,+    s3DataSourceConfiguration_inclusionPrefixes,+    s3DataSourceConfiguration_bucketName,++    -- * S3Path+    S3Path (..),+    newS3Path,+    s3Path_bucket,+    s3Path_key,++    -- * SaaSConfiguration+    SaaSConfiguration (..),+    newSaaSConfiguration,+    saaSConfiguration_organizationName,+    saaSConfiguration_hostUrl,++    -- * SalesforceChatterFeedConfiguration+    SalesforceChatterFeedConfiguration (..),+    newSalesforceChatterFeedConfiguration,+    salesforceChatterFeedConfiguration_documentTitleFieldName,+    salesforceChatterFeedConfiguration_fieldMappings,+    salesforceChatterFeedConfiguration_includeFilterTypes,+    salesforceChatterFeedConfiguration_documentDataFieldName,++    -- * SalesforceConfiguration+    SalesforceConfiguration (..),+    newSalesforceConfiguration,+    salesforceConfiguration_chatterFeedConfiguration,+    salesforceConfiguration_crawlAttachments,+    salesforceConfiguration_excludeAttachmentFilePatterns,+    salesforceConfiguration_includeAttachmentFilePatterns,+    salesforceConfiguration_knowledgeArticleConfiguration,+    salesforceConfiguration_standardObjectAttachmentConfiguration,+    salesforceConfiguration_standardObjectConfigurations,+    salesforceConfiguration_serverUrl,+    salesforceConfiguration_secretArn,++    -- * SalesforceCustomKnowledgeArticleTypeConfiguration+    SalesforceCustomKnowledgeArticleTypeConfiguration (..),+    newSalesforceCustomKnowledgeArticleTypeConfiguration,+    salesforceCustomKnowledgeArticleTypeConfiguration_documentTitleFieldName,+    salesforceCustomKnowledgeArticleTypeConfiguration_fieldMappings,+    salesforceCustomKnowledgeArticleTypeConfiguration_name,+    salesforceCustomKnowledgeArticleTypeConfiguration_documentDataFieldName,++    -- * SalesforceKnowledgeArticleConfiguration+    SalesforceKnowledgeArticleConfiguration (..),+    newSalesforceKnowledgeArticleConfiguration,+    salesforceKnowledgeArticleConfiguration_customKnowledgeArticleTypeConfigurations,+    salesforceKnowledgeArticleConfiguration_standardKnowledgeArticleTypeConfiguration,+    salesforceKnowledgeArticleConfiguration_includedStates,++    -- * SalesforceStandardKnowledgeArticleTypeConfiguration+    SalesforceStandardKnowledgeArticleTypeConfiguration (..),+    newSalesforceStandardKnowledgeArticleTypeConfiguration,+    salesforceStandardKnowledgeArticleTypeConfiguration_documentTitleFieldName,+    salesforceStandardKnowledgeArticleTypeConfiguration_fieldMappings,+    salesforceStandardKnowledgeArticleTypeConfiguration_documentDataFieldName,++    -- * SalesforceStandardObjectAttachmentConfiguration+    SalesforceStandardObjectAttachmentConfiguration (..),+    newSalesforceStandardObjectAttachmentConfiguration,+    salesforceStandardObjectAttachmentConfiguration_documentTitleFieldName,+    salesforceStandardObjectAttachmentConfiguration_fieldMappings,++    -- * SalesforceStandardObjectConfiguration+    SalesforceStandardObjectConfiguration (..),+    newSalesforceStandardObjectConfiguration,+    salesforceStandardObjectConfiguration_documentTitleFieldName,+    salesforceStandardObjectConfiguration_fieldMappings,+    salesforceStandardObjectConfiguration_name,+    salesforceStandardObjectConfiguration_documentDataFieldName,++    -- * ScoreAttributes+    ScoreAttributes (..),+    newScoreAttributes,+    scoreAttributes_scoreConfidence,++    -- * Search+    Search (..),+    newSearch,+    search_displayable,+    search_facetable,+    search_searchable,+    search_sortable,++    -- * SeedUrlConfiguration+    SeedUrlConfiguration (..),+    newSeedUrlConfiguration,+    seedUrlConfiguration_webCrawlerMode,+    seedUrlConfiguration_seedUrls,++    -- * ServerSideEncryptionConfiguration+    ServerSideEncryptionConfiguration (..),+    newServerSideEncryptionConfiguration,+    serverSideEncryptionConfiguration_kmsKeyId,++    -- * ServiceNowConfiguration+    ServiceNowConfiguration (..),+    newServiceNowConfiguration,+    serviceNowConfiguration_authenticationType,+    serviceNowConfiguration_knowledgeArticleConfiguration,+    serviceNowConfiguration_serviceCatalogConfiguration,+    serviceNowConfiguration_hostUrl,+    serviceNowConfiguration_secretArn,+    serviceNowConfiguration_serviceNowBuildVersion,++    -- * ServiceNowKnowledgeArticleConfiguration+    ServiceNowKnowledgeArticleConfiguration (..),+    newServiceNowKnowledgeArticleConfiguration,+    serviceNowKnowledgeArticleConfiguration_crawlAttachments,+    serviceNowKnowledgeArticleConfiguration_documentTitleFieldName,+    serviceNowKnowledgeArticleConfiguration_excludeAttachmentFilePatterns,+    serviceNowKnowledgeArticleConfiguration_fieldMappings,+    serviceNowKnowledgeArticleConfiguration_filterQuery,+    serviceNowKnowledgeArticleConfiguration_includeAttachmentFilePatterns,+    serviceNowKnowledgeArticleConfiguration_documentDataFieldName,++    -- * ServiceNowServiceCatalogConfiguration+    ServiceNowServiceCatalogConfiguration (..),+    newServiceNowServiceCatalogConfiguration,+    serviceNowServiceCatalogConfiguration_crawlAttachments,+    serviceNowServiceCatalogConfiguration_documentTitleFieldName,+    serviceNowServiceCatalogConfiguration_excludeAttachmentFilePatterns,+    serviceNowServiceCatalogConfiguration_fieldMappings,+    serviceNowServiceCatalogConfiguration_includeAttachmentFilePatterns,+    serviceNowServiceCatalogConfiguration_documentDataFieldName,++    -- * SharePointConfiguration+    SharePointConfiguration (..),+    newSharePointConfiguration,+    sharePointConfiguration_authenticationType,+    sharePointConfiguration_crawlAttachments,+    sharePointConfiguration_disableLocalGroups,+    sharePointConfiguration_documentTitleFieldName,+    sharePointConfiguration_exclusionPatterns,+    sharePointConfiguration_fieldMappings,+    sharePointConfiguration_inclusionPatterns,+    sharePointConfiguration_proxyConfiguration,+    sharePointConfiguration_sslCertificateS3Path,+    sharePointConfiguration_useChangeLog,+    sharePointConfiguration_vpcConfiguration,+    sharePointConfiguration_sharePointVersion,+    sharePointConfiguration_urls,+    sharePointConfiguration_secretArn,++    -- * SiteMapsConfiguration+    SiteMapsConfiguration (..),+    newSiteMapsConfiguration,+    siteMapsConfiguration_siteMaps,++    -- * SlackConfiguration+    SlackConfiguration (..),+    newSlackConfiguration,+    slackConfiguration_crawlBotMessage,+    slackConfiguration_excludeArchived,+    slackConfiguration_exclusionPatterns,+    slackConfiguration_fieldMappings,+    slackConfiguration_inclusionPatterns,+    slackConfiguration_lookBackPeriod,+    slackConfiguration_privateChannelFilter,+    slackConfiguration_publicChannelFilter,+    slackConfiguration_useChangeLog,+    slackConfiguration_vpcConfiguration,+    slackConfiguration_teamId,+    slackConfiguration_secretArn,+    slackConfiguration_slackEntityList,+    slackConfiguration_sinceCrawlDate,++    -- * SortingConfiguration+    SortingConfiguration (..),+    newSortingConfiguration,+    sortingConfiguration_documentAttributeKey,+    sortingConfiguration_sortOrder,++    -- * SpellCorrectedQuery+    SpellCorrectedQuery (..),+    newSpellCorrectedQuery,+    spellCorrectedQuery_corrections,+    spellCorrectedQuery_suggestedQueryText,++    -- * SpellCorrectionConfiguration+    SpellCorrectionConfiguration (..),+    newSpellCorrectionConfiguration,+    spellCorrectionConfiguration_includeQuerySpellCheckSuggestions,++    -- * SqlConfiguration+    SqlConfiguration (..),+    newSqlConfiguration,+    sqlConfiguration_queryIdentifiersEnclosingOption,++    -- * Status+    Status (..),+    newStatus,+    status_documentId,+    status_documentStatus,+    status_failureCode,+    status_failureReason,++    -- * Suggestion+    Suggestion (..),+    newSuggestion,+    suggestion_id,+    suggestion_value,++    -- * SuggestionHighlight+    SuggestionHighlight (..),+    newSuggestionHighlight,+    suggestionHighlight_beginOffset,+    suggestionHighlight_endOffset,++    -- * SuggestionTextWithHighlights+    SuggestionTextWithHighlights (..),+    newSuggestionTextWithHighlights,+    suggestionTextWithHighlights_highlights,+    suggestionTextWithHighlights_text,++    -- * SuggestionValue+    SuggestionValue (..),+    newSuggestionValue,+    suggestionValue_text,++    -- * TableCell+    TableCell (..),+    newTableCell,+    tableCell_header,+    tableCell_highlighted,+    tableCell_topAnswer,+    tableCell_value,++    -- * TableExcerpt+    TableExcerpt (..),+    newTableExcerpt,+    tableExcerpt_rows,+    tableExcerpt_totalNumberOfRows,++    -- * TableRow+    TableRow (..),+    newTableRow,+    tableRow_cells,++    -- * Tag+    Tag (..),+    newTag,+    tag_key,+    tag_value,++    -- * Template+    Template (..),+    newTemplate,++    -- * TemplateConfiguration+    TemplateConfiguration (..),+    newTemplateConfiguration,+    templateConfiguration_template,++    -- * TextDocumentStatistics+    TextDocumentStatistics (..),+    newTextDocumentStatistics,+    textDocumentStatistics_indexedTextDocumentsCount,+    textDocumentStatistics_indexedTextBytes,++    -- * TextWithHighlights+    TextWithHighlights (..),+    newTextWithHighlights,+    textWithHighlights_highlights,+    textWithHighlights_text,++    -- * ThesaurusSummary+    ThesaurusSummary (..),+    newThesaurusSummary,+    thesaurusSummary_createdAt,+    thesaurusSummary_id,+    thesaurusSummary_name,+    thesaurusSummary_status,+    thesaurusSummary_updatedAt,++    -- * TimeRange+    TimeRange (..),+    newTimeRange,+    timeRange_endTime,+    timeRange_startTime,++    -- * Urls+    Urls (..),+    newUrls,+    urls_seedUrlConfiguration,+    urls_siteMapsConfiguration,++    -- * UserContext+    UserContext (..),+    newUserContext,+    userContext_dataSourceGroups,+    userContext_groups,+    userContext_token,+    userContext_userId,++    -- * UserGroupResolutionConfiguration+    UserGroupResolutionConfiguration (..),+    newUserGroupResolutionConfiguration,+    userGroupResolutionConfiguration_userGroupResolutionMode,++    -- * UserIdentityConfiguration+    UserIdentityConfiguration (..),+    newUserIdentityConfiguration,+    userIdentityConfiguration_identityAttributeName,++    -- * UserTokenConfiguration+    UserTokenConfiguration (..),+    newUserTokenConfiguration,+    userTokenConfiguration_jsonTokenTypeConfiguration,+    userTokenConfiguration_jwtTokenTypeConfiguration,++    -- * Warning+    Warning (..),+    newWarning,+    warning_code,+    warning_message,++    -- * WebCrawlerConfiguration+    WebCrawlerConfiguration (..),+    newWebCrawlerConfiguration,+    webCrawlerConfiguration_authenticationConfiguration,+    webCrawlerConfiguration_crawlDepth,+    webCrawlerConfiguration_maxContentSizePerPageInMegaBytes,+    webCrawlerConfiguration_maxLinksPerPage,+    webCrawlerConfiguration_maxUrlsPerMinuteCrawlRate,+    webCrawlerConfiguration_proxyConfiguration,+    webCrawlerConfiguration_urlExclusionPatterns,+    webCrawlerConfiguration_urlInclusionPatterns,+    webCrawlerConfiguration_urls,++    -- * WorkDocsConfiguration+    WorkDocsConfiguration (..),+    newWorkDocsConfiguration,+    workDocsConfiguration_crawlComments,+    workDocsConfiguration_exclusionPatterns,+    workDocsConfiguration_fieldMappings,+    workDocsConfiguration_inclusionPatterns,+    workDocsConfiguration_useChangeLog,+    workDocsConfiguration_organizationId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.Kendra.Types.AccessControlConfigurationSummary+import Amazonka.Kendra.Types.AccessControlListConfiguration+import Amazonka.Kendra.Types.AclConfiguration+import Amazonka.Kendra.Types.AdditionalResultAttribute+import Amazonka.Kendra.Types.AdditionalResultAttributeValue+import Amazonka.Kendra.Types.AdditionalResultAttributeValueType+import Amazonka.Kendra.Types.AlfrescoConfiguration+import Amazonka.Kendra.Types.AlfrescoEntity+import Amazonka.Kendra.Types.AttributeFilter+import Amazonka.Kendra.Types.AuthenticationConfiguration+import Amazonka.Kendra.Types.BasicAuthenticationConfiguration+import Amazonka.Kendra.Types.BatchDeleteDocumentResponseFailedDocument+import Amazonka.Kendra.Types.BatchGetDocumentStatusResponseError+import Amazonka.Kendra.Types.BatchPutDocumentResponseFailedDocument+import Amazonka.Kendra.Types.BoxConfiguration+import Amazonka.Kendra.Types.CapacityUnitsConfiguration+import Amazonka.Kendra.Types.ClickFeedback+import Amazonka.Kendra.Types.ColumnConfiguration+import Amazonka.Kendra.Types.ConditionOperator+import Amazonka.Kendra.Types.ConfluenceAttachmentConfiguration+import Amazonka.Kendra.Types.ConfluenceAttachmentFieldName+import Amazonka.Kendra.Types.ConfluenceAttachmentToIndexFieldMapping+import Amazonka.Kendra.Types.ConfluenceAuthenticationType+import Amazonka.Kendra.Types.ConfluenceBlogConfiguration+import Amazonka.Kendra.Types.ConfluenceBlogFieldName+import Amazonka.Kendra.Types.ConfluenceBlogToIndexFieldMapping+import Amazonka.Kendra.Types.ConfluenceConfiguration+import Amazonka.Kendra.Types.ConfluencePageConfiguration+import Amazonka.Kendra.Types.ConfluencePageFieldName+import Amazonka.Kendra.Types.ConfluencePageToIndexFieldMapping+import Amazonka.Kendra.Types.ConfluenceSpaceConfiguration+import Amazonka.Kendra.Types.ConfluenceSpaceFieldName+import Amazonka.Kendra.Types.ConfluenceSpaceToIndexFieldMapping+import Amazonka.Kendra.Types.ConfluenceVersion+import Amazonka.Kendra.Types.ConnectionConfiguration+import Amazonka.Kendra.Types.ContentSourceConfiguration+import Amazonka.Kendra.Types.ContentType+import Amazonka.Kendra.Types.Correction+import Amazonka.Kendra.Types.CustomDocumentEnrichmentConfiguration+import Amazonka.Kendra.Types.DataSourceConfiguration+import Amazonka.Kendra.Types.DataSourceGroup+import Amazonka.Kendra.Types.DataSourceStatus+import Amazonka.Kendra.Types.DataSourceSummary+import Amazonka.Kendra.Types.DataSourceSyncJob+import Amazonka.Kendra.Types.DataSourceSyncJobMetricTarget+import Amazonka.Kendra.Types.DataSourceSyncJobMetrics+import Amazonka.Kendra.Types.DataSourceSyncJobStatus+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import Amazonka.Kendra.Types.DataSourceType+import Amazonka.Kendra.Types.DataSourceVpcConfiguration+import Amazonka.Kendra.Types.DatabaseConfiguration+import Amazonka.Kendra.Types.DatabaseEngineType+import Amazonka.Kendra.Types.Document+import Amazonka.Kendra.Types.DocumentAttribute+import Amazonka.Kendra.Types.DocumentAttributeCondition+import Amazonka.Kendra.Types.DocumentAttributeTarget+import Amazonka.Kendra.Types.DocumentAttributeValue+import Amazonka.Kendra.Types.DocumentAttributeValueCountPair+import Amazonka.Kendra.Types.DocumentAttributeValueType+import Amazonka.Kendra.Types.DocumentInfo+import Amazonka.Kendra.Types.DocumentMetadataConfiguration+import Amazonka.Kendra.Types.DocumentRelevanceConfiguration+import Amazonka.Kendra.Types.DocumentStatus+import Amazonka.Kendra.Types.DocumentsMetadataConfiguration+import Amazonka.Kendra.Types.EndpointType+import Amazonka.Kendra.Types.EntityConfiguration+import Amazonka.Kendra.Types.EntityDisplayData+import Amazonka.Kendra.Types.EntityPersonaConfiguration+import Amazonka.Kendra.Types.EntityType+import Amazonka.Kendra.Types.ErrorCode+import Amazonka.Kendra.Types.ExperienceConfiguration+import Amazonka.Kendra.Types.ExperienceEndpoint+import Amazonka.Kendra.Types.ExperienceEntitiesSummary+import Amazonka.Kendra.Types.ExperienceStatus+import Amazonka.Kendra.Types.ExperiencesSummary+import Amazonka.Kendra.Types.Facet+import Amazonka.Kendra.Types.FacetResult+import Amazonka.Kendra.Types.FailedEntity+import Amazonka.Kendra.Types.FaqFileFormat+import Amazonka.Kendra.Types.FaqStatistics+import Amazonka.Kendra.Types.FaqStatus+import Amazonka.Kendra.Types.FaqSummary+import Amazonka.Kendra.Types.FsxConfiguration+import Amazonka.Kendra.Types.FsxFileSystemType+import Amazonka.Kendra.Types.GitHubConfiguration+import Amazonka.Kendra.Types.GitHubDocumentCrawlProperties+import Amazonka.Kendra.Types.GoogleDriveConfiguration+import Amazonka.Kendra.Types.GroupMembers+import Amazonka.Kendra.Types.GroupOrderingIdSummary+import Amazonka.Kendra.Types.GroupSummary+import Amazonka.Kendra.Types.HierarchicalPrincipal+import Amazonka.Kendra.Types.Highlight+import Amazonka.Kendra.Types.HighlightType+import Amazonka.Kendra.Types.HookConfiguration+import Amazonka.Kendra.Types.IndexConfigurationSummary+import Amazonka.Kendra.Types.IndexEdition+import Amazonka.Kendra.Types.IndexStatistics+import Amazonka.Kendra.Types.IndexStatus+import Amazonka.Kendra.Types.InlineCustomDocumentEnrichmentConfiguration+import Amazonka.Kendra.Types.Interval+import Amazonka.Kendra.Types.IssueSubEntity+import Amazonka.Kendra.Types.JiraConfiguration+import Amazonka.Kendra.Types.JsonTokenTypeConfiguration+import Amazonka.Kendra.Types.JwtTokenTypeConfiguration+import Amazonka.Kendra.Types.KeyLocation+import Amazonka.Kendra.Types.MemberGroup+import Amazonka.Kendra.Types.MemberUser+import Amazonka.Kendra.Types.MetricType+import Amazonka.Kendra.Types.Mode+import Amazonka.Kendra.Types.OnPremiseConfiguration+import Amazonka.Kendra.Types.OneDriveConfiguration+import Amazonka.Kendra.Types.OneDriveUsers+import Amazonka.Kendra.Types.Order+import Amazonka.Kendra.Types.Persona+import Amazonka.Kendra.Types.PersonasSummary+import Amazonka.Kendra.Types.Principal+import Amazonka.Kendra.Types.PrincipalMappingStatus+import Amazonka.Kendra.Types.PrincipalType+import Amazonka.Kendra.Types.ProxyConfiguration+import Amazonka.Kendra.Types.QueryIdentifiersEnclosingOption+import Amazonka.Kendra.Types.QueryResultFormat+import Amazonka.Kendra.Types.QueryResultItem+import Amazonka.Kendra.Types.QueryResultType+import Amazonka.Kendra.Types.QuerySuggestionsBlockListStatus+import Amazonka.Kendra.Types.QuerySuggestionsBlockListSummary+import Amazonka.Kendra.Types.QuerySuggestionsStatus+import Amazonka.Kendra.Types.QuipConfiguration+import Amazonka.Kendra.Types.ReadAccessType+import Amazonka.Kendra.Types.Relevance+import Amazonka.Kendra.Types.RelevanceFeedback+import Amazonka.Kendra.Types.RelevanceType+import Amazonka.Kendra.Types.S3DataSourceConfiguration+import Amazonka.Kendra.Types.S3Path+import Amazonka.Kendra.Types.SaaSConfiguration+import Amazonka.Kendra.Types.SalesforceChatterFeedConfiguration+import Amazonka.Kendra.Types.SalesforceChatterFeedIncludeFilterType+import Amazonka.Kendra.Types.SalesforceConfiguration+import Amazonka.Kendra.Types.SalesforceCustomKnowledgeArticleTypeConfiguration+import Amazonka.Kendra.Types.SalesforceKnowledgeArticleConfiguration+import Amazonka.Kendra.Types.SalesforceKnowledgeArticleState+import Amazonka.Kendra.Types.SalesforceStandardKnowledgeArticleTypeConfiguration+import Amazonka.Kendra.Types.SalesforceStandardObjectAttachmentConfiguration+import Amazonka.Kendra.Types.SalesforceStandardObjectConfiguration+import Amazonka.Kendra.Types.SalesforceStandardObjectName+import Amazonka.Kendra.Types.ScoreAttributes+import Amazonka.Kendra.Types.ScoreConfidence+import Amazonka.Kendra.Types.Search+import Amazonka.Kendra.Types.SeedUrlConfiguration+import Amazonka.Kendra.Types.ServerSideEncryptionConfiguration+import Amazonka.Kendra.Types.ServiceNowAuthenticationType+import Amazonka.Kendra.Types.ServiceNowBuildVersionType+import Amazonka.Kendra.Types.ServiceNowConfiguration+import Amazonka.Kendra.Types.ServiceNowKnowledgeArticleConfiguration+import Amazonka.Kendra.Types.ServiceNowServiceCatalogConfiguration+import Amazonka.Kendra.Types.SharePointConfiguration+import Amazonka.Kendra.Types.SharePointOnlineAuthenticationType+import Amazonka.Kendra.Types.SharePointVersion+import Amazonka.Kendra.Types.SiteMapsConfiguration+import Amazonka.Kendra.Types.SlackConfiguration+import Amazonka.Kendra.Types.SlackEntity+import Amazonka.Kendra.Types.SortOrder+import Amazonka.Kendra.Types.SortingConfiguration+import Amazonka.Kendra.Types.SpellCorrectedQuery+import Amazonka.Kendra.Types.SpellCorrectionConfiguration+import Amazonka.Kendra.Types.SqlConfiguration+import Amazonka.Kendra.Types.Status+import Amazonka.Kendra.Types.Suggestion+import Amazonka.Kendra.Types.SuggestionHighlight+import Amazonka.Kendra.Types.SuggestionTextWithHighlights+import Amazonka.Kendra.Types.SuggestionValue+import Amazonka.Kendra.Types.TableCell+import Amazonka.Kendra.Types.TableExcerpt+import Amazonka.Kendra.Types.TableRow+import Amazonka.Kendra.Types.Tag+import Amazonka.Kendra.Types.Template+import Amazonka.Kendra.Types.TemplateConfiguration+import Amazonka.Kendra.Types.TextDocumentStatistics+import Amazonka.Kendra.Types.TextWithHighlights+import Amazonka.Kendra.Types.ThesaurusStatus+import Amazonka.Kendra.Types.ThesaurusSummary+import Amazonka.Kendra.Types.TimeRange+import Amazonka.Kendra.Types.Type+import Amazonka.Kendra.Types.Urls+import Amazonka.Kendra.Types.UserContext+import Amazonka.Kendra.Types.UserContextPolicy+import Amazonka.Kendra.Types.UserGroupResolutionConfiguration+import Amazonka.Kendra.Types.UserGroupResolutionMode+import Amazonka.Kendra.Types.UserIdentityConfiguration+import Amazonka.Kendra.Types.UserTokenConfiguration+import Amazonka.Kendra.Types.Warning+import Amazonka.Kendra.Types.WarningCode+import Amazonka.Kendra.Types.WebCrawlerConfiguration+import Amazonka.Kendra.Types.WebCrawlerMode+import Amazonka.Kendra.Types.WorkDocsConfiguration+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2019-02-03@ of the Amazon KendraFrontendService SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "Kendra",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "kendra",+      Core.signingName = "kendra",+      Core.version = "2019-02-03",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "Kendra",+      Core.retry = retry+    }+  where+    retry =+      Core.Exponential+        { Core.base = 5.0e-2,+          Core.growth = 2,+          Core.attempts = 5,+          Core.check = check+        }+    check e+      | Lens.has (Core.hasStatus 502) e =+          Prelude.Just "bad_gateway"+      | Lens.has (Core.hasStatus 504) e =+          Prelude.Just "gateway_timeout"+      | Lens.has (Core.hasStatus 500) e =+          Prelude.Just "general_server_error"+      | Lens.has (Core.hasStatus 509) e =+          Prelude.Just "limit_exceeded"+      | Lens.has+          ( Core.hasCode "RequestThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "request_throttled_exception"+      | Lens.has (Core.hasStatus 503) e =+          Prelude.Just "service_unavailable"+      | Lens.has+          ( Core.hasCode "ThrottledException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttled_exception"+      | Lens.has+          ( Core.hasCode "Throttling"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling"+      | Lens.has+          ( Core.hasCode "ThrottlingException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throttling_exception"+      | Lens.has+          ( Core.hasCode+              "ProvisionedThroughputExceededException"+              Prelude.. Core.hasStatus 400+          )+          e =+          Prelude.Just "throughput_exceeded"+      | Lens.has (Core.hasStatus 429) e =+          Prelude.Just "too_many_requests"+      | Prelude.otherwise = Prelude.Nothing++-- | You don\'t have sufficient access to perform this action. Please ensure+-- you have the required permission policies and user accounts and try+-- again.+_AccessDeniedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_AccessDeniedException =+  Core._MatchServiceError+    defaultService+    "AccessDeniedException"++-- | A conflict occurred with the request. Please fix any inconsistences with+-- your resources and try again.+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ConflictException =+  Core._MatchServiceError+    defaultService+    "ConflictException"++-- | An issue occurred with the internal server used for your Amazon Kendra+-- service. Please wait a few minutes and try again, or contact+-- <http://aws.amazon.com/aws.amazon.com/contact-us Support> for help.+_InternalServerException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalServerException =+  Core._MatchServiceError+    defaultService+    "InternalServerException"++-- | The input to the request is not valid. Please provide the correct input+-- and try again.+_InvalidRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidRequestException =+  Core._MatchServiceError+    defaultService+    "InvalidRequestException"++-- | The resource you want to use already exists. Please check you have+-- provided the correct resource and try again.+_ResourceAlreadyExistException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceAlreadyExistException =+  Core._MatchServiceError+    defaultService+    "ResourceAlreadyExistException"++-- | The resource you want to use is currently in use. Please check you have+-- provided the correct resource and try again.+_ResourceInUseException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceInUseException =+  Core._MatchServiceError+    defaultService+    "ResourceInUseException"++-- | The resource you want to use doesn’t exist. Please check you have+-- provided the correct resource and try again.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"++-- | The resource you want to use isn\'t available. Please check you have+-- provided the correct resource and try again.+_ResourceUnavailableException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceUnavailableException =+  Core._MatchServiceError+    defaultService+    "ResourceUnavailableException"++-- | You have exceeded the set limits for your Amazon Kendra service. Please+-- see Quotas[hyperlink Kendra Quotas pg] for more information, or contact+-- <http://aws.amazon.com/aws.amazon.com/contact-us Support> to inquire+-- about an increase of limits.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"++-- | The request was denied due to request throttling. Please reduce the+-- number of requests and try again.+_ThrottlingException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ThrottlingException =+  Core._MatchServiceError+    defaultService+    "ThrottlingException"++-- | The input fails to satisfy the constraints set by the Amazon Kendra+-- service. Please provide the correct input and try again.+_ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ValidationException =+  Core._MatchServiceError+    defaultService+    "ValidationException"
+ gen/Amazonka/Kendra/Types/AccessControlConfigurationSummary.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.Kendra.Types.AccessControlConfigurationSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.AccessControlConfigurationSummary 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++-- | Summary information on an access control configuration that you created+-- for your documents in an index.+--+-- /See:/ 'newAccessControlConfigurationSummary' smart constructor.+data AccessControlConfigurationSummary = AccessControlConfigurationSummary'+  { -- | The identifier of the access control configuration.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccessControlConfigurationSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'accessControlConfigurationSummary_id' - The identifier of the access control configuration.+newAccessControlConfigurationSummary ::+  -- | 'id'+  Prelude.Text ->+  AccessControlConfigurationSummary+newAccessControlConfigurationSummary pId_ =+  AccessControlConfigurationSummary' {id = pId_}++-- | The identifier of the access control configuration.+accessControlConfigurationSummary_id :: Lens.Lens' AccessControlConfigurationSummary Prelude.Text+accessControlConfigurationSummary_id = Lens.lens (\AccessControlConfigurationSummary' {id} -> id) (\s@AccessControlConfigurationSummary' {} a -> s {id = a} :: AccessControlConfigurationSummary)++instance+  Data.FromJSON+    AccessControlConfigurationSummary+  where+  parseJSON =+    Data.withObject+      "AccessControlConfigurationSummary"+      ( \x ->+          AccessControlConfigurationSummary'+            Prelude.<$> (x Data..: "Id")+      )++instance+  Prelude.Hashable+    AccessControlConfigurationSummary+  where+  hashWithSalt+    _salt+    AccessControlConfigurationSummary' {..} =+      _salt `Prelude.hashWithSalt` id++instance+  Prelude.NFData+    AccessControlConfigurationSummary+  where+  rnf AccessControlConfigurationSummary' {..} =+    Prelude.rnf id
+ gen/Amazonka/Kendra/Types/AccessControlListConfiguration.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.Kendra.Types.AccessControlListConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.AccessControlListConfiguration 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++-- | Access Control List files for the documents in a data source. For the+-- format of the file, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/s3-acl.html Access control for S3 data sources>.+--+-- /See:/ 'newAccessControlListConfiguration' smart constructor.+data AccessControlListConfiguration = AccessControlListConfiguration'+  { -- | Path to the Amazon S3 bucket that contains the ACL files.+    keyPath :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AccessControlListConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keyPath', 'accessControlListConfiguration_keyPath' - Path to the Amazon S3 bucket that contains the ACL files.+newAccessControlListConfiguration ::+  AccessControlListConfiguration+newAccessControlListConfiguration =+  AccessControlListConfiguration'+    { keyPath =+        Prelude.Nothing+    }++-- | Path to the Amazon S3 bucket that contains the ACL files.+accessControlListConfiguration_keyPath :: Lens.Lens' AccessControlListConfiguration (Prelude.Maybe Prelude.Text)+accessControlListConfiguration_keyPath = Lens.lens (\AccessControlListConfiguration' {keyPath} -> keyPath) (\s@AccessControlListConfiguration' {} a -> s {keyPath = a} :: AccessControlListConfiguration)++instance Data.FromJSON AccessControlListConfiguration where+  parseJSON =+    Data.withObject+      "AccessControlListConfiguration"+      ( \x ->+          AccessControlListConfiguration'+            Prelude.<$> (x Data..:? "KeyPath")+      )++instance+  Prelude.Hashable+    AccessControlListConfiguration+  where+  hashWithSalt+    _salt+    AccessControlListConfiguration' {..} =+      _salt `Prelude.hashWithSalt` keyPath++instance+  Prelude.NFData+    AccessControlListConfiguration+  where+  rnf AccessControlListConfiguration' {..} =+    Prelude.rnf keyPath++instance Data.ToJSON AccessControlListConfiguration where+  toJSON AccessControlListConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [("KeyPath" Data..=) Prelude.<$> keyPath]+      )
+ gen/Amazonka/Kendra/Types/AclConfiguration.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.Kendra.Types.AclConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.AclConfiguration 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 the column that should be used for filtering+-- the query response by groups.+--+-- /See:/ 'newAclConfiguration' smart constructor.+data AclConfiguration = AclConfiguration'+  { -- | A list of groups, separated by semi-colons, that filters a query+    -- response based on user context. The document is only returned to users+    -- that are in one of the groups specified in the @UserContext@ field of+    -- the @Query@ API.+    allowedGroupsColumnName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AclConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'allowedGroupsColumnName', 'aclConfiguration_allowedGroupsColumnName' - A list of groups, separated by semi-colons, that filters a query+-- response based on user context. The document is only returned to users+-- that are in one of the groups specified in the @UserContext@ field of+-- the @Query@ API.+newAclConfiguration ::+  -- | 'allowedGroupsColumnName'+  Prelude.Text ->+  AclConfiguration+newAclConfiguration pAllowedGroupsColumnName_ =+  AclConfiguration'+    { allowedGroupsColumnName =+        pAllowedGroupsColumnName_+    }++-- | A list of groups, separated by semi-colons, that filters a query+-- response based on user context. The document is only returned to users+-- that are in one of the groups specified in the @UserContext@ field of+-- the @Query@ API.+aclConfiguration_allowedGroupsColumnName :: Lens.Lens' AclConfiguration Prelude.Text+aclConfiguration_allowedGroupsColumnName = Lens.lens (\AclConfiguration' {allowedGroupsColumnName} -> allowedGroupsColumnName) (\s@AclConfiguration' {} a -> s {allowedGroupsColumnName = a} :: AclConfiguration)++instance Data.FromJSON AclConfiguration where+  parseJSON =+    Data.withObject+      "AclConfiguration"+      ( \x ->+          AclConfiguration'+            Prelude.<$> (x Data..: "AllowedGroupsColumnName")+      )++instance Prelude.Hashable AclConfiguration where+  hashWithSalt _salt AclConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` allowedGroupsColumnName++instance Prelude.NFData AclConfiguration where+  rnf AclConfiguration' {..} =+    Prelude.rnf allowedGroupsColumnName++instance Data.ToJSON AclConfiguration where+  toJSON AclConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "AllowedGroupsColumnName"+                  Data..= allowedGroupsColumnName+              )+          ]+      )
+ gen/Amazonka/Kendra/Types/AdditionalResultAttribute.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.Kendra.Types.AdditionalResultAttribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.AdditionalResultAttribute where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.AdditionalResultAttributeValue+import Amazonka.Kendra.Types.AdditionalResultAttributeValueType+import qualified Amazonka.Prelude as Prelude++-- | An attribute returned from an index query.+--+-- /See:/ 'newAdditionalResultAttribute' smart constructor.+data AdditionalResultAttribute = AdditionalResultAttribute'+  { -- | The key that identifies the attribute.+    key :: Prelude.Text,+    -- | The data type of the @Value@ property.+    valueType :: AdditionalResultAttributeValueType,+    -- | An object that contains the attribute value.+    value :: AdditionalResultAttributeValue+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AdditionalResultAttribute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'additionalResultAttribute_key' - The key that identifies the attribute.+--+-- 'valueType', 'additionalResultAttribute_valueType' - The data type of the @Value@ property.+--+-- 'value', 'additionalResultAttribute_value' - An object that contains the attribute value.+newAdditionalResultAttribute ::+  -- | 'key'+  Prelude.Text ->+  -- | 'valueType'+  AdditionalResultAttributeValueType ->+  -- | 'value'+  AdditionalResultAttributeValue ->+  AdditionalResultAttribute+newAdditionalResultAttribute+  pKey_+  pValueType_+  pValue_ =+    AdditionalResultAttribute'+      { key = pKey_,+        valueType = pValueType_,+        value = pValue_+      }++-- | The key that identifies the attribute.+additionalResultAttribute_key :: Lens.Lens' AdditionalResultAttribute Prelude.Text+additionalResultAttribute_key = Lens.lens (\AdditionalResultAttribute' {key} -> key) (\s@AdditionalResultAttribute' {} a -> s {key = a} :: AdditionalResultAttribute)++-- | The data type of the @Value@ property.+additionalResultAttribute_valueType :: Lens.Lens' AdditionalResultAttribute AdditionalResultAttributeValueType+additionalResultAttribute_valueType = Lens.lens (\AdditionalResultAttribute' {valueType} -> valueType) (\s@AdditionalResultAttribute' {} a -> s {valueType = a} :: AdditionalResultAttribute)++-- | An object that contains the attribute value.+additionalResultAttribute_value :: Lens.Lens' AdditionalResultAttribute AdditionalResultAttributeValue+additionalResultAttribute_value = Lens.lens (\AdditionalResultAttribute' {value} -> value) (\s@AdditionalResultAttribute' {} a -> s {value = a} :: AdditionalResultAttribute)++instance Data.FromJSON AdditionalResultAttribute where+  parseJSON =+    Data.withObject+      "AdditionalResultAttribute"+      ( \x ->+          AdditionalResultAttribute'+            Prelude.<$> (x Data..: "Key")+            Prelude.<*> (x Data..: "ValueType")+            Prelude.<*> (x Data..: "Value")+      )++instance Prelude.Hashable AdditionalResultAttribute where+  hashWithSalt _salt AdditionalResultAttribute' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` valueType+      `Prelude.hashWithSalt` value++instance Prelude.NFData AdditionalResultAttribute where+  rnf AdditionalResultAttribute' {..} =+    Prelude.rnf key+      `Prelude.seq` Prelude.rnf valueType+      `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/Kendra/Types/AdditionalResultAttributeValue.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.AdditionalResultAttributeValue+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.AdditionalResultAttributeValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.TextWithHighlights+import qualified Amazonka.Prelude as Prelude++-- | An attribute returned with a document from a search.+--+-- /See:/ 'newAdditionalResultAttributeValue' smart constructor.+data AdditionalResultAttributeValue = AdditionalResultAttributeValue'+  { -- | The text associated with the attribute and information about the+    -- highlight to apply to the text.+    textWithHighlightsValue :: Prelude.Maybe TextWithHighlights+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AdditionalResultAttributeValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'textWithHighlightsValue', 'additionalResultAttributeValue_textWithHighlightsValue' - The text associated with the attribute and information about the+-- highlight to apply to the text.+newAdditionalResultAttributeValue ::+  AdditionalResultAttributeValue+newAdditionalResultAttributeValue =+  AdditionalResultAttributeValue'+    { textWithHighlightsValue =+        Prelude.Nothing+    }++-- | The text associated with the attribute and information about the+-- highlight to apply to the text.+additionalResultAttributeValue_textWithHighlightsValue :: Lens.Lens' AdditionalResultAttributeValue (Prelude.Maybe TextWithHighlights)+additionalResultAttributeValue_textWithHighlightsValue = Lens.lens (\AdditionalResultAttributeValue' {textWithHighlightsValue} -> textWithHighlightsValue) (\s@AdditionalResultAttributeValue' {} a -> s {textWithHighlightsValue = a} :: AdditionalResultAttributeValue)++instance Data.FromJSON AdditionalResultAttributeValue where+  parseJSON =+    Data.withObject+      "AdditionalResultAttributeValue"+      ( \x ->+          AdditionalResultAttributeValue'+            Prelude.<$> (x Data..:? "TextWithHighlightsValue")+      )++instance+  Prelude.Hashable+    AdditionalResultAttributeValue+  where+  hashWithSalt+    _salt+    AdditionalResultAttributeValue' {..} =+      _salt+        `Prelude.hashWithSalt` textWithHighlightsValue++instance+  Prelude.NFData+    AdditionalResultAttributeValue+  where+  rnf AdditionalResultAttributeValue' {..} =+    Prelude.rnf textWithHighlightsValue
+ gen/Amazonka/Kendra/Types/AdditionalResultAttributeValueType.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.Kendra.Types.AdditionalResultAttributeValueType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.AdditionalResultAttributeValueType+  ( AdditionalResultAttributeValueType+      ( ..,+        AdditionalResultAttributeValueType_TEXT_WITH_HIGHLIGHTS_VALUE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AdditionalResultAttributeValueType = AdditionalResultAttributeValueType'+  { fromAdditionalResultAttributeValueType ::+      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 AdditionalResultAttributeValueType_TEXT_WITH_HIGHLIGHTS_VALUE :: AdditionalResultAttributeValueType+pattern AdditionalResultAttributeValueType_TEXT_WITH_HIGHLIGHTS_VALUE = AdditionalResultAttributeValueType' "TEXT_WITH_HIGHLIGHTS_VALUE"++{-# COMPLETE+  AdditionalResultAttributeValueType_TEXT_WITH_HIGHLIGHTS_VALUE,+  AdditionalResultAttributeValueType'+  #-}
+ gen/Amazonka/Kendra/Types/AlfrescoConfiguration.hs view
@@ -0,0 +1,407 @@+{-# 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.Kendra.Types.AlfrescoConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.AlfrescoConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.AlfrescoEntity+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import Amazonka.Kendra.Types.DataSourceVpcConfiguration+import Amazonka.Kendra.Types.S3Path+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to Alfresco as your+-- data source.+--+-- Alfresco data source connector is currently in preview mode. Basic+-- authentication is currently supported. If you would like to use Alfresco+-- connector in production, contact+-- <http://aws.amazon.com/contact-us/ Support>.+--+-- /See:/ 'newAlfrescoConfiguration' smart constructor.+data AlfrescoConfiguration = AlfrescoConfiguration'+  { -- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+    -- field names of Alfresco blogs to Amazon Kendra index field names. To+    -- create custom fields, use the @UpdateIndex@ API before you map to+    -- Alfresco fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Alfresco data source field names must exist in your Alfresco custom+    -- metadata.+    blogFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | @TRUE@ to index comments of blogs and other content.+    crawlComments :: Prelude.Maybe Prelude.Bool,+    -- | @TRUE@ to index shared files.+    crawlSystemFolders :: Prelude.Maybe Prelude.Bool,+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+    -- field names of Alfresco document libraries to Amazon Kendra index field+    -- names. To create custom fields, use the @UpdateIndex@ API before you map+    -- to Alfresco fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Alfresco data source field names must exist in your Alfresco custom+    -- metadata.+    documentLibraryFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | Specify whether to index document libraries, wikis, or blogs. You can+    -- specify one or more of these options.+    entityFilter :: Prelude.Maybe (Prelude.NonEmpty AlfrescoEntity),+    -- | A list of regular expression patterns to exclude certain files in your+    -- Alfresco data source. Files that match the patterns are excluded from+    -- the index. Files that don\'t match the patterns are included in the+    -- index. If a file matches both an inclusion pattern and an exclusion+    -- pattern, the exclusion pattern takes precedence and the file isn\'t+    -- included in the index.+    exclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of regular expression patterns to include certain files in your+    -- Alfresco data source. Files that match the patterns are included in the+    -- index. Files that don\'t match the patterns are excluded from the index.+    -- If a file matches both an inclusion pattern and an exclusion pattern,+    -- the exclusion pattern takes precedence and the file isn\'t included in+    -- the index.+    inclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | Configuration information for an Amazon Virtual Private Cloud to connect+    -- to your Alfresco. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+    vpcConfiguration :: Prelude.Maybe DataSourceVpcConfiguration,+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+    -- field names of Alfresco wikis to Amazon Kendra index field names. To+    -- create custom fields, use the @UpdateIndex@ API before you map to+    -- Alfresco fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Alfresco data source field names must exist in your Alfresco custom+    -- metadata.+    wikiFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | The URL of the Alfresco site. For example, /https:\/\/hostname:8080/.+    siteUrl :: Prelude.Text,+    -- | The identifier of the Alfresco site. For example, /my-site/.+    siteId :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an Secrets Manager secret that+    -- contains the key-value pairs required to connect to your Alfresco data+    -- source. The secret must contain a JSON structure with the following+    -- keys:+    --+    -- -   username—The user name of the Alfresco account.+    --+    -- -   password—The password of the Alfresco account.+    secretArn :: Prelude.Text,+    -- | The path to the SSL certificate stored in an Amazon S3 bucket. You use+    -- this to connect to Alfresco if you require a secure SSL connection.+    --+    -- You can simply generate a self-signed X509 certificate on any computer+    -- using OpenSSL. For an example of using OpenSSL to create an X509+    -- certificate, see+    -- <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl.html Create and sign an X509 certificate>.+    sslCertificateS3Path :: S3Path+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AlfrescoConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'blogFieldMappings', 'alfrescoConfiguration_blogFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Alfresco blogs to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to+-- Alfresco fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Alfresco data source field names must exist in your Alfresco custom+-- metadata.+--+-- 'crawlComments', 'alfrescoConfiguration_crawlComments' - @TRUE@ to index comments of blogs and other content.+--+-- 'crawlSystemFolders', 'alfrescoConfiguration_crawlSystemFolders' - @TRUE@ to index shared files.+--+-- 'documentLibraryFieldMappings', 'alfrescoConfiguration_documentLibraryFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Alfresco document libraries to Amazon Kendra index field+-- names. To create custom fields, use the @UpdateIndex@ API before you map+-- to Alfresco fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Alfresco data source field names must exist in your Alfresco custom+-- metadata.+--+-- 'entityFilter', 'alfrescoConfiguration_entityFilter' - Specify whether to index document libraries, wikis, or blogs. You can+-- specify one or more of these options.+--+-- 'exclusionPatterns', 'alfrescoConfiguration_exclusionPatterns' - A list of regular expression patterns to exclude certain files in your+-- Alfresco data source. Files that match the patterns are excluded from+-- the index. Files that don\'t match the patterns are included in the+-- index. If a file matches both an inclusion pattern and an exclusion+-- pattern, the exclusion pattern takes precedence and the file isn\'t+-- included in the index.+--+-- 'inclusionPatterns', 'alfrescoConfiguration_inclusionPatterns' - A list of regular expression patterns to include certain files in your+-- Alfresco data source. Files that match the patterns are included in the+-- index. Files that don\'t match the patterns are excluded from the index.+-- If a file matches both an inclusion pattern and an exclusion pattern,+-- the exclusion pattern takes precedence and the file isn\'t included in+-- the index.+--+-- 'vpcConfiguration', 'alfrescoConfiguration_vpcConfiguration' - Configuration information for an Amazon Virtual Private Cloud to connect+-- to your Alfresco. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+--+-- 'wikiFieldMappings', 'alfrescoConfiguration_wikiFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Alfresco wikis to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to+-- Alfresco fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Alfresco data source field names must exist in your Alfresco custom+-- metadata.+--+-- 'siteUrl', 'alfrescoConfiguration_siteUrl' - The URL of the Alfresco site. For example, /https:\/\/hostname:8080/.+--+-- 'siteId', 'alfrescoConfiguration_siteId' - The identifier of the Alfresco site. For example, /my-site/.+--+-- 'secretArn', 'alfrescoConfiguration_secretArn' - The Amazon Resource Name (ARN) of an Secrets Manager secret that+-- contains the key-value pairs required to connect to your Alfresco data+-- source. The secret must contain a JSON structure with the following+-- keys:+--+-- -   username—The user name of the Alfresco account.+--+-- -   password—The password of the Alfresco account.+--+-- 'sslCertificateS3Path', 'alfrescoConfiguration_sslCertificateS3Path' - The path to the SSL certificate stored in an Amazon S3 bucket. You use+-- this to connect to Alfresco if you require a secure SSL connection.+--+-- You can simply generate a self-signed X509 certificate on any computer+-- using OpenSSL. For an example of using OpenSSL to create an X509+-- certificate, see+-- <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl.html Create and sign an X509 certificate>.+newAlfrescoConfiguration ::+  -- | 'siteUrl'+  Prelude.Text ->+  -- | 'siteId'+  Prelude.Text ->+  -- | 'secretArn'+  Prelude.Text ->+  -- | 'sslCertificateS3Path'+  S3Path ->+  AlfrescoConfiguration+newAlfrescoConfiguration+  pSiteUrl_+  pSiteId_+  pSecretArn_+  pSslCertificateS3Path_ =+    AlfrescoConfiguration'+      { blogFieldMappings =+          Prelude.Nothing,+        crawlComments = Prelude.Nothing,+        crawlSystemFolders = Prelude.Nothing,+        documentLibraryFieldMappings = Prelude.Nothing,+        entityFilter = Prelude.Nothing,+        exclusionPatterns = Prelude.Nothing,+        inclusionPatterns = Prelude.Nothing,+        vpcConfiguration = Prelude.Nothing,+        wikiFieldMappings = Prelude.Nothing,+        siteUrl = pSiteUrl_,+        siteId = pSiteId_,+        secretArn = pSecretArn_,+        sslCertificateS3Path = pSslCertificateS3Path_+      }++-- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Alfresco blogs to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to+-- Alfresco fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Alfresco data source field names must exist in your Alfresco custom+-- metadata.+alfrescoConfiguration_blogFieldMappings :: Lens.Lens' AlfrescoConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+alfrescoConfiguration_blogFieldMappings = Lens.lens (\AlfrescoConfiguration' {blogFieldMappings} -> blogFieldMappings) (\s@AlfrescoConfiguration' {} a -> s {blogFieldMappings = a} :: AlfrescoConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | @TRUE@ to index comments of blogs and other content.+alfrescoConfiguration_crawlComments :: Lens.Lens' AlfrescoConfiguration (Prelude.Maybe Prelude.Bool)+alfrescoConfiguration_crawlComments = Lens.lens (\AlfrescoConfiguration' {crawlComments} -> crawlComments) (\s@AlfrescoConfiguration' {} a -> s {crawlComments = a} :: AlfrescoConfiguration)++-- | @TRUE@ to index shared files.+alfrescoConfiguration_crawlSystemFolders :: Lens.Lens' AlfrescoConfiguration (Prelude.Maybe Prelude.Bool)+alfrescoConfiguration_crawlSystemFolders = Lens.lens (\AlfrescoConfiguration' {crawlSystemFolders} -> crawlSystemFolders) (\s@AlfrescoConfiguration' {} a -> s {crawlSystemFolders = a} :: AlfrescoConfiguration)++-- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Alfresco document libraries to Amazon Kendra index field+-- names. To create custom fields, use the @UpdateIndex@ API before you map+-- to Alfresco fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Alfresco data source field names must exist in your Alfresco custom+-- metadata.+alfrescoConfiguration_documentLibraryFieldMappings :: Lens.Lens' AlfrescoConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+alfrescoConfiguration_documentLibraryFieldMappings = Lens.lens (\AlfrescoConfiguration' {documentLibraryFieldMappings} -> documentLibraryFieldMappings) (\s@AlfrescoConfiguration' {} a -> s {documentLibraryFieldMappings = a} :: AlfrescoConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Specify whether to index document libraries, wikis, or blogs. You can+-- specify one or more of these options.+alfrescoConfiguration_entityFilter :: Lens.Lens' AlfrescoConfiguration (Prelude.Maybe (Prelude.NonEmpty AlfrescoEntity))+alfrescoConfiguration_entityFilter = Lens.lens (\AlfrescoConfiguration' {entityFilter} -> entityFilter) (\s@AlfrescoConfiguration' {} a -> s {entityFilter = a} :: AlfrescoConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to exclude certain files in your+-- Alfresco data source. Files that match the patterns are excluded from+-- the index. Files that don\'t match the patterns are included in the+-- index. If a file matches both an inclusion pattern and an exclusion+-- pattern, the exclusion pattern takes precedence and the file isn\'t+-- included in the index.+alfrescoConfiguration_exclusionPatterns :: Lens.Lens' AlfrescoConfiguration (Prelude.Maybe [Prelude.Text])+alfrescoConfiguration_exclusionPatterns = Lens.lens (\AlfrescoConfiguration' {exclusionPatterns} -> exclusionPatterns) (\s@AlfrescoConfiguration' {} a -> s {exclusionPatterns = a} :: AlfrescoConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to include certain files in your+-- Alfresco data source. Files that match the patterns are included in the+-- index. Files that don\'t match the patterns are excluded from the index.+-- If a file matches both an inclusion pattern and an exclusion pattern,+-- the exclusion pattern takes precedence and the file isn\'t included in+-- the index.+alfrescoConfiguration_inclusionPatterns :: Lens.Lens' AlfrescoConfiguration (Prelude.Maybe [Prelude.Text])+alfrescoConfiguration_inclusionPatterns = Lens.lens (\AlfrescoConfiguration' {inclusionPatterns} -> inclusionPatterns) (\s@AlfrescoConfiguration' {} a -> s {inclusionPatterns = a} :: AlfrescoConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Configuration information for an Amazon Virtual Private Cloud to connect+-- to your Alfresco. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+alfrescoConfiguration_vpcConfiguration :: Lens.Lens' AlfrescoConfiguration (Prelude.Maybe DataSourceVpcConfiguration)+alfrescoConfiguration_vpcConfiguration = Lens.lens (\AlfrescoConfiguration' {vpcConfiguration} -> vpcConfiguration) (\s@AlfrescoConfiguration' {} a -> s {vpcConfiguration = a} :: AlfrescoConfiguration)++-- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Alfresco wikis to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to+-- Alfresco fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Alfresco data source field names must exist in your Alfresco custom+-- metadata.+alfrescoConfiguration_wikiFieldMappings :: Lens.Lens' AlfrescoConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+alfrescoConfiguration_wikiFieldMappings = Lens.lens (\AlfrescoConfiguration' {wikiFieldMappings} -> wikiFieldMappings) (\s@AlfrescoConfiguration' {} a -> s {wikiFieldMappings = a} :: AlfrescoConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The URL of the Alfresco site. For example, /https:\/\/hostname:8080/.+alfrescoConfiguration_siteUrl :: Lens.Lens' AlfrescoConfiguration Prelude.Text+alfrescoConfiguration_siteUrl = Lens.lens (\AlfrescoConfiguration' {siteUrl} -> siteUrl) (\s@AlfrescoConfiguration' {} a -> s {siteUrl = a} :: AlfrescoConfiguration)++-- | The identifier of the Alfresco site. For example, /my-site/.+alfrescoConfiguration_siteId :: Lens.Lens' AlfrescoConfiguration Prelude.Text+alfrescoConfiguration_siteId = Lens.lens (\AlfrescoConfiguration' {siteId} -> siteId) (\s@AlfrescoConfiguration' {} a -> s {siteId = a} :: AlfrescoConfiguration)++-- | The Amazon Resource Name (ARN) of an Secrets Manager secret that+-- contains the key-value pairs required to connect to your Alfresco data+-- source. The secret must contain a JSON structure with the following+-- keys:+--+-- -   username—The user name of the Alfresco account.+--+-- -   password—The password of the Alfresco account.+alfrescoConfiguration_secretArn :: Lens.Lens' AlfrescoConfiguration Prelude.Text+alfrescoConfiguration_secretArn = Lens.lens (\AlfrescoConfiguration' {secretArn} -> secretArn) (\s@AlfrescoConfiguration' {} a -> s {secretArn = a} :: AlfrescoConfiguration)++-- | The path to the SSL certificate stored in an Amazon S3 bucket. You use+-- this to connect to Alfresco if you require a secure SSL connection.+--+-- You can simply generate a self-signed X509 certificate on any computer+-- using OpenSSL. For an example of using OpenSSL to create an X509+-- certificate, see+-- <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl.html Create and sign an X509 certificate>.+alfrescoConfiguration_sslCertificateS3Path :: Lens.Lens' AlfrescoConfiguration S3Path+alfrescoConfiguration_sslCertificateS3Path = Lens.lens (\AlfrescoConfiguration' {sslCertificateS3Path} -> sslCertificateS3Path) (\s@AlfrescoConfiguration' {} a -> s {sslCertificateS3Path = a} :: AlfrescoConfiguration)++instance Data.FromJSON AlfrescoConfiguration where+  parseJSON =+    Data.withObject+      "AlfrescoConfiguration"+      ( \x ->+          AlfrescoConfiguration'+            Prelude.<$> (x Data..:? "BlogFieldMappings")+            Prelude.<*> (x Data..:? "CrawlComments")+            Prelude.<*> (x Data..:? "CrawlSystemFolders")+            Prelude.<*> (x Data..:? "DocumentLibraryFieldMappings")+            Prelude.<*> (x Data..:? "EntityFilter")+            Prelude.<*> ( x+                            Data..:? "ExclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "InclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "VpcConfiguration")+            Prelude.<*> (x Data..:? "WikiFieldMappings")+            Prelude.<*> (x Data..: "SiteUrl")+            Prelude.<*> (x Data..: "SiteId")+            Prelude.<*> (x Data..: "SecretArn")+            Prelude.<*> (x Data..: "SslCertificateS3Path")+      )++instance Prelude.Hashable AlfrescoConfiguration where+  hashWithSalt _salt AlfrescoConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` blogFieldMappings+      `Prelude.hashWithSalt` crawlComments+      `Prelude.hashWithSalt` crawlSystemFolders+      `Prelude.hashWithSalt` documentLibraryFieldMappings+      `Prelude.hashWithSalt` entityFilter+      `Prelude.hashWithSalt` exclusionPatterns+      `Prelude.hashWithSalt` inclusionPatterns+      `Prelude.hashWithSalt` vpcConfiguration+      `Prelude.hashWithSalt` wikiFieldMappings+      `Prelude.hashWithSalt` siteUrl+      `Prelude.hashWithSalt` siteId+      `Prelude.hashWithSalt` secretArn+      `Prelude.hashWithSalt` sslCertificateS3Path++instance Prelude.NFData AlfrescoConfiguration where+  rnf AlfrescoConfiguration' {..} =+    Prelude.rnf blogFieldMappings+      `Prelude.seq` Prelude.rnf crawlComments+      `Prelude.seq` Prelude.rnf crawlSystemFolders+      `Prelude.seq` Prelude.rnf documentLibraryFieldMappings+      `Prelude.seq` Prelude.rnf entityFilter+      `Prelude.seq` Prelude.rnf exclusionPatterns+      `Prelude.seq` Prelude.rnf inclusionPatterns+      `Prelude.seq` Prelude.rnf vpcConfiguration+      `Prelude.seq` Prelude.rnf wikiFieldMappings+      `Prelude.seq` Prelude.rnf siteUrl+      `Prelude.seq` Prelude.rnf siteId+      `Prelude.seq` Prelude.rnf secretArn+      `Prelude.seq` Prelude.rnf sslCertificateS3Path++instance Data.ToJSON AlfrescoConfiguration where+  toJSON AlfrescoConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BlogFieldMappings" Data..=)+              Prelude.<$> blogFieldMappings,+            ("CrawlComments" Data..=) Prelude.<$> crawlComments,+            ("CrawlSystemFolders" Data..=)+              Prelude.<$> crawlSystemFolders,+            ("DocumentLibraryFieldMappings" Data..=)+              Prelude.<$> documentLibraryFieldMappings,+            ("EntityFilter" Data..=) Prelude.<$> entityFilter,+            ("ExclusionPatterns" Data..=)+              Prelude.<$> exclusionPatterns,+            ("InclusionPatterns" Data..=)+              Prelude.<$> inclusionPatterns,+            ("VpcConfiguration" Data..=)+              Prelude.<$> vpcConfiguration,+            ("WikiFieldMappings" Data..=)+              Prelude.<$> wikiFieldMappings,+            Prelude.Just ("SiteUrl" Data..= siteUrl),+            Prelude.Just ("SiteId" Data..= siteId),+            Prelude.Just ("SecretArn" Data..= secretArn),+            Prelude.Just+              ( "SslCertificateS3Path"+                  Data..= sslCertificateS3Path+              )+          ]+      )
+ gen/Amazonka/Kendra/Types/AlfrescoEntity.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.Kendra.Types.AlfrescoEntity+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.AlfrescoEntity+  ( AlfrescoEntity+      ( ..,+        AlfrescoEntity_Blog,+        AlfrescoEntity_DocumentLibrary,+        AlfrescoEntity_Wiki+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AlfrescoEntity = AlfrescoEntity'+  { fromAlfrescoEntity ::+      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 AlfrescoEntity_Blog :: AlfrescoEntity+pattern AlfrescoEntity_Blog = AlfrescoEntity' "blog"++pattern AlfrescoEntity_DocumentLibrary :: AlfrescoEntity+pattern AlfrescoEntity_DocumentLibrary = AlfrescoEntity' "documentLibrary"++pattern AlfrescoEntity_Wiki :: AlfrescoEntity+pattern AlfrescoEntity_Wiki = AlfrescoEntity' "wiki"++{-# COMPLETE+  AlfrescoEntity_Blog,+  AlfrescoEntity_DocumentLibrary,+  AlfrescoEntity_Wiki,+  AlfrescoEntity'+  #-}
+ gen/Amazonka/Kendra/Types/AttributeFilter.hs view
@@ -0,0 +1,231 @@+{-# 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.Kendra.Types.AttributeFilter+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.AttributeFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DocumentAttribute+import qualified Amazonka.Prelude as Prelude++-- | Provides filtering the query results based on document attributes or+-- metadata fields.+--+-- When you use the @AndAllFilters@ or @OrAllFilters@, filters you can use+-- 2 layers under the first attribute filter. For example, you can use:+--+-- @\<AndAllFilters>@+--+-- 1.  @ \<OrAllFilters>@+--+-- 2.  @ \<EqualsTo>@+--+-- If you use more than 2 layers, you receive a @ValidationException@+-- exception with the message \"@AttributeFilter@ cannot have a depth of+-- more than 2.\"+--+-- If you use more than 10 attribute filters in a given list for+-- @AndAllFilters@ or @OrAllFilters@, you receive a @ValidationException@+-- with the message \"@AttributeFilter@ cannot have a length of more than+-- 10\".+--+-- /See:/ 'newAttributeFilter' smart constructor.+data AttributeFilter = AttributeFilter'+  { -- | Performs a logical @AND@ operation on all supplied filters.+    andAllFilters :: Prelude.Maybe [AttributeFilter],+    -- | Returns true when a document contains all of the specified document+    -- attributes or metadata fields. This filter is only applicable to+    -- @StringListValue@ metadata.+    containsAll :: Prelude.Maybe DocumentAttribute,+    -- | Returns true when a document contains any of the specified document+    -- attributes or metadata fields. This filter is only applicable to+    -- @StringListValue@ metadata.+    containsAny :: Prelude.Maybe DocumentAttribute,+    -- | Performs an equals operation on two document attributes or metadata+    -- fields.+    equalsTo :: Prelude.Maybe DocumentAttribute,+    -- | Performs a greater than operation on two document attributes or metadata+    -- fields. Use with a document attribute of type @Date@ or @Long@.+    greaterThan :: Prelude.Maybe DocumentAttribute,+    -- | Performs a greater or equals than operation on two document attributes+    -- or metadata fields. Use with a document attribute of type @Date@ or+    -- @Long@.+    greaterThanOrEquals :: Prelude.Maybe DocumentAttribute,+    -- | Performs a less than operation on two document attributes or metadata+    -- fields. Use with a document attribute of type @Date@ or @Long@.+    lessThan :: Prelude.Maybe DocumentAttribute,+    -- | Performs a less than or equals operation on two document attributes or+    -- metadata fields. Use with a document attribute of type @Date@ or @Long@.+    lessThanOrEquals :: Prelude.Maybe DocumentAttribute,+    -- | Performs a logical @NOT@ operation on all supplied filters.+    notFilter :: Prelude.Maybe AttributeFilter,+    -- | Performs a logical @OR@ operation on all supplied filters.+    orAllFilters :: Prelude.Maybe [AttributeFilter]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AttributeFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'andAllFilters', 'attributeFilter_andAllFilters' - Performs a logical @AND@ operation on all supplied filters.+--+-- 'containsAll', 'attributeFilter_containsAll' - Returns true when a document contains all of the specified document+-- attributes or metadata fields. This filter is only applicable to+-- @StringListValue@ metadata.+--+-- 'containsAny', 'attributeFilter_containsAny' - Returns true when a document contains any of the specified document+-- attributes or metadata fields. This filter is only applicable to+-- @StringListValue@ metadata.+--+-- 'equalsTo', 'attributeFilter_equalsTo' - Performs an equals operation on two document attributes or metadata+-- fields.+--+-- 'greaterThan', 'attributeFilter_greaterThan' - Performs a greater than operation on two document attributes or metadata+-- fields. Use with a document attribute of type @Date@ or @Long@.+--+-- 'greaterThanOrEquals', 'attributeFilter_greaterThanOrEquals' - Performs a greater or equals than operation on two document attributes+-- or metadata fields. Use with a document attribute of type @Date@ or+-- @Long@.+--+-- 'lessThan', 'attributeFilter_lessThan' - Performs a less than operation on two document attributes or metadata+-- fields. Use with a document attribute of type @Date@ or @Long@.+--+-- 'lessThanOrEquals', 'attributeFilter_lessThanOrEquals' - Performs a less than or equals operation on two document attributes or+-- metadata fields. Use with a document attribute of type @Date@ or @Long@.+--+-- 'notFilter', 'attributeFilter_notFilter' - Performs a logical @NOT@ operation on all supplied filters.+--+-- 'orAllFilters', 'attributeFilter_orAllFilters' - Performs a logical @OR@ operation on all supplied filters.+newAttributeFilter ::+  AttributeFilter+newAttributeFilter =+  AttributeFilter'+    { andAllFilters = Prelude.Nothing,+      containsAll = Prelude.Nothing,+      containsAny = Prelude.Nothing,+      equalsTo = Prelude.Nothing,+      greaterThan = Prelude.Nothing,+      greaterThanOrEquals = Prelude.Nothing,+      lessThan = Prelude.Nothing,+      lessThanOrEquals = Prelude.Nothing,+      notFilter = Prelude.Nothing,+      orAllFilters = Prelude.Nothing+    }++-- | Performs a logical @AND@ operation on all supplied filters.+attributeFilter_andAllFilters :: Lens.Lens' AttributeFilter (Prelude.Maybe [AttributeFilter])+attributeFilter_andAllFilters = Lens.lens (\AttributeFilter' {andAllFilters} -> andAllFilters) (\s@AttributeFilter' {} a -> s {andAllFilters = a} :: AttributeFilter) Prelude.. Lens.mapping Lens.coerced++-- | Returns true when a document contains all of the specified document+-- attributes or metadata fields. This filter is only applicable to+-- @StringListValue@ metadata.+attributeFilter_containsAll :: Lens.Lens' AttributeFilter (Prelude.Maybe DocumentAttribute)+attributeFilter_containsAll = Lens.lens (\AttributeFilter' {containsAll} -> containsAll) (\s@AttributeFilter' {} a -> s {containsAll = a} :: AttributeFilter)++-- | Returns true when a document contains any of the specified document+-- attributes or metadata fields. This filter is only applicable to+-- @StringListValue@ metadata.+attributeFilter_containsAny :: Lens.Lens' AttributeFilter (Prelude.Maybe DocumentAttribute)+attributeFilter_containsAny = Lens.lens (\AttributeFilter' {containsAny} -> containsAny) (\s@AttributeFilter' {} a -> s {containsAny = a} :: AttributeFilter)++-- | Performs an equals operation on two document attributes or metadata+-- fields.+attributeFilter_equalsTo :: Lens.Lens' AttributeFilter (Prelude.Maybe DocumentAttribute)+attributeFilter_equalsTo = Lens.lens (\AttributeFilter' {equalsTo} -> equalsTo) (\s@AttributeFilter' {} a -> s {equalsTo = a} :: AttributeFilter)++-- | Performs a greater than operation on two document attributes or metadata+-- fields. Use with a document attribute of type @Date@ or @Long@.+attributeFilter_greaterThan :: Lens.Lens' AttributeFilter (Prelude.Maybe DocumentAttribute)+attributeFilter_greaterThan = Lens.lens (\AttributeFilter' {greaterThan} -> greaterThan) (\s@AttributeFilter' {} a -> s {greaterThan = a} :: AttributeFilter)++-- | Performs a greater or equals than operation on two document attributes+-- or metadata fields. Use with a document attribute of type @Date@ or+-- @Long@.+attributeFilter_greaterThanOrEquals :: Lens.Lens' AttributeFilter (Prelude.Maybe DocumentAttribute)+attributeFilter_greaterThanOrEquals = Lens.lens (\AttributeFilter' {greaterThanOrEquals} -> greaterThanOrEquals) (\s@AttributeFilter' {} a -> s {greaterThanOrEquals = a} :: AttributeFilter)++-- | Performs a less than operation on two document attributes or metadata+-- fields. Use with a document attribute of type @Date@ or @Long@.+attributeFilter_lessThan :: Lens.Lens' AttributeFilter (Prelude.Maybe DocumentAttribute)+attributeFilter_lessThan = Lens.lens (\AttributeFilter' {lessThan} -> lessThan) (\s@AttributeFilter' {} a -> s {lessThan = a} :: AttributeFilter)++-- | Performs a less than or equals operation on two document attributes or+-- metadata fields. Use with a document attribute of type @Date@ or @Long@.+attributeFilter_lessThanOrEquals :: Lens.Lens' AttributeFilter (Prelude.Maybe DocumentAttribute)+attributeFilter_lessThanOrEquals = Lens.lens (\AttributeFilter' {lessThanOrEquals} -> lessThanOrEquals) (\s@AttributeFilter' {} a -> s {lessThanOrEquals = a} :: AttributeFilter)++-- | Performs a logical @NOT@ operation on all supplied filters.+attributeFilter_notFilter :: Lens.Lens' AttributeFilter (Prelude.Maybe AttributeFilter)+attributeFilter_notFilter = Lens.lens (\AttributeFilter' {notFilter} -> notFilter) (\s@AttributeFilter' {} a -> s {notFilter = a} :: AttributeFilter)++-- | Performs a logical @OR@ operation on all supplied filters.+attributeFilter_orAllFilters :: Lens.Lens' AttributeFilter (Prelude.Maybe [AttributeFilter])+attributeFilter_orAllFilters = Lens.lens (\AttributeFilter' {orAllFilters} -> orAllFilters) (\s@AttributeFilter' {} a -> s {orAllFilters = a} :: AttributeFilter) Prelude.. Lens.mapping Lens.coerced++instance Prelude.Hashable AttributeFilter where+  hashWithSalt _salt AttributeFilter' {..} =+    _salt+      `Prelude.hashWithSalt` andAllFilters+      `Prelude.hashWithSalt` containsAll+      `Prelude.hashWithSalt` containsAny+      `Prelude.hashWithSalt` equalsTo+      `Prelude.hashWithSalt` greaterThan+      `Prelude.hashWithSalt` greaterThanOrEquals+      `Prelude.hashWithSalt` lessThan+      `Prelude.hashWithSalt` lessThanOrEquals+      `Prelude.hashWithSalt` notFilter+      `Prelude.hashWithSalt` orAllFilters++instance Prelude.NFData AttributeFilter where+  rnf AttributeFilter' {..} =+    Prelude.rnf andAllFilters+      `Prelude.seq` Prelude.rnf containsAll+      `Prelude.seq` Prelude.rnf containsAny+      `Prelude.seq` Prelude.rnf equalsTo+      `Prelude.seq` Prelude.rnf greaterThan+      `Prelude.seq` Prelude.rnf greaterThanOrEquals+      `Prelude.seq` Prelude.rnf lessThan+      `Prelude.seq` Prelude.rnf lessThanOrEquals+      `Prelude.seq` Prelude.rnf notFilter+      `Prelude.seq` Prelude.rnf orAllFilters++instance Data.ToJSON AttributeFilter where+  toJSON AttributeFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AndAllFilters" Data..=) Prelude.<$> andAllFilters,+            ("ContainsAll" Data..=) Prelude.<$> containsAll,+            ("ContainsAny" Data..=) Prelude.<$> containsAny,+            ("EqualsTo" Data..=) Prelude.<$> equalsTo,+            ("GreaterThan" Data..=) Prelude.<$> greaterThan,+            ("GreaterThanOrEquals" Data..=)+              Prelude.<$> greaterThanOrEquals,+            ("LessThan" Data..=) Prelude.<$> lessThan,+            ("LessThanOrEquals" Data..=)+              Prelude.<$> lessThanOrEquals,+            ("NotFilter" Data..=) Prelude.<$> notFilter,+            ("OrAllFilters" Data..=) Prelude.<$> orAllFilters+          ]+      )
+ gen/Amazonka/Kendra/Types/AuthenticationConfiguration.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.Kendra.Types.AuthenticationConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.AuthenticationConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.BasicAuthenticationConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to websites that+-- require user authentication.+--+-- /See:/ 'newAuthenticationConfiguration' smart constructor.+data AuthenticationConfiguration = AuthenticationConfiguration'+  { -- | The list of configuration information that\'s required to connect to and+    -- crawl a website host using basic authentication credentials.+    --+    -- The list includes the name and port number of the website host.+    basicAuthentication :: Prelude.Maybe [BasicAuthenticationConfiguration]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AuthenticationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'basicAuthentication', 'authenticationConfiguration_basicAuthentication' - The list of configuration information that\'s required to connect to and+-- crawl a website host using basic authentication credentials.+--+-- The list includes the name and port number of the website host.+newAuthenticationConfiguration ::+  AuthenticationConfiguration+newAuthenticationConfiguration =+  AuthenticationConfiguration'+    { basicAuthentication =+        Prelude.Nothing+    }++-- | The list of configuration information that\'s required to connect to and+-- crawl a website host using basic authentication credentials.+--+-- The list includes the name and port number of the website host.+authenticationConfiguration_basicAuthentication :: Lens.Lens' AuthenticationConfiguration (Prelude.Maybe [BasicAuthenticationConfiguration])+authenticationConfiguration_basicAuthentication = Lens.lens (\AuthenticationConfiguration' {basicAuthentication} -> basicAuthentication) (\s@AuthenticationConfiguration' {} a -> s {basicAuthentication = a} :: AuthenticationConfiguration) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON AuthenticationConfiguration where+  parseJSON =+    Data.withObject+      "AuthenticationConfiguration"+      ( \x ->+          AuthenticationConfiguration'+            Prelude.<$> ( x+                            Data..:? "BasicAuthentication"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable AuthenticationConfiguration where+  hashWithSalt _salt AuthenticationConfiguration' {..} =+    _salt `Prelude.hashWithSalt` basicAuthentication++instance Prelude.NFData AuthenticationConfiguration where+  rnf AuthenticationConfiguration' {..} =+    Prelude.rnf basicAuthentication++instance Data.ToJSON AuthenticationConfiguration where+  toJSON AuthenticationConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BasicAuthentication" Data..=)+              Prelude.<$> basicAuthentication+          ]+      )
+ gen/Amazonka/Kendra/Types/BasicAuthenticationConfiguration.hs view
@@ -0,0 +1,166 @@+{-# 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.Kendra.Types.BasicAuthenticationConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.BasicAuthenticationConfiguration 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 configuration information to connect to websites that+-- require basic user authentication.+--+-- /See:/ 'newBasicAuthenticationConfiguration' smart constructor.+data BasicAuthenticationConfiguration = BasicAuthenticationConfiguration'+  { -- | The name of the website host you want to connect to using authentication+    -- credentials.+    --+    -- For example, the host name of https:\/\/a.example.com\/page1.html is+    -- \"a.example.com\".+    host :: Prelude.Text,+    -- | The port number of the website host you want to connect to using+    -- authentication credentials.+    --+    -- For example, the port for https:\/\/a.example.com\/page1.html is 443,+    -- the standard port for HTTPS.+    port :: Prelude.Natural,+    -- | Your secret ARN, which you can create in+    -- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html Secrets Manager>+    --+    -- You use a secret if basic authentication credentials are required to+    -- connect to a website. The secret stores your credentials of user name+    -- and password.+    credentials :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BasicAuthenticationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'host', 'basicAuthenticationConfiguration_host' - The name of the website host you want to connect to using authentication+-- credentials.+--+-- For example, the host name of https:\/\/a.example.com\/page1.html is+-- \"a.example.com\".+--+-- 'port', 'basicAuthenticationConfiguration_port' - The port number of the website host you want to connect to using+-- authentication credentials.+--+-- For example, the port for https:\/\/a.example.com\/page1.html is 443,+-- the standard port for HTTPS.+--+-- 'credentials', 'basicAuthenticationConfiguration_credentials' - Your secret ARN, which you can create in+-- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html Secrets Manager>+--+-- You use a secret if basic authentication credentials are required to+-- connect to a website. The secret stores your credentials of user name+-- and password.+newBasicAuthenticationConfiguration ::+  -- | 'host'+  Prelude.Text ->+  -- | 'port'+  Prelude.Natural ->+  -- | 'credentials'+  Prelude.Text ->+  BasicAuthenticationConfiguration+newBasicAuthenticationConfiguration+  pHost_+  pPort_+  pCredentials_ =+    BasicAuthenticationConfiguration'+      { host = pHost_,+        port = pPort_,+        credentials = pCredentials_+      }++-- | The name of the website host you want to connect to using authentication+-- credentials.+--+-- For example, the host name of https:\/\/a.example.com\/page1.html is+-- \"a.example.com\".+basicAuthenticationConfiguration_host :: Lens.Lens' BasicAuthenticationConfiguration Prelude.Text+basicAuthenticationConfiguration_host = Lens.lens (\BasicAuthenticationConfiguration' {host} -> host) (\s@BasicAuthenticationConfiguration' {} a -> s {host = a} :: BasicAuthenticationConfiguration)++-- | The port number of the website host you want to connect to using+-- authentication credentials.+--+-- For example, the port for https:\/\/a.example.com\/page1.html is 443,+-- the standard port for HTTPS.+basicAuthenticationConfiguration_port :: Lens.Lens' BasicAuthenticationConfiguration Prelude.Natural+basicAuthenticationConfiguration_port = Lens.lens (\BasicAuthenticationConfiguration' {port} -> port) (\s@BasicAuthenticationConfiguration' {} a -> s {port = a} :: BasicAuthenticationConfiguration)++-- | Your secret ARN, which you can create in+-- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html Secrets Manager>+--+-- You use a secret if basic authentication credentials are required to+-- connect to a website. The secret stores your credentials of user name+-- and password.+basicAuthenticationConfiguration_credentials :: Lens.Lens' BasicAuthenticationConfiguration Prelude.Text+basicAuthenticationConfiguration_credentials = Lens.lens (\BasicAuthenticationConfiguration' {credentials} -> credentials) (\s@BasicAuthenticationConfiguration' {} a -> s {credentials = a} :: BasicAuthenticationConfiguration)++instance+  Data.FromJSON+    BasicAuthenticationConfiguration+  where+  parseJSON =+    Data.withObject+      "BasicAuthenticationConfiguration"+      ( \x ->+          BasicAuthenticationConfiguration'+            Prelude.<$> (x Data..: "Host")+            Prelude.<*> (x Data..: "Port")+            Prelude.<*> (x Data..: "Credentials")+      )++instance+  Prelude.Hashable+    BasicAuthenticationConfiguration+  where+  hashWithSalt+    _salt+    BasicAuthenticationConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` host+        `Prelude.hashWithSalt` port+        `Prelude.hashWithSalt` credentials++instance+  Prelude.NFData+    BasicAuthenticationConfiguration+  where+  rnf BasicAuthenticationConfiguration' {..} =+    Prelude.rnf host+      `Prelude.seq` Prelude.rnf port+      `Prelude.seq` Prelude.rnf credentials++instance Data.ToJSON BasicAuthenticationConfiguration where+  toJSON BasicAuthenticationConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Host" Data..= host),+            Prelude.Just ("Port" Data..= port),+            Prelude.Just ("Credentials" Data..= credentials)+          ]+      )
+ gen/Amazonka/Kendra/Types/BatchDeleteDocumentResponseFailedDocument.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.BatchDeleteDocumentResponseFailedDocument+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.BatchDeleteDocumentResponseFailedDocument where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ErrorCode+import qualified Amazonka.Prelude as Prelude++-- | Provides information about documents that could not be removed from an+-- index by the @BatchDeleteDocument@ API.+--+-- /See:/ 'newBatchDeleteDocumentResponseFailedDocument' smart constructor.+data BatchDeleteDocumentResponseFailedDocument = BatchDeleteDocumentResponseFailedDocument'+  { -- | The error code for why the document couldn\'t be removed from the index.+    errorCode :: Prelude.Maybe ErrorCode,+    -- | An explanation for why the document couldn\'t be removed from the index.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the document that couldn\'t be removed from the index.+    id :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchDeleteDocumentResponseFailedDocument' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'batchDeleteDocumentResponseFailedDocument_errorCode' - The error code for why the document couldn\'t be removed from the index.+--+-- 'errorMessage', 'batchDeleteDocumentResponseFailedDocument_errorMessage' - An explanation for why the document couldn\'t be removed from the index.+--+-- 'id', 'batchDeleteDocumentResponseFailedDocument_id' - The identifier of the document that couldn\'t be removed from the index.+newBatchDeleteDocumentResponseFailedDocument ::+  BatchDeleteDocumentResponseFailedDocument+newBatchDeleteDocumentResponseFailedDocument =+  BatchDeleteDocumentResponseFailedDocument'+    { errorCode =+        Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      id = Prelude.Nothing+    }++-- | The error code for why the document couldn\'t be removed from the index.+batchDeleteDocumentResponseFailedDocument_errorCode :: Lens.Lens' BatchDeleteDocumentResponseFailedDocument (Prelude.Maybe ErrorCode)+batchDeleteDocumentResponseFailedDocument_errorCode = Lens.lens (\BatchDeleteDocumentResponseFailedDocument' {errorCode} -> errorCode) (\s@BatchDeleteDocumentResponseFailedDocument' {} a -> s {errorCode = a} :: BatchDeleteDocumentResponseFailedDocument)++-- | An explanation for why the document couldn\'t be removed from the index.+batchDeleteDocumentResponseFailedDocument_errorMessage :: Lens.Lens' BatchDeleteDocumentResponseFailedDocument (Prelude.Maybe Prelude.Text)+batchDeleteDocumentResponseFailedDocument_errorMessage = Lens.lens (\BatchDeleteDocumentResponseFailedDocument' {errorMessage} -> errorMessage) (\s@BatchDeleteDocumentResponseFailedDocument' {} a -> s {errorMessage = a} :: BatchDeleteDocumentResponseFailedDocument)++-- | The identifier of the document that couldn\'t be removed from the index.+batchDeleteDocumentResponseFailedDocument_id :: Lens.Lens' BatchDeleteDocumentResponseFailedDocument (Prelude.Maybe Prelude.Text)+batchDeleteDocumentResponseFailedDocument_id = Lens.lens (\BatchDeleteDocumentResponseFailedDocument' {id} -> id) (\s@BatchDeleteDocumentResponseFailedDocument' {} a -> s {id = a} :: BatchDeleteDocumentResponseFailedDocument)++instance+  Data.FromJSON+    BatchDeleteDocumentResponseFailedDocument+  where+  parseJSON =+    Data.withObject+      "BatchDeleteDocumentResponseFailedDocument"+      ( \x ->+          BatchDeleteDocumentResponseFailedDocument'+            Prelude.<$> (x Data..:? "ErrorCode")+            Prelude.<*> (x Data..:? "ErrorMessage")+            Prelude.<*> (x Data..:? "Id")+      )++instance+  Prelude.Hashable+    BatchDeleteDocumentResponseFailedDocument+  where+  hashWithSalt+    _salt+    BatchDeleteDocumentResponseFailedDocument' {..} =+      _salt+        `Prelude.hashWithSalt` errorCode+        `Prelude.hashWithSalt` errorMessage+        `Prelude.hashWithSalt` id++instance+  Prelude.NFData+    BatchDeleteDocumentResponseFailedDocument+  where+  rnf BatchDeleteDocumentResponseFailedDocument' {..} =+    Prelude.rnf errorCode+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf id
+ gen/Amazonka/Kendra/Types/BatchGetDocumentStatusResponseError.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.BatchGetDocumentStatusResponseError+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.BatchGetDocumentStatusResponseError where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ErrorCode+import qualified Amazonka.Prelude as Prelude++-- | Provides a response when the status of a document could not be+-- retrieved.+--+-- /See:/ 'newBatchGetDocumentStatusResponseError' smart constructor.+data BatchGetDocumentStatusResponseError = BatchGetDocumentStatusResponseError'+  { -- | The identifier of the document whose status could not be retrieved.+    documentId :: Prelude.Maybe Prelude.Text,+    -- | Indicates the source of the error.+    errorCode :: Prelude.Maybe ErrorCode,+    -- | States that the API could not get the status of a document. This could+    -- be because the request is not valid or there is a system error.+    errorMessage :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchGetDocumentStatusResponseError' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'documentId', 'batchGetDocumentStatusResponseError_documentId' - The identifier of the document whose status could not be retrieved.+--+-- 'errorCode', 'batchGetDocumentStatusResponseError_errorCode' - Indicates the source of the error.+--+-- 'errorMessage', 'batchGetDocumentStatusResponseError_errorMessage' - States that the API could not get the status of a document. This could+-- be because the request is not valid or there is a system error.+newBatchGetDocumentStatusResponseError ::+  BatchGetDocumentStatusResponseError+newBatchGetDocumentStatusResponseError =+  BatchGetDocumentStatusResponseError'+    { documentId =+        Prelude.Nothing,+      errorCode = Prelude.Nothing,+      errorMessage = Prelude.Nothing+    }++-- | The identifier of the document whose status could not be retrieved.+batchGetDocumentStatusResponseError_documentId :: Lens.Lens' BatchGetDocumentStatusResponseError (Prelude.Maybe Prelude.Text)+batchGetDocumentStatusResponseError_documentId = Lens.lens (\BatchGetDocumentStatusResponseError' {documentId} -> documentId) (\s@BatchGetDocumentStatusResponseError' {} a -> s {documentId = a} :: BatchGetDocumentStatusResponseError)++-- | Indicates the source of the error.+batchGetDocumentStatusResponseError_errorCode :: Lens.Lens' BatchGetDocumentStatusResponseError (Prelude.Maybe ErrorCode)+batchGetDocumentStatusResponseError_errorCode = Lens.lens (\BatchGetDocumentStatusResponseError' {errorCode} -> errorCode) (\s@BatchGetDocumentStatusResponseError' {} a -> s {errorCode = a} :: BatchGetDocumentStatusResponseError)++-- | States that the API could not get the status of a document. This could+-- be because the request is not valid or there is a system error.+batchGetDocumentStatusResponseError_errorMessage :: Lens.Lens' BatchGetDocumentStatusResponseError (Prelude.Maybe Prelude.Text)+batchGetDocumentStatusResponseError_errorMessage = Lens.lens (\BatchGetDocumentStatusResponseError' {errorMessage} -> errorMessage) (\s@BatchGetDocumentStatusResponseError' {} a -> s {errorMessage = a} :: BatchGetDocumentStatusResponseError)++instance+  Data.FromJSON+    BatchGetDocumentStatusResponseError+  where+  parseJSON =+    Data.withObject+      "BatchGetDocumentStatusResponseError"+      ( \x ->+          BatchGetDocumentStatusResponseError'+            Prelude.<$> (x Data..:? "DocumentId")+            Prelude.<*> (x Data..:? "ErrorCode")+            Prelude.<*> (x Data..:? "ErrorMessage")+      )++instance+  Prelude.Hashable+    BatchGetDocumentStatusResponseError+  where+  hashWithSalt+    _salt+    BatchGetDocumentStatusResponseError' {..} =+      _salt+        `Prelude.hashWithSalt` documentId+        `Prelude.hashWithSalt` errorCode+        `Prelude.hashWithSalt` errorMessage++instance+  Prelude.NFData+    BatchGetDocumentStatusResponseError+  where+  rnf BatchGetDocumentStatusResponseError' {..} =+    Prelude.rnf documentId+      `Prelude.seq` Prelude.rnf errorCode+      `Prelude.seq` Prelude.rnf errorMessage
+ gen/Amazonka/Kendra/Types/BatchPutDocumentResponseFailedDocument.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.BatchPutDocumentResponseFailedDocument+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.BatchPutDocumentResponseFailedDocument where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ErrorCode+import qualified Amazonka.Prelude as Prelude++-- | Provides information about a document that could not be indexed.+--+-- /See:/ 'newBatchPutDocumentResponseFailedDocument' smart constructor.+data BatchPutDocumentResponseFailedDocument = BatchPutDocumentResponseFailedDocument'+  { -- | The type of error that caused the document to fail to be indexed.+    errorCode :: Prelude.Maybe ErrorCode,+    -- | A description of the reason why the document could not be indexed.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the document.+    id :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BatchPutDocumentResponseFailedDocument' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'batchPutDocumentResponseFailedDocument_errorCode' - The type of error that caused the document to fail to be indexed.+--+-- 'errorMessage', 'batchPutDocumentResponseFailedDocument_errorMessage' - A description of the reason why the document could not be indexed.+--+-- 'id', 'batchPutDocumentResponseFailedDocument_id' - The identifier of the document.+newBatchPutDocumentResponseFailedDocument ::+  BatchPutDocumentResponseFailedDocument+newBatchPutDocumentResponseFailedDocument =+  BatchPutDocumentResponseFailedDocument'+    { errorCode =+        Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      id = Prelude.Nothing+    }++-- | The type of error that caused the document to fail to be indexed.+batchPutDocumentResponseFailedDocument_errorCode :: Lens.Lens' BatchPutDocumentResponseFailedDocument (Prelude.Maybe ErrorCode)+batchPutDocumentResponseFailedDocument_errorCode = Lens.lens (\BatchPutDocumentResponseFailedDocument' {errorCode} -> errorCode) (\s@BatchPutDocumentResponseFailedDocument' {} a -> s {errorCode = a} :: BatchPutDocumentResponseFailedDocument)++-- | A description of the reason why the document could not be indexed.+batchPutDocumentResponseFailedDocument_errorMessage :: Lens.Lens' BatchPutDocumentResponseFailedDocument (Prelude.Maybe Prelude.Text)+batchPutDocumentResponseFailedDocument_errorMessage = Lens.lens (\BatchPutDocumentResponseFailedDocument' {errorMessage} -> errorMessage) (\s@BatchPutDocumentResponseFailedDocument' {} a -> s {errorMessage = a} :: BatchPutDocumentResponseFailedDocument)++-- | The identifier of the document.+batchPutDocumentResponseFailedDocument_id :: Lens.Lens' BatchPutDocumentResponseFailedDocument (Prelude.Maybe Prelude.Text)+batchPutDocumentResponseFailedDocument_id = Lens.lens (\BatchPutDocumentResponseFailedDocument' {id} -> id) (\s@BatchPutDocumentResponseFailedDocument' {} a -> s {id = a} :: BatchPutDocumentResponseFailedDocument)++instance+  Data.FromJSON+    BatchPutDocumentResponseFailedDocument+  where+  parseJSON =+    Data.withObject+      "BatchPutDocumentResponseFailedDocument"+      ( \x ->+          BatchPutDocumentResponseFailedDocument'+            Prelude.<$> (x Data..:? "ErrorCode")+            Prelude.<*> (x Data..:? "ErrorMessage")+            Prelude.<*> (x Data..:? "Id")+      )++instance+  Prelude.Hashable+    BatchPutDocumentResponseFailedDocument+  where+  hashWithSalt+    _salt+    BatchPutDocumentResponseFailedDocument' {..} =+      _salt+        `Prelude.hashWithSalt` errorCode+        `Prelude.hashWithSalt` errorMessage+        `Prelude.hashWithSalt` id++instance+  Prelude.NFData+    BatchPutDocumentResponseFailedDocument+  where+  rnf BatchPutDocumentResponseFailedDocument' {..} =+    Prelude.rnf errorCode+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf id
+ gen/Amazonka/Kendra/Types/BoxConfiguration.hs view
@@ -0,0 +1,428 @@+{-# 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.Kendra.Types.BoxConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.BoxConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import Amazonka.Kendra.Types.DataSourceVpcConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to Box as your data+-- source.+--+-- /See:/ 'newBoxConfiguration' smart constructor.+data BoxConfiguration = BoxConfiguration'+  { -- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+    -- field names of Box comments to Amazon Kendra index field names. To+    -- create custom fields, use the @UpdateIndex@ API before you map to Box+    -- fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Box field names must exist in your Box custom metadata.+    commentFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | @TRUE@ to index comments.+    crawlComments :: Prelude.Maybe Prelude.Bool,+    -- | @TRUE@ to index the contents of tasks.+    crawlTasks :: Prelude.Maybe Prelude.Bool,+    -- | @TRUE@ to index web links.+    crawlWebLinks :: Prelude.Maybe Prelude.Bool,+    -- | A list of regular expression patterns to exclude certain files and+    -- folders from your Box platform. Files and folders that match the+    -- patterns are excluded from the index.Files and folders that don\'t match+    -- the patterns are included in the index. If a file or folder matches both+    -- an inclusion and exclusion pattern, the exclusion pattern takes+    -- precedence and the file or folder isn\'t included in the index.+    exclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+    -- field names of Box files to Amazon Kendra index field names. To create+    -- custom fields, use the @UpdateIndex@ API before you map to Box fields.+    -- For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Box field names must exist in your Box custom metadata.+    fileFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of regular expression patterns to include certain files and+    -- folders in your Box platform. Files and folders that match the patterns+    -- are included in the index. Files and folders that don\'t match the+    -- patterns are excluded from the index. If a file or folder matches both+    -- an inclusion and exclusion pattern, the exclusion pattern takes+    -- precedence and the file or folder isn\'t included in the index.+    inclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+    -- field names of Box tasks to Amazon Kendra index field names. To create+    -- custom fields, use the @UpdateIndex@ API before you map to Box fields.+    -- For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Box field names must exist in your Box custom metadata.+    taskFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | @TRUE@ to use the Slack change log to determine which documents require+    -- updating in the index. Depending on the data source change log\'s size,+    -- it may take longer for Amazon Kendra to use the change log than to scan+    -- all of your documents.+    useChangeLog :: Prelude.Maybe Prelude.Bool,+    -- | Configuration information for an Amazon VPC to connect to your Box. For+    -- more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+    vpcConfiguration :: Prelude.Maybe DataSourceVpcConfiguration,+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+    -- field names of Box web links to Amazon Kendra index field names. To+    -- create custom fields, use the @UpdateIndex@ API before you map to Box+    -- fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Box field names must exist in your Box custom metadata.+    webLinkFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | The identifier of the Box Enterprise platform. You can find the+    -- enterprise ID in the Box Developer Console settings or when you create+    -- an app in Box and download your authentication credentials. For example,+    -- /801234567/.+    enterpriseId :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an Secrets Manager secret that+    -- contains the key-value pairs required to connect to your Box platform.+    -- The secret must contain a JSON structure with the following keys:+    --+    -- -   clientID—The identifier of the client OAuth 2.0 authentication+    --     application created in Box.+    --+    -- -   clientSecret—A set of characters known only to the OAuth 2.0+    --     authentication application created in Box.+    --+    -- -   publicKeyId—The identifier of the public key contained within an+    --     identity certificate.+    --+    -- -   privateKey—A set of characters that make up an encryption key.+    --+    -- -   passphrase—A set of characters that act like a password.+    --+    -- You create an application in Box to generate the keys or credentials+    -- required for the secret. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-box.html Using a Box data source>.+    secretArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'BoxConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'commentFieldMappings', 'boxConfiguration_commentFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Box comments to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to Box+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Box field names must exist in your Box custom metadata.+--+-- 'crawlComments', 'boxConfiguration_crawlComments' - @TRUE@ to index comments.+--+-- 'crawlTasks', 'boxConfiguration_crawlTasks' - @TRUE@ to index the contents of tasks.+--+-- 'crawlWebLinks', 'boxConfiguration_crawlWebLinks' - @TRUE@ to index web links.+--+-- 'exclusionPatterns', 'boxConfiguration_exclusionPatterns' - A list of regular expression patterns to exclude certain files and+-- folders from your Box platform. Files and folders that match the+-- patterns are excluded from the index.Files and folders that don\'t match+-- the patterns are included in the index. If a file or folder matches both+-- an inclusion and exclusion pattern, the exclusion pattern takes+-- precedence and the file or folder isn\'t included in the index.+--+-- 'fileFieldMappings', 'boxConfiguration_fileFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Box files to Amazon Kendra index field names. To create+-- custom fields, use the @UpdateIndex@ API before you map to Box fields.+-- For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Box field names must exist in your Box custom metadata.+--+-- 'inclusionPatterns', 'boxConfiguration_inclusionPatterns' - A list of regular expression patterns to include certain files and+-- folders in your Box platform. Files and folders that match the patterns+-- are included in the index. Files and folders that don\'t match the+-- patterns are excluded from the index. If a file or folder matches both+-- an inclusion and exclusion pattern, the exclusion pattern takes+-- precedence and the file or folder isn\'t included in the index.+--+-- 'taskFieldMappings', 'boxConfiguration_taskFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Box tasks to Amazon Kendra index field names. To create+-- custom fields, use the @UpdateIndex@ API before you map to Box fields.+-- For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Box field names must exist in your Box custom metadata.+--+-- 'useChangeLog', 'boxConfiguration_useChangeLog' - @TRUE@ to use the Slack change log to determine which documents require+-- updating in the index. Depending on the data source change log\'s size,+-- it may take longer for Amazon Kendra to use the change log than to scan+-- all of your documents.+--+-- 'vpcConfiguration', 'boxConfiguration_vpcConfiguration' - Configuration information for an Amazon VPC to connect to your Box. For+-- more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+--+-- 'webLinkFieldMappings', 'boxConfiguration_webLinkFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Box web links to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to Box+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Box field names must exist in your Box custom metadata.+--+-- 'enterpriseId', 'boxConfiguration_enterpriseId' - The identifier of the Box Enterprise platform. You can find the+-- enterprise ID in the Box Developer Console settings or when you create+-- an app in Box and download your authentication credentials. For example,+-- /801234567/.+--+-- 'secretArn', 'boxConfiguration_secretArn' - The Amazon Resource Name (ARN) of an Secrets Manager secret that+-- contains the key-value pairs required to connect to your Box platform.+-- The secret must contain a JSON structure with the following keys:+--+-- -   clientID—The identifier of the client OAuth 2.0 authentication+--     application created in Box.+--+-- -   clientSecret—A set of characters known only to the OAuth 2.0+--     authentication application created in Box.+--+-- -   publicKeyId—The identifier of the public key contained within an+--     identity certificate.+--+-- -   privateKey—A set of characters that make up an encryption key.+--+-- -   passphrase—A set of characters that act like a password.+--+-- You create an application in Box to generate the keys or credentials+-- required for the secret. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-box.html Using a Box data source>.+newBoxConfiguration ::+  -- | 'enterpriseId'+  Prelude.Text ->+  -- | 'secretArn'+  Prelude.Text ->+  BoxConfiguration+newBoxConfiguration pEnterpriseId_ pSecretArn_ =+  BoxConfiguration'+    { commentFieldMappings =+        Prelude.Nothing,+      crawlComments = Prelude.Nothing,+      crawlTasks = Prelude.Nothing,+      crawlWebLinks = Prelude.Nothing,+      exclusionPatterns = Prelude.Nothing,+      fileFieldMappings = Prelude.Nothing,+      inclusionPatterns = Prelude.Nothing,+      taskFieldMappings = Prelude.Nothing,+      useChangeLog = Prelude.Nothing,+      vpcConfiguration = Prelude.Nothing,+      webLinkFieldMappings = Prelude.Nothing,+      enterpriseId = pEnterpriseId_,+      secretArn = pSecretArn_+    }++-- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Box comments to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to Box+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Box field names must exist in your Box custom metadata.+boxConfiguration_commentFieldMappings :: Lens.Lens' BoxConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+boxConfiguration_commentFieldMappings = Lens.lens (\BoxConfiguration' {commentFieldMappings} -> commentFieldMappings) (\s@BoxConfiguration' {} a -> s {commentFieldMappings = a} :: BoxConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | @TRUE@ to index comments.+boxConfiguration_crawlComments :: Lens.Lens' BoxConfiguration (Prelude.Maybe Prelude.Bool)+boxConfiguration_crawlComments = Lens.lens (\BoxConfiguration' {crawlComments} -> crawlComments) (\s@BoxConfiguration' {} a -> s {crawlComments = a} :: BoxConfiguration)++-- | @TRUE@ to index the contents of tasks.+boxConfiguration_crawlTasks :: Lens.Lens' BoxConfiguration (Prelude.Maybe Prelude.Bool)+boxConfiguration_crawlTasks = Lens.lens (\BoxConfiguration' {crawlTasks} -> crawlTasks) (\s@BoxConfiguration' {} a -> s {crawlTasks = a} :: BoxConfiguration)++-- | @TRUE@ to index web links.+boxConfiguration_crawlWebLinks :: Lens.Lens' BoxConfiguration (Prelude.Maybe Prelude.Bool)+boxConfiguration_crawlWebLinks = Lens.lens (\BoxConfiguration' {crawlWebLinks} -> crawlWebLinks) (\s@BoxConfiguration' {} a -> s {crawlWebLinks = a} :: BoxConfiguration)++-- | A list of regular expression patterns to exclude certain files and+-- folders from your Box platform. Files and folders that match the+-- patterns are excluded from the index.Files and folders that don\'t match+-- the patterns are included in the index. If a file or folder matches both+-- an inclusion and exclusion pattern, the exclusion pattern takes+-- precedence and the file or folder isn\'t included in the index.+boxConfiguration_exclusionPatterns :: Lens.Lens' BoxConfiguration (Prelude.Maybe [Prelude.Text])+boxConfiguration_exclusionPatterns = Lens.lens (\BoxConfiguration' {exclusionPatterns} -> exclusionPatterns) (\s@BoxConfiguration' {} a -> s {exclusionPatterns = a} :: BoxConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Box files to Amazon Kendra index field names. To create+-- custom fields, use the @UpdateIndex@ API before you map to Box fields.+-- For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Box field names must exist in your Box custom metadata.+boxConfiguration_fileFieldMappings :: Lens.Lens' BoxConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+boxConfiguration_fileFieldMappings = Lens.lens (\BoxConfiguration' {fileFieldMappings} -> fileFieldMappings) (\s@BoxConfiguration' {} a -> s {fileFieldMappings = a} :: BoxConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to include certain files and+-- folders in your Box platform. Files and folders that match the patterns+-- are included in the index. Files and folders that don\'t match the+-- patterns are excluded from the index. If a file or folder matches both+-- an inclusion and exclusion pattern, the exclusion pattern takes+-- precedence and the file or folder isn\'t included in the index.+boxConfiguration_inclusionPatterns :: Lens.Lens' BoxConfiguration (Prelude.Maybe [Prelude.Text])+boxConfiguration_inclusionPatterns = Lens.lens (\BoxConfiguration' {inclusionPatterns} -> inclusionPatterns) (\s@BoxConfiguration' {} a -> s {inclusionPatterns = a} :: BoxConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Box tasks to Amazon Kendra index field names. To create+-- custom fields, use the @UpdateIndex@ API before you map to Box fields.+-- For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Box field names must exist in your Box custom metadata.+boxConfiguration_taskFieldMappings :: Lens.Lens' BoxConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+boxConfiguration_taskFieldMappings = Lens.lens (\BoxConfiguration' {taskFieldMappings} -> taskFieldMappings) (\s@BoxConfiguration' {} a -> s {taskFieldMappings = a} :: BoxConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | @TRUE@ to use the Slack change log to determine which documents require+-- updating in the index. Depending on the data source change log\'s size,+-- it may take longer for Amazon Kendra to use the change log than to scan+-- all of your documents.+boxConfiguration_useChangeLog :: Lens.Lens' BoxConfiguration (Prelude.Maybe Prelude.Bool)+boxConfiguration_useChangeLog = Lens.lens (\BoxConfiguration' {useChangeLog} -> useChangeLog) (\s@BoxConfiguration' {} a -> s {useChangeLog = a} :: BoxConfiguration)++-- | Configuration information for an Amazon VPC to connect to your Box. For+-- more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+boxConfiguration_vpcConfiguration :: Lens.Lens' BoxConfiguration (Prelude.Maybe DataSourceVpcConfiguration)+boxConfiguration_vpcConfiguration = Lens.lens (\BoxConfiguration' {vpcConfiguration} -> vpcConfiguration) (\s@BoxConfiguration' {} a -> s {vpcConfiguration = a} :: BoxConfiguration)++-- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Box web links to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to Box+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Box field names must exist in your Box custom metadata.+boxConfiguration_webLinkFieldMappings :: Lens.Lens' BoxConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+boxConfiguration_webLinkFieldMappings = Lens.lens (\BoxConfiguration' {webLinkFieldMappings} -> webLinkFieldMappings) (\s@BoxConfiguration' {} a -> s {webLinkFieldMappings = a} :: BoxConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The identifier of the Box Enterprise platform. You can find the+-- enterprise ID in the Box Developer Console settings or when you create+-- an app in Box and download your authentication credentials. For example,+-- /801234567/.+boxConfiguration_enterpriseId :: Lens.Lens' BoxConfiguration Prelude.Text+boxConfiguration_enterpriseId = Lens.lens (\BoxConfiguration' {enterpriseId} -> enterpriseId) (\s@BoxConfiguration' {} a -> s {enterpriseId = a} :: BoxConfiguration)++-- | The Amazon Resource Name (ARN) of an Secrets Manager secret that+-- contains the key-value pairs required to connect to your Box platform.+-- The secret must contain a JSON structure with the following keys:+--+-- -   clientID—The identifier of the client OAuth 2.0 authentication+--     application created in Box.+--+-- -   clientSecret—A set of characters known only to the OAuth 2.0+--     authentication application created in Box.+--+-- -   publicKeyId—The identifier of the public key contained within an+--     identity certificate.+--+-- -   privateKey—A set of characters that make up an encryption key.+--+-- -   passphrase—A set of characters that act like a password.+--+-- You create an application in Box to generate the keys or credentials+-- required for the secret. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-box.html Using a Box data source>.+boxConfiguration_secretArn :: Lens.Lens' BoxConfiguration Prelude.Text+boxConfiguration_secretArn = Lens.lens (\BoxConfiguration' {secretArn} -> secretArn) (\s@BoxConfiguration' {} a -> s {secretArn = a} :: BoxConfiguration)++instance Data.FromJSON BoxConfiguration where+  parseJSON =+    Data.withObject+      "BoxConfiguration"+      ( \x ->+          BoxConfiguration'+            Prelude.<$> (x Data..:? "CommentFieldMappings")+            Prelude.<*> (x Data..:? "CrawlComments")+            Prelude.<*> (x Data..:? "CrawlTasks")+            Prelude.<*> (x Data..:? "CrawlWebLinks")+            Prelude.<*> ( x+                            Data..:? "ExclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "FileFieldMappings")+            Prelude.<*> ( x+                            Data..:? "InclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "TaskFieldMappings")+            Prelude.<*> (x Data..:? "UseChangeLog")+            Prelude.<*> (x Data..:? "VpcConfiguration")+            Prelude.<*> (x Data..:? "WebLinkFieldMappings")+            Prelude.<*> (x Data..: "EnterpriseId")+            Prelude.<*> (x Data..: "SecretArn")+      )++instance Prelude.Hashable BoxConfiguration where+  hashWithSalt _salt BoxConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` commentFieldMappings+      `Prelude.hashWithSalt` crawlComments+      `Prelude.hashWithSalt` crawlTasks+      `Prelude.hashWithSalt` crawlWebLinks+      `Prelude.hashWithSalt` exclusionPatterns+      `Prelude.hashWithSalt` fileFieldMappings+      `Prelude.hashWithSalt` inclusionPatterns+      `Prelude.hashWithSalt` taskFieldMappings+      `Prelude.hashWithSalt` useChangeLog+      `Prelude.hashWithSalt` vpcConfiguration+      `Prelude.hashWithSalt` webLinkFieldMappings+      `Prelude.hashWithSalt` enterpriseId+      `Prelude.hashWithSalt` secretArn++instance Prelude.NFData BoxConfiguration where+  rnf BoxConfiguration' {..} =+    Prelude.rnf commentFieldMappings+      `Prelude.seq` Prelude.rnf crawlComments+      `Prelude.seq` Prelude.rnf crawlTasks+      `Prelude.seq` Prelude.rnf crawlWebLinks+      `Prelude.seq` Prelude.rnf exclusionPatterns+      `Prelude.seq` Prelude.rnf fileFieldMappings+      `Prelude.seq` Prelude.rnf inclusionPatterns+      `Prelude.seq` Prelude.rnf taskFieldMappings+      `Prelude.seq` Prelude.rnf useChangeLog+      `Prelude.seq` Prelude.rnf vpcConfiguration+      `Prelude.seq` Prelude.rnf webLinkFieldMappings+      `Prelude.seq` Prelude.rnf enterpriseId+      `Prelude.seq` Prelude.rnf secretArn++instance Data.ToJSON BoxConfiguration where+  toJSON BoxConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CommentFieldMappings" Data..=)+              Prelude.<$> commentFieldMappings,+            ("CrawlComments" Data..=) Prelude.<$> crawlComments,+            ("CrawlTasks" Data..=) Prelude.<$> crawlTasks,+            ("CrawlWebLinks" Data..=) Prelude.<$> crawlWebLinks,+            ("ExclusionPatterns" Data..=)+              Prelude.<$> exclusionPatterns,+            ("FileFieldMappings" Data..=)+              Prelude.<$> fileFieldMappings,+            ("InclusionPatterns" Data..=)+              Prelude.<$> inclusionPatterns,+            ("TaskFieldMappings" Data..=)+              Prelude.<$> taskFieldMappings,+            ("UseChangeLog" Data..=) Prelude.<$> useChangeLog,+            ("VpcConfiguration" Data..=)+              Prelude.<$> vpcConfiguration,+            ("WebLinkFieldMappings" Data..=)+              Prelude.<$> webLinkFieldMappings,+            Prelude.Just ("EnterpriseId" Data..= enterpriseId),+            Prelude.Just ("SecretArn" Data..= secretArn)+          ]+      )
+ gen/Amazonka/Kendra/Types/CapacityUnitsConfiguration.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.Kendra.Types.CapacityUnitsConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.CapacityUnitsConfiguration 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 additional capacity units configured for your Enterprise+-- Edition index. You can add and remove capacity units to fit your usage+-- requirements.+--+-- /See:/ 'newCapacityUnitsConfiguration' smart constructor.+data CapacityUnitsConfiguration = CapacityUnitsConfiguration'+  { -- | The amount of extra storage capacity for an index. A single capacity+    -- unit provides 30 GB of storage space or 100,000 documents, whichever is+    -- reached first. You can add up to 100 extra capacity units.+    storageCapacityUnits :: Prelude.Natural,+    -- | The amount of extra query capacity for an index and+    -- <https://docs.aws.amazon.com/kendra/latest/dg/API_GetQuerySuggestions.html GetQuerySuggestions>+    -- capacity.+    --+    -- A single extra capacity unit for an index provides 0.1 queries per+    -- second or approximately 8,000 queries per day. You can add up to 100+    -- extra capacity units.+    --+    -- @GetQuerySuggestions@ capacity is five times the provisioned query+    -- capacity for an index, or the base capacity of 2.5 calls per second,+    -- whichever is higher. For example, the base capacity for an index is 0.1+    -- queries per second, and @GetQuerySuggestions@ capacity has a base of 2.5+    -- calls per second. If you add another 0.1 queries per second to total 0.2+    -- queries per second for an index, the @GetQuerySuggestions@ capacity is+    -- 2.5 calls per second (higher than five times 0.2 queries per second).+    queryCapacityUnits :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CapacityUnitsConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'storageCapacityUnits', 'capacityUnitsConfiguration_storageCapacityUnits' - The amount of extra storage capacity for an index. A single capacity+-- unit provides 30 GB of storage space or 100,000 documents, whichever is+-- reached first. You can add up to 100 extra capacity units.+--+-- 'queryCapacityUnits', 'capacityUnitsConfiguration_queryCapacityUnits' - The amount of extra query capacity for an index and+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_GetQuerySuggestions.html GetQuerySuggestions>+-- capacity.+--+-- A single extra capacity unit for an index provides 0.1 queries per+-- second or approximately 8,000 queries per day. You can add up to 100+-- extra capacity units.+--+-- @GetQuerySuggestions@ capacity is five times the provisioned query+-- capacity for an index, or the base capacity of 2.5 calls per second,+-- whichever is higher. For example, the base capacity for an index is 0.1+-- queries per second, and @GetQuerySuggestions@ capacity has a base of 2.5+-- calls per second. If you add another 0.1 queries per second to total 0.2+-- queries per second for an index, the @GetQuerySuggestions@ capacity is+-- 2.5 calls per second (higher than five times 0.2 queries per second).+newCapacityUnitsConfiguration ::+  -- | 'storageCapacityUnits'+  Prelude.Natural ->+  -- | 'queryCapacityUnits'+  Prelude.Natural ->+  CapacityUnitsConfiguration+newCapacityUnitsConfiguration+  pStorageCapacityUnits_+  pQueryCapacityUnits_ =+    CapacityUnitsConfiguration'+      { storageCapacityUnits =+          pStorageCapacityUnits_,+        queryCapacityUnits = pQueryCapacityUnits_+      }++-- | The amount of extra storage capacity for an index. A single capacity+-- unit provides 30 GB of storage space or 100,000 documents, whichever is+-- reached first. You can add up to 100 extra capacity units.+capacityUnitsConfiguration_storageCapacityUnits :: Lens.Lens' CapacityUnitsConfiguration Prelude.Natural+capacityUnitsConfiguration_storageCapacityUnits = Lens.lens (\CapacityUnitsConfiguration' {storageCapacityUnits} -> storageCapacityUnits) (\s@CapacityUnitsConfiguration' {} a -> s {storageCapacityUnits = a} :: CapacityUnitsConfiguration)++-- | The amount of extra query capacity for an index and+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_GetQuerySuggestions.html GetQuerySuggestions>+-- capacity.+--+-- A single extra capacity unit for an index provides 0.1 queries per+-- second or approximately 8,000 queries per day. You can add up to 100+-- extra capacity units.+--+-- @GetQuerySuggestions@ capacity is five times the provisioned query+-- capacity for an index, or the base capacity of 2.5 calls per second,+-- whichever is higher. For example, the base capacity for an index is 0.1+-- queries per second, and @GetQuerySuggestions@ capacity has a base of 2.5+-- calls per second. If you add another 0.1 queries per second to total 0.2+-- queries per second for an index, the @GetQuerySuggestions@ capacity is+-- 2.5 calls per second (higher than five times 0.2 queries per second).+capacityUnitsConfiguration_queryCapacityUnits :: Lens.Lens' CapacityUnitsConfiguration Prelude.Natural+capacityUnitsConfiguration_queryCapacityUnits = Lens.lens (\CapacityUnitsConfiguration' {queryCapacityUnits} -> queryCapacityUnits) (\s@CapacityUnitsConfiguration' {} a -> s {queryCapacityUnits = a} :: CapacityUnitsConfiguration)++instance Data.FromJSON CapacityUnitsConfiguration where+  parseJSON =+    Data.withObject+      "CapacityUnitsConfiguration"+      ( \x ->+          CapacityUnitsConfiguration'+            Prelude.<$> (x Data..: "StorageCapacityUnits")+            Prelude.<*> (x Data..: "QueryCapacityUnits")+      )++instance Prelude.Hashable CapacityUnitsConfiguration where+  hashWithSalt _salt CapacityUnitsConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` storageCapacityUnits+      `Prelude.hashWithSalt` queryCapacityUnits++instance Prelude.NFData CapacityUnitsConfiguration where+  rnf CapacityUnitsConfiguration' {..} =+    Prelude.rnf storageCapacityUnits+      `Prelude.seq` Prelude.rnf queryCapacityUnits++instance Data.ToJSON CapacityUnitsConfiguration where+  toJSON CapacityUnitsConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "StorageCapacityUnits"+                  Data..= storageCapacityUnits+              ),+            Prelude.Just+              ("QueryCapacityUnits" Data..= queryCapacityUnits)+          ]+      )
+ gen/Amazonka/Kendra/Types/ClickFeedback.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.Kendra.Types.ClickFeedback+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ClickFeedback 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++-- | Gathers information about when a particular result was clicked by a+-- user. Your application uses the @SubmitFeedback@ API to provide click+-- information.+--+-- /See:/ 'newClickFeedback' smart constructor.+data ClickFeedback = ClickFeedback'+  { -- | The identifier of the search result that was clicked.+    resultId :: Prelude.Text,+    -- | The Unix timestamp of the date and time that the result was clicked.+    clickTime :: Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ClickFeedback' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resultId', 'clickFeedback_resultId' - The identifier of the search result that was clicked.+--+-- 'clickTime', 'clickFeedback_clickTime' - The Unix timestamp of the date and time that the result was clicked.+newClickFeedback ::+  -- | 'resultId'+  Prelude.Text ->+  -- | 'clickTime'+  Prelude.UTCTime ->+  ClickFeedback+newClickFeedback pResultId_ pClickTime_ =+  ClickFeedback'+    { resultId = pResultId_,+      clickTime = Data._Time Lens.# pClickTime_+    }++-- | The identifier of the search result that was clicked.+clickFeedback_resultId :: Lens.Lens' ClickFeedback Prelude.Text+clickFeedback_resultId = Lens.lens (\ClickFeedback' {resultId} -> resultId) (\s@ClickFeedback' {} a -> s {resultId = a} :: ClickFeedback)++-- | The Unix timestamp of the date and time that the result was clicked.+clickFeedback_clickTime :: Lens.Lens' ClickFeedback Prelude.UTCTime+clickFeedback_clickTime = Lens.lens (\ClickFeedback' {clickTime} -> clickTime) (\s@ClickFeedback' {} a -> s {clickTime = a} :: ClickFeedback) Prelude.. Data._Time++instance Prelude.Hashable ClickFeedback where+  hashWithSalt _salt ClickFeedback' {..} =+    _salt+      `Prelude.hashWithSalt` resultId+      `Prelude.hashWithSalt` clickTime++instance Prelude.NFData ClickFeedback where+  rnf ClickFeedback' {..} =+    Prelude.rnf resultId+      `Prelude.seq` Prelude.rnf clickTime++instance Data.ToJSON ClickFeedback where+  toJSON ClickFeedback' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("ResultId" Data..= resultId),+            Prelude.Just ("ClickTime" Data..= clickTime)+          ]+      )
+ gen/Amazonka/Kendra/Types/ColumnConfiguration.hs view
@@ -0,0 +1,164 @@+{-# 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.Kendra.Types.ColumnConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ColumnConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import qualified Amazonka.Prelude as Prelude++-- | Provides information about how Amazon Kendra should use the columns of a+-- database in an index.+--+-- /See:/ 'newColumnConfiguration' smart constructor.+data ColumnConfiguration = ColumnConfiguration'+  { -- | The column that contains the title of the document.+    documentTitleColumnName :: Prelude.Maybe Prelude.Text,+    -- | An array of objects that map database column names to the corresponding+    -- fields in an index. You must first create the fields in the index using+    -- the @UpdateIndex@ API.+    fieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | The column that provides the document\'s identifier.+    documentIdColumnName :: Prelude.Text,+    -- | The column that contains the contents of the document.+    documentDataColumnName :: Prelude.Text,+    -- | One to five columns that indicate when a document in the database has+    -- changed.+    changeDetectingColumns :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ColumnConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'documentTitleColumnName', 'columnConfiguration_documentTitleColumnName' - The column that contains the title of the document.+--+-- 'fieldMappings', 'columnConfiguration_fieldMappings' - An array of objects that map database column names to the corresponding+-- fields in an index. You must first create the fields in the index using+-- the @UpdateIndex@ API.+--+-- 'documentIdColumnName', 'columnConfiguration_documentIdColumnName' - The column that provides the document\'s identifier.+--+-- 'documentDataColumnName', 'columnConfiguration_documentDataColumnName' - The column that contains the contents of the document.+--+-- 'changeDetectingColumns', 'columnConfiguration_changeDetectingColumns' - One to five columns that indicate when a document in the database has+-- changed.+newColumnConfiguration ::+  -- | 'documentIdColumnName'+  Prelude.Text ->+  -- | 'documentDataColumnName'+  Prelude.Text ->+  -- | 'changeDetectingColumns'+  Prelude.NonEmpty Prelude.Text ->+  ColumnConfiguration+newColumnConfiguration+  pDocumentIdColumnName_+  pDocumentDataColumnName_+  pChangeDetectingColumns_ =+    ColumnConfiguration'+      { documentTitleColumnName =+          Prelude.Nothing,+        fieldMappings = Prelude.Nothing,+        documentIdColumnName = pDocumentIdColumnName_,+        documentDataColumnName = pDocumentDataColumnName_,+        changeDetectingColumns =+          Lens.coerced Lens.# pChangeDetectingColumns_+      }++-- | The column that contains the title of the document.+columnConfiguration_documentTitleColumnName :: Lens.Lens' ColumnConfiguration (Prelude.Maybe Prelude.Text)+columnConfiguration_documentTitleColumnName = Lens.lens (\ColumnConfiguration' {documentTitleColumnName} -> documentTitleColumnName) (\s@ColumnConfiguration' {} a -> s {documentTitleColumnName = a} :: ColumnConfiguration)++-- | An array of objects that map database column names to the corresponding+-- fields in an index. You must first create the fields in the index using+-- the @UpdateIndex@ API.+columnConfiguration_fieldMappings :: Lens.Lens' ColumnConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+columnConfiguration_fieldMappings = Lens.lens (\ColumnConfiguration' {fieldMappings} -> fieldMappings) (\s@ColumnConfiguration' {} a -> s {fieldMappings = a} :: ColumnConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The column that provides the document\'s identifier.+columnConfiguration_documentIdColumnName :: Lens.Lens' ColumnConfiguration Prelude.Text+columnConfiguration_documentIdColumnName = Lens.lens (\ColumnConfiguration' {documentIdColumnName} -> documentIdColumnName) (\s@ColumnConfiguration' {} a -> s {documentIdColumnName = a} :: ColumnConfiguration)++-- | The column that contains the contents of the document.+columnConfiguration_documentDataColumnName :: Lens.Lens' ColumnConfiguration Prelude.Text+columnConfiguration_documentDataColumnName = Lens.lens (\ColumnConfiguration' {documentDataColumnName} -> documentDataColumnName) (\s@ColumnConfiguration' {} a -> s {documentDataColumnName = a} :: ColumnConfiguration)++-- | One to five columns that indicate when a document in the database has+-- changed.+columnConfiguration_changeDetectingColumns :: Lens.Lens' ColumnConfiguration (Prelude.NonEmpty Prelude.Text)+columnConfiguration_changeDetectingColumns = Lens.lens (\ColumnConfiguration' {changeDetectingColumns} -> changeDetectingColumns) (\s@ColumnConfiguration' {} a -> s {changeDetectingColumns = a} :: ColumnConfiguration) Prelude.. Lens.coerced++instance Data.FromJSON ColumnConfiguration where+  parseJSON =+    Data.withObject+      "ColumnConfiguration"+      ( \x ->+          ColumnConfiguration'+            Prelude.<$> (x Data..:? "DocumentTitleColumnName")+            Prelude.<*> (x Data..:? "FieldMappings")+            Prelude.<*> (x Data..: "DocumentIdColumnName")+            Prelude.<*> (x Data..: "DocumentDataColumnName")+            Prelude.<*> (x Data..: "ChangeDetectingColumns")+      )++instance Prelude.Hashable ColumnConfiguration where+  hashWithSalt _salt ColumnConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` documentTitleColumnName+      `Prelude.hashWithSalt` fieldMappings+      `Prelude.hashWithSalt` documentIdColumnName+      `Prelude.hashWithSalt` documentDataColumnName+      `Prelude.hashWithSalt` changeDetectingColumns++instance Prelude.NFData ColumnConfiguration where+  rnf ColumnConfiguration' {..} =+    Prelude.rnf documentTitleColumnName+      `Prelude.seq` Prelude.rnf fieldMappings+      `Prelude.seq` Prelude.rnf documentIdColumnName+      `Prelude.seq` Prelude.rnf documentDataColumnName+      `Prelude.seq` Prelude.rnf changeDetectingColumns++instance Data.ToJSON ColumnConfiguration where+  toJSON ColumnConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DocumentTitleColumnName" Data..=)+              Prelude.<$> documentTitleColumnName,+            ("FieldMappings" Data..=) Prelude.<$> fieldMappings,+            Prelude.Just+              ( "DocumentIdColumnName"+                  Data..= documentIdColumnName+              ),+            Prelude.Just+              ( "DocumentDataColumnName"+                  Data..= documentDataColumnName+              ),+            Prelude.Just+              ( "ChangeDetectingColumns"+                  Data..= changeDetectingColumns+              )+          ]+      )
+ gen/Amazonka/Kendra/Types/ConditionOperator.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.ConditionOperator+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ConditionOperator+  ( ConditionOperator+      ( ..,+        ConditionOperator_BeginsWith,+        ConditionOperator_Contains,+        ConditionOperator_Equals,+        ConditionOperator_Exists,+        ConditionOperator_GreaterThan,+        ConditionOperator_GreaterThanOrEquals,+        ConditionOperator_LessThan,+        ConditionOperator_LessThanOrEquals,+        ConditionOperator_NotContains,+        ConditionOperator_NotEquals,+        ConditionOperator_NotExists+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ConditionOperator = ConditionOperator'+  { fromConditionOperator ::+      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 ConditionOperator_BeginsWith :: ConditionOperator+pattern ConditionOperator_BeginsWith = ConditionOperator' "BeginsWith"++pattern ConditionOperator_Contains :: ConditionOperator+pattern ConditionOperator_Contains = ConditionOperator' "Contains"++pattern ConditionOperator_Equals :: ConditionOperator+pattern ConditionOperator_Equals = ConditionOperator' "Equals"++pattern ConditionOperator_Exists :: ConditionOperator+pattern ConditionOperator_Exists = ConditionOperator' "Exists"++pattern ConditionOperator_GreaterThan :: ConditionOperator+pattern ConditionOperator_GreaterThan = ConditionOperator' "GreaterThan"++pattern ConditionOperator_GreaterThanOrEquals :: ConditionOperator+pattern ConditionOperator_GreaterThanOrEquals = ConditionOperator' "GreaterThanOrEquals"++pattern ConditionOperator_LessThan :: ConditionOperator+pattern ConditionOperator_LessThan = ConditionOperator' "LessThan"++pattern ConditionOperator_LessThanOrEquals :: ConditionOperator+pattern ConditionOperator_LessThanOrEquals = ConditionOperator' "LessThanOrEquals"++pattern ConditionOperator_NotContains :: ConditionOperator+pattern ConditionOperator_NotContains = ConditionOperator' "NotContains"++pattern ConditionOperator_NotEquals :: ConditionOperator+pattern ConditionOperator_NotEquals = ConditionOperator' "NotEquals"++pattern ConditionOperator_NotExists :: ConditionOperator+pattern ConditionOperator_NotExists = ConditionOperator' "NotExists"++{-# COMPLETE+  ConditionOperator_BeginsWith,+  ConditionOperator_Contains,+  ConditionOperator_Equals,+  ConditionOperator_Exists,+  ConditionOperator_GreaterThan,+  ConditionOperator_GreaterThanOrEquals,+  ConditionOperator_LessThan,+  ConditionOperator_LessThanOrEquals,+  ConditionOperator_NotContains,+  ConditionOperator_NotEquals,+  ConditionOperator_NotExists,+  ConditionOperator'+  #-}
+ gen/Amazonka/Kendra/Types/ConfluenceAttachmentConfiguration.hs view
@@ -0,0 +1,137 @@+{-# 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.Kendra.Types.ConfluenceAttachmentConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ConfluenceAttachmentConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ConfluenceAttachmentToIndexFieldMapping+import qualified Amazonka.Prelude as Prelude++-- | Configuration of attachment settings for the Confluence data source.+-- Attachment settings are optional, if you don\'t specify settings+-- attachments, Amazon Kendra won\'t index them.+--+-- /See:/ 'newConfluenceAttachmentConfiguration' smart constructor.+data ConfluenceAttachmentConfiguration = ConfluenceAttachmentConfiguration'+  { -- | Maps attributes or field names of Confluence attachments to Amazon+    -- Kendra index field names. To create custom fields, use the @UpdateIndex@+    -- API before you map to Confluence fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Confluence data source field names must exist in your Confluence+    -- custom metadata.+    --+    -- If you specify the @AttachentFieldMappings@ parameter, you must specify+    -- at least one field mapping.+    attachmentFieldMappings :: Prelude.Maybe (Prelude.NonEmpty ConfluenceAttachmentToIndexFieldMapping),+    -- | @TRUE@ to index attachments of pages and blogs in Confluence.+    crawlAttachments :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfluenceAttachmentConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attachmentFieldMappings', 'confluenceAttachmentConfiguration_attachmentFieldMappings' - Maps attributes or field names of Confluence attachments to Amazon+-- Kendra index field names. To create custom fields, use the @UpdateIndex@+-- API before you map to Confluence fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Confluence data source field names must exist in your Confluence+-- custom metadata.+--+-- If you specify the @AttachentFieldMappings@ parameter, you must specify+-- at least one field mapping.+--+-- 'crawlAttachments', 'confluenceAttachmentConfiguration_crawlAttachments' - @TRUE@ to index attachments of pages and blogs in Confluence.+newConfluenceAttachmentConfiguration ::+  ConfluenceAttachmentConfiguration+newConfluenceAttachmentConfiguration =+  ConfluenceAttachmentConfiguration'+    { attachmentFieldMappings =+        Prelude.Nothing,+      crawlAttachments = Prelude.Nothing+    }++-- | Maps attributes or field names of Confluence attachments to Amazon+-- Kendra index field names. To create custom fields, use the @UpdateIndex@+-- API before you map to Confluence fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Confluence data source field names must exist in your Confluence+-- custom metadata.+--+-- If you specify the @AttachentFieldMappings@ parameter, you must specify+-- at least one field mapping.+confluenceAttachmentConfiguration_attachmentFieldMappings :: Lens.Lens' ConfluenceAttachmentConfiguration (Prelude.Maybe (Prelude.NonEmpty ConfluenceAttachmentToIndexFieldMapping))+confluenceAttachmentConfiguration_attachmentFieldMappings = Lens.lens (\ConfluenceAttachmentConfiguration' {attachmentFieldMappings} -> attachmentFieldMappings) (\s@ConfluenceAttachmentConfiguration' {} a -> s {attachmentFieldMappings = a} :: ConfluenceAttachmentConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | @TRUE@ to index attachments of pages and blogs in Confluence.+confluenceAttachmentConfiguration_crawlAttachments :: Lens.Lens' ConfluenceAttachmentConfiguration (Prelude.Maybe Prelude.Bool)+confluenceAttachmentConfiguration_crawlAttachments = Lens.lens (\ConfluenceAttachmentConfiguration' {crawlAttachments} -> crawlAttachments) (\s@ConfluenceAttachmentConfiguration' {} a -> s {crawlAttachments = a} :: ConfluenceAttachmentConfiguration)++instance+  Data.FromJSON+    ConfluenceAttachmentConfiguration+  where+  parseJSON =+    Data.withObject+      "ConfluenceAttachmentConfiguration"+      ( \x ->+          ConfluenceAttachmentConfiguration'+            Prelude.<$> (x Data..:? "AttachmentFieldMappings")+            Prelude.<*> (x Data..:? "CrawlAttachments")+      )++instance+  Prelude.Hashable+    ConfluenceAttachmentConfiguration+  where+  hashWithSalt+    _salt+    ConfluenceAttachmentConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` attachmentFieldMappings+        `Prelude.hashWithSalt` crawlAttachments++instance+  Prelude.NFData+    ConfluenceAttachmentConfiguration+  where+  rnf ConfluenceAttachmentConfiguration' {..} =+    Prelude.rnf attachmentFieldMappings+      `Prelude.seq` Prelude.rnf crawlAttachments++instance+  Data.ToJSON+    ConfluenceAttachmentConfiguration+  where+  toJSON ConfluenceAttachmentConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AttachmentFieldMappings" Data..=)+              Prelude.<$> attachmentFieldMappings,+            ("CrawlAttachments" Data..=)+              Prelude.<$> crawlAttachments+          ]+      )
+ gen/Amazonka/Kendra/Types/ConfluenceAttachmentFieldName.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.ConfluenceAttachmentFieldName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ConfluenceAttachmentFieldName+  ( ConfluenceAttachmentFieldName+      ( ..,+        ConfluenceAttachmentFieldName_AUTHOR,+        ConfluenceAttachmentFieldName_CONTENT_TYPE,+        ConfluenceAttachmentFieldName_CREATED_DATE,+        ConfluenceAttachmentFieldName_DISPLAY_URL,+        ConfluenceAttachmentFieldName_FILE_SIZE,+        ConfluenceAttachmentFieldName_ITEM_TYPE,+        ConfluenceAttachmentFieldName_PARENT_ID,+        ConfluenceAttachmentFieldName_SPACE_KEY,+        ConfluenceAttachmentFieldName_SPACE_NAME,+        ConfluenceAttachmentFieldName_URL,+        ConfluenceAttachmentFieldName_VERSION+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ConfluenceAttachmentFieldName = ConfluenceAttachmentFieldName'+  { fromConfluenceAttachmentFieldName ::+      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 ConfluenceAttachmentFieldName_AUTHOR :: ConfluenceAttachmentFieldName+pattern ConfluenceAttachmentFieldName_AUTHOR = ConfluenceAttachmentFieldName' "AUTHOR"++pattern ConfluenceAttachmentFieldName_CONTENT_TYPE :: ConfluenceAttachmentFieldName+pattern ConfluenceAttachmentFieldName_CONTENT_TYPE = ConfluenceAttachmentFieldName' "CONTENT_TYPE"++pattern ConfluenceAttachmentFieldName_CREATED_DATE :: ConfluenceAttachmentFieldName+pattern ConfluenceAttachmentFieldName_CREATED_DATE = ConfluenceAttachmentFieldName' "CREATED_DATE"++pattern ConfluenceAttachmentFieldName_DISPLAY_URL :: ConfluenceAttachmentFieldName+pattern ConfluenceAttachmentFieldName_DISPLAY_URL = ConfluenceAttachmentFieldName' "DISPLAY_URL"++pattern ConfluenceAttachmentFieldName_FILE_SIZE :: ConfluenceAttachmentFieldName+pattern ConfluenceAttachmentFieldName_FILE_SIZE = ConfluenceAttachmentFieldName' "FILE_SIZE"++pattern ConfluenceAttachmentFieldName_ITEM_TYPE :: ConfluenceAttachmentFieldName+pattern ConfluenceAttachmentFieldName_ITEM_TYPE = ConfluenceAttachmentFieldName' "ITEM_TYPE"++pattern ConfluenceAttachmentFieldName_PARENT_ID :: ConfluenceAttachmentFieldName+pattern ConfluenceAttachmentFieldName_PARENT_ID = ConfluenceAttachmentFieldName' "PARENT_ID"++pattern ConfluenceAttachmentFieldName_SPACE_KEY :: ConfluenceAttachmentFieldName+pattern ConfluenceAttachmentFieldName_SPACE_KEY = ConfluenceAttachmentFieldName' "SPACE_KEY"++pattern ConfluenceAttachmentFieldName_SPACE_NAME :: ConfluenceAttachmentFieldName+pattern ConfluenceAttachmentFieldName_SPACE_NAME = ConfluenceAttachmentFieldName' "SPACE_NAME"++pattern ConfluenceAttachmentFieldName_URL :: ConfluenceAttachmentFieldName+pattern ConfluenceAttachmentFieldName_URL = ConfluenceAttachmentFieldName' "URL"++pattern ConfluenceAttachmentFieldName_VERSION :: ConfluenceAttachmentFieldName+pattern ConfluenceAttachmentFieldName_VERSION = ConfluenceAttachmentFieldName' "VERSION"++{-# COMPLETE+  ConfluenceAttachmentFieldName_AUTHOR,+  ConfluenceAttachmentFieldName_CONTENT_TYPE,+  ConfluenceAttachmentFieldName_CREATED_DATE,+  ConfluenceAttachmentFieldName_DISPLAY_URL,+  ConfluenceAttachmentFieldName_FILE_SIZE,+  ConfluenceAttachmentFieldName_ITEM_TYPE,+  ConfluenceAttachmentFieldName_PARENT_ID,+  ConfluenceAttachmentFieldName_SPACE_KEY,+  ConfluenceAttachmentFieldName_SPACE_NAME,+  ConfluenceAttachmentFieldName_URL,+  ConfluenceAttachmentFieldName_VERSION,+  ConfluenceAttachmentFieldName'+  #-}
+ gen/Amazonka/Kendra/Types/ConfluenceAttachmentToIndexFieldMapping.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.ConfluenceAttachmentToIndexFieldMapping+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ConfluenceAttachmentToIndexFieldMapping where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ConfluenceAttachmentFieldName+import qualified Amazonka.Prelude as Prelude++-- | Maps attributes or field names of Confluence attachments to Amazon+-- Kendra index field names. To create custom fields, use the @UpdateIndex@+-- API before you map to Confluence fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Confuence data source field names must exist in your Confluence+-- custom metadata.+--+-- /See:/ 'newConfluenceAttachmentToIndexFieldMapping' smart constructor.+data ConfluenceAttachmentToIndexFieldMapping = ConfluenceAttachmentToIndexFieldMapping'+  { -- | The name of the field in the data source.+    --+    -- You must first create the index field using the @UpdateIndex@ API.+    dataSourceFieldName :: Prelude.Maybe ConfluenceAttachmentFieldName,+    -- | The format for date fields in the data source. If the field specified in+    -- @DataSourceFieldName@ is a date field you must specify the date format.+    -- If the field is not a date field, an exception is thrown.+    dateFieldFormat :: Prelude.Maybe Prelude.Text,+    -- | The name of the index field to map to the Confluence data source field.+    -- The index field type must match the Confluence field type.+    indexFieldName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfluenceAttachmentToIndexFieldMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSourceFieldName', 'confluenceAttachmentToIndexFieldMapping_dataSourceFieldName' - The name of the field in the data source.+--+-- You must first create the index field using the @UpdateIndex@ API.+--+-- 'dateFieldFormat', 'confluenceAttachmentToIndexFieldMapping_dateFieldFormat' - The format for date fields in the data source. If the field specified in+-- @DataSourceFieldName@ is a date field you must specify the date format.+-- If the field is not a date field, an exception is thrown.+--+-- 'indexFieldName', 'confluenceAttachmentToIndexFieldMapping_indexFieldName' - The name of the index field to map to the Confluence data source field.+-- The index field type must match the Confluence field type.+newConfluenceAttachmentToIndexFieldMapping ::+  ConfluenceAttachmentToIndexFieldMapping+newConfluenceAttachmentToIndexFieldMapping =+  ConfluenceAttachmentToIndexFieldMapping'+    { dataSourceFieldName =+        Prelude.Nothing,+      dateFieldFormat = Prelude.Nothing,+      indexFieldName = Prelude.Nothing+    }++-- | The name of the field in the data source.+--+-- You must first create the index field using the @UpdateIndex@ API.+confluenceAttachmentToIndexFieldMapping_dataSourceFieldName :: Lens.Lens' ConfluenceAttachmentToIndexFieldMapping (Prelude.Maybe ConfluenceAttachmentFieldName)+confluenceAttachmentToIndexFieldMapping_dataSourceFieldName = Lens.lens (\ConfluenceAttachmentToIndexFieldMapping' {dataSourceFieldName} -> dataSourceFieldName) (\s@ConfluenceAttachmentToIndexFieldMapping' {} a -> s {dataSourceFieldName = a} :: ConfluenceAttachmentToIndexFieldMapping)++-- | The format for date fields in the data source. If the field specified in+-- @DataSourceFieldName@ is a date field you must specify the date format.+-- If the field is not a date field, an exception is thrown.+confluenceAttachmentToIndexFieldMapping_dateFieldFormat :: Lens.Lens' ConfluenceAttachmentToIndexFieldMapping (Prelude.Maybe Prelude.Text)+confluenceAttachmentToIndexFieldMapping_dateFieldFormat = Lens.lens (\ConfluenceAttachmentToIndexFieldMapping' {dateFieldFormat} -> dateFieldFormat) (\s@ConfluenceAttachmentToIndexFieldMapping' {} a -> s {dateFieldFormat = a} :: ConfluenceAttachmentToIndexFieldMapping)++-- | The name of the index field to map to the Confluence data source field.+-- The index field type must match the Confluence field type.+confluenceAttachmentToIndexFieldMapping_indexFieldName :: Lens.Lens' ConfluenceAttachmentToIndexFieldMapping (Prelude.Maybe Prelude.Text)+confluenceAttachmentToIndexFieldMapping_indexFieldName = Lens.lens (\ConfluenceAttachmentToIndexFieldMapping' {indexFieldName} -> indexFieldName) (\s@ConfluenceAttachmentToIndexFieldMapping' {} a -> s {indexFieldName = a} :: ConfluenceAttachmentToIndexFieldMapping)++instance+  Data.FromJSON+    ConfluenceAttachmentToIndexFieldMapping+  where+  parseJSON =+    Data.withObject+      "ConfluenceAttachmentToIndexFieldMapping"+      ( \x ->+          ConfluenceAttachmentToIndexFieldMapping'+            Prelude.<$> (x Data..:? "DataSourceFieldName")+            Prelude.<*> (x Data..:? "DateFieldFormat")+            Prelude.<*> (x Data..:? "IndexFieldName")+      )++instance+  Prelude.Hashable+    ConfluenceAttachmentToIndexFieldMapping+  where+  hashWithSalt+    _salt+    ConfluenceAttachmentToIndexFieldMapping' {..} =+      _salt+        `Prelude.hashWithSalt` dataSourceFieldName+        `Prelude.hashWithSalt` dateFieldFormat+        `Prelude.hashWithSalt` indexFieldName++instance+  Prelude.NFData+    ConfluenceAttachmentToIndexFieldMapping+  where+  rnf ConfluenceAttachmentToIndexFieldMapping' {..} =+    Prelude.rnf dataSourceFieldName+      `Prelude.seq` Prelude.rnf dateFieldFormat+      `Prelude.seq` Prelude.rnf indexFieldName++instance+  Data.ToJSON+    ConfluenceAttachmentToIndexFieldMapping+  where+  toJSON ConfluenceAttachmentToIndexFieldMapping' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataSourceFieldName" Data..=)+              Prelude.<$> dataSourceFieldName,+            ("DateFieldFormat" Data..=)+              Prelude.<$> dateFieldFormat,+            ("IndexFieldName" Data..=)+              Prelude.<$> indexFieldName+          ]+      )
+ gen/Amazonka/Kendra/Types/ConfluenceAuthenticationType.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.Kendra.Types.ConfluenceAuthenticationType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ConfluenceAuthenticationType+  ( ConfluenceAuthenticationType+      ( ..,+        ConfluenceAuthenticationType_HTTP_BASIC,+        ConfluenceAuthenticationType_PAT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ConfluenceAuthenticationType = ConfluenceAuthenticationType'+  { fromConfluenceAuthenticationType ::+      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 ConfluenceAuthenticationType_HTTP_BASIC :: ConfluenceAuthenticationType+pattern ConfluenceAuthenticationType_HTTP_BASIC = ConfluenceAuthenticationType' "HTTP_BASIC"++pattern ConfluenceAuthenticationType_PAT :: ConfluenceAuthenticationType+pattern ConfluenceAuthenticationType_PAT = ConfluenceAuthenticationType' "PAT"++{-# COMPLETE+  ConfluenceAuthenticationType_HTTP_BASIC,+  ConfluenceAuthenticationType_PAT,+  ConfluenceAuthenticationType'+  #-}
+ gen/Amazonka/Kendra/Types/ConfluenceBlogConfiguration.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.Kendra.Types.ConfluenceBlogConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ConfluenceBlogConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ConfluenceBlogToIndexFieldMapping+import qualified Amazonka.Prelude as Prelude++-- | Configuration of blog settings for the Confluence data source. Blogs are+-- always indexed unless filtered from the index by the @ExclusionPatterns@+-- or @InclusionPatterns@ fields in the @ConfluenceConfiguration@ object.+--+-- /See:/ 'newConfluenceBlogConfiguration' smart constructor.+data ConfluenceBlogConfiguration = ConfluenceBlogConfiguration'+  { -- | Maps attributes or field names of Confluence blogs to Amazon Kendra+    -- index field names. To create custom fields, use the @UpdateIndex@ API+    -- before you map to Confluence fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Confluence data source field names must exist in your Confluence+    -- custom metadata.+    --+    -- If you specify the @BlogFieldMappings@ parameter, you must specify at+    -- least one field mapping.+    blogFieldMappings :: Prelude.Maybe (Prelude.NonEmpty ConfluenceBlogToIndexFieldMapping)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfluenceBlogConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'blogFieldMappings', 'confluenceBlogConfiguration_blogFieldMappings' - Maps attributes or field names of Confluence blogs to Amazon Kendra+-- index field names. To create custom fields, use the @UpdateIndex@ API+-- before you map to Confluence fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Confluence data source field names must exist in your Confluence+-- custom metadata.+--+-- If you specify the @BlogFieldMappings@ parameter, you must specify at+-- least one field mapping.+newConfluenceBlogConfiguration ::+  ConfluenceBlogConfiguration+newConfluenceBlogConfiguration =+  ConfluenceBlogConfiguration'+    { blogFieldMappings =+        Prelude.Nothing+    }++-- | Maps attributes or field names of Confluence blogs to Amazon Kendra+-- index field names. To create custom fields, use the @UpdateIndex@ API+-- before you map to Confluence fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Confluence data source field names must exist in your Confluence+-- custom metadata.+--+-- If you specify the @BlogFieldMappings@ parameter, you must specify at+-- least one field mapping.+confluenceBlogConfiguration_blogFieldMappings :: Lens.Lens' ConfluenceBlogConfiguration (Prelude.Maybe (Prelude.NonEmpty ConfluenceBlogToIndexFieldMapping))+confluenceBlogConfiguration_blogFieldMappings = Lens.lens (\ConfluenceBlogConfiguration' {blogFieldMappings} -> blogFieldMappings) (\s@ConfluenceBlogConfiguration' {} a -> s {blogFieldMappings = a} :: ConfluenceBlogConfiguration) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ConfluenceBlogConfiguration where+  parseJSON =+    Data.withObject+      "ConfluenceBlogConfiguration"+      ( \x ->+          ConfluenceBlogConfiguration'+            Prelude.<$> (x Data..:? "BlogFieldMappings")+      )++instance Prelude.Hashable ConfluenceBlogConfiguration where+  hashWithSalt _salt ConfluenceBlogConfiguration' {..} =+    _salt `Prelude.hashWithSalt` blogFieldMappings++instance Prelude.NFData ConfluenceBlogConfiguration where+  rnf ConfluenceBlogConfiguration' {..} =+    Prelude.rnf blogFieldMappings++instance Data.ToJSON ConfluenceBlogConfiguration where+  toJSON ConfluenceBlogConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("BlogFieldMappings" Data..=)+              Prelude.<$> blogFieldMappings+          ]+      )
+ gen/Amazonka/Kendra/Types/ConfluenceBlogFieldName.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.Kendra.Types.ConfluenceBlogFieldName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ConfluenceBlogFieldName+  ( ConfluenceBlogFieldName+      ( ..,+        ConfluenceBlogFieldName_AUTHOR,+        ConfluenceBlogFieldName_DISPLAY_URL,+        ConfluenceBlogFieldName_ITEM_TYPE,+        ConfluenceBlogFieldName_LABELS,+        ConfluenceBlogFieldName_PUBLISH_DATE,+        ConfluenceBlogFieldName_SPACE_KEY,+        ConfluenceBlogFieldName_SPACE_NAME,+        ConfluenceBlogFieldName_URL,+        ConfluenceBlogFieldName_VERSION+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ConfluenceBlogFieldName = ConfluenceBlogFieldName'+  { fromConfluenceBlogFieldName ::+      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 ConfluenceBlogFieldName_AUTHOR :: ConfluenceBlogFieldName+pattern ConfluenceBlogFieldName_AUTHOR = ConfluenceBlogFieldName' "AUTHOR"++pattern ConfluenceBlogFieldName_DISPLAY_URL :: ConfluenceBlogFieldName+pattern ConfluenceBlogFieldName_DISPLAY_URL = ConfluenceBlogFieldName' "DISPLAY_URL"++pattern ConfluenceBlogFieldName_ITEM_TYPE :: ConfluenceBlogFieldName+pattern ConfluenceBlogFieldName_ITEM_TYPE = ConfluenceBlogFieldName' "ITEM_TYPE"++pattern ConfluenceBlogFieldName_LABELS :: ConfluenceBlogFieldName+pattern ConfluenceBlogFieldName_LABELS = ConfluenceBlogFieldName' "LABELS"++pattern ConfluenceBlogFieldName_PUBLISH_DATE :: ConfluenceBlogFieldName+pattern ConfluenceBlogFieldName_PUBLISH_DATE = ConfluenceBlogFieldName' "PUBLISH_DATE"++pattern ConfluenceBlogFieldName_SPACE_KEY :: ConfluenceBlogFieldName+pattern ConfluenceBlogFieldName_SPACE_KEY = ConfluenceBlogFieldName' "SPACE_KEY"++pattern ConfluenceBlogFieldName_SPACE_NAME :: ConfluenceBlogFieldName+pattern ConfluenceBlogFieldName_SPACE_NAME = ConfluenceBlogFieldName' "SPACE_NAME"++pattern ConfluenceBlogFieldName_URL :: ConfluenceBlogFieldName+pattern ConfluenceBlogFieldName_URL = ConfluenceBlogFieldName' "URL"++pattern ConfluenceBlogFieldName_VERSION :: ConfluenceBlogFieldName+pattern ConfluenceBlogFieldName_VERSION = ConfluenceBlogFieldName' "VERSION"++{-# COMPLETE+  ConfluenceBlogFieldName_AUTHOR,+  ConfluenceBlogFieldName_DISPLAY_URL,+  ConfluenceBlogFieldName_ITEM_TYPE,+  ConfluenceBlogFieldName_LABELS,+  ConfluenceBlogFieldName_PUBLISH_DATE,+  ConfluenceBlogFieldName_SPACE_KEY,+  ConfluenceBlogFieldName_SPACE_NAME,+  ConfluenceBlogFieldName_URL,+  ConfluenceBlogFieldName_VERSION,+  ConfluenceBlogFieldName'+  #-}
+ gen/Amazonka/Kendra/Types/ConfluenceBlogToIndexFieldMapping.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.Kendra.Types.ConfluenceBlogToIndexFieldMapping+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ConfluenceBlogToIndexFieldMapping where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ConfluenceBlogFieldName+import qualified Amazonka.Prelude as Prelude++-- | Maps attributes or field names of Confluence blog to Amazon Kendra index+-- field names. To create custom fields, use the @UpdateIndex@ API before+-- you map to Confluence fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Confluence data source field names must exist in your Confluence+-- custom metadata.+--+-- /See:/ 'newConfluenceBlogToIndexFieldMapping' smart constructor.+data ConfluenceBlogToIndexFieldMapping = ConfluenceBlogToIndexFieldMapping'+  { -- | The name of the field in the data source.+    dataSourceFieldName :: Prelude.Maybe ConfluenceBlogFieldName,+    -- | The format for date fields in the data source. If the field specified in+    -- @DataSourceFieldName@ is a date field you must specify the date format.+    -- If the field is not a date field, an exception is thrown.+    dateFieldFormat :: Prelude.Maybe Prelude.Text,+    -- | The name of the index field to map to the Confluence data source field.+    -- The index field type must match the Confluence field type.+    indexFieldName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfluenceBlogToIndexFieldMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSourceFieldName', 'confluenceBlogToIndexFieldMapping_dataSourceFieldName' - The name of the field in the data source.+--+-- 'dateFieldFormat', 'confluenceBlogToIndexFieldMapping_dateFieldFormat' - The format for date fields in the data source. If the field specified in+-- @DataSourceFieldName@ is a date field you must specify the date format.+-- If the field is not a date field, an exception is thrown.+--+-- 'indexFieldName', 'confluenceBlogToIndexFieldMapping_indexFieldName' - The name of the index field to map to the Confluence data source field.+-- The index field type must match the Confluence field type.+newConfluenceBlogToIndexFieldMapping ::+  ConfluenceBlogToIndexFieldMapping+newConfluenceBlogToIndexFieldMapping =+  ConfluenceBlogToIndexFieldMapping'+    { dataSourceFieldName =+        Prelude.Nothing,+      dateFieldFormat = Prelude.Nothing,+      indexFieldName = Prelude.Nothing+    }++-- | The name of the field in the data source.+confluenceBlogToIndexFieldMapping_dataSourceFieldName :: Lens.Lens' ConfluenceBlogToIndexFieldMapping (Prelude.Maybe ConfluenceBlogFieldName)+confluenceBlogToIndexFieldMapping_dataSourceFieldName = Lens.lens (\ConfluenceBlogToIndexFieldMapping' {dataSourceFieldName} -> dataSourceFieldName) (\s@ConfluenceBlogToIndexFieldMapping' {} a -> s {dataSourceFieldName = a} :: ConfluenceBlogToIndexFieldMapping)++-- | The format for date fields in the data source. If the field specified in+-- @DataSourceFieldName@ is a date field you must specify the date format.+-- If the field is not a date field, an exception is thrown.+confluenceBlogToIndexFieldMapping_dateFieldFormat :: Lens.Lens' ConfluenceBlogToIndexFieldMapping (Prelude.Maybe Prelude.Text)+confluenceBlogToIndexFieldMapping_dateFieldFormat = Lens.lens (\ConfluenceBlogToIndexFieldMapping' {dateFieldFormat} -> dateFieldFormat) (\s@ConfluenceBlogToIndexFieldMapping' {} a -> s {dateFieldFormat = a} :: ConfluenceBlogToIndexFieldMapping)++-- | The name of the index field to map to the Confluence data source field.+-- The index field type must match the Confluence field type.+confluenceBlogToIndexFieldMapping_indexFieldName :: Lens.Lens' ConfluenceBlogToIndexFieldMapping (Prelude.Maybe Prelude.Text)+confluenceBlogToIndexFieldMapping_indexFieldName = Lens.lens (\ConfluenceBlogToIndexFieldMapping' {indexFieldName} -> indexFieldName) (\s@ConfluenceBlogToIndexFieldMapping' {} a -> s {indexFieldName = a} :: ConfluenceBlogToIndexFieldMapping)++instance+  Data.FromJSON+    ConfluenceBlogToIndexFieldMapping+  where+  parseJSON =+    Data.withObject+      "ConfluenceBlogToIndexFieldMapping"+      ( \x ->+          ConfluenceBlogToIndexFieldMapping'+            Prelude.<$> (x Data..:? "DataSourceFieldName")+            Prelude.<*> (x Data..:? "DateFieldFormat")+            Prelude.<*> (x Data..:? "IndexFieldName")+      )++instance+  Prelude.Hashable+    ConfluenceBlogToIndexFieldMapping+  where+  hashWithSalt+    _salt+    ConfluenceBlogToIndexFieldMapping' {..} =+      _salt+        `Prelude.hashWithSalt` dataSourceFieldName+        `Prelude.hashWithSalt` dateFieldFormat+        `Prelude.hashWithSalt` indexFieldName++instance+  Prelude.NFData+    ConfluenceBlogToIndexFieldMapping+  where+  rnf ConfluenceBlogToIndexFieldMapping' {..} =+    Prelude.rnf dataSourceFieldName+      `Prelude.seq` Prelude.rnf dateFieldFormat+      `Prelude.seq` Prelude.rnf indexFieldName++instance+  Data.ToJSON+    ConfluenceBlogToIndexFieldMapping+  where+  toJSON ConfluenceBlogToIndexFieldMapping' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataSourceFieldName" Data..=)+              Prelude.<$> dataSourceFieldName,+            ("DateFieldFormat" Data..=)+              Prelude.<$> dateFieldFormat,+            ("IndexFieldName" Data..=)+              Prelude.<$> indexFieldName+          ]+      )
+ gen/Amazonka/Kendra/Types/ConfluenceConfiguration.hs view
@@ -0,0 +1,383 @@+{-# 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.Kendra.Types.ConfluenceConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ConfluenceConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ConfluenceAttachmentConfiguration+import Amazonka.Kendra.Types.ConfluenceAuthenticationType+import Amazonka.Kendra.Types.ConfluenceBlogConfiguration+import Amazonka.Kendra.Types.ConfluencePageConfiguration+import Amazonka.Kendra.Types.ConfluenceSpaceConfiguration+import Amazonka.Kendra.Types.ConfluenceVersion+import Amazonka.Kendra.Types.DataSourceVpcConfiguration+import Amazonka.Kendra.Types.ProxyConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to Confluence as your+-- data source.+--+-- /See:/ 'newConfluenceConfiguration' smart constructor.+data ConfluenceConfiguration = ConfluenceConfiguration'+  { -- | Configuration information for indexing attachments to Confluence blogs+    -- and pages.+    attachmentConfiguration :: Prelude.Maybe ConfluenceAttachmentConfiguration,+    -- | Whether you want to connect to Confluence using basic authentication of+    -- user name and password, or a personal access token. You can use a+    -- personal access token for Confluence Server.+    authenticationType :: Prelude.Maybe ConfluenceAuthenticationType,+    -- | Configuration information for indexing Confluence blogs.+    blogConfiguration :: Prelude.Maybe ConfluenceBlogConfiguration,+    -- | A list of regular expression patterns to exclude certain blog posts,+    -- pages, spaces, or attachments in your Confluence. Content that matches+    -- the patterns are excluded from the index. Content that doesn\'t match+    -- the patterns is included in the index. If content matches both an+    -- inclusion and exclusion pattern, the exclusion pattern takes precedence+    -- and the content isn\'t included in the index.+    exclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of regular expression patterns to include certain blog posts,+    -- pages, spaces, or attachments in your Confluence. Content that matches+    -- the patterns are included in the index. Content that doesn\'t match the+    -- patterns is excluded from the index. If content matches both an+    -- inclusion and exclusion pattern, the exclusion pattern takes precedence+    -- and the content isn\'t included in the index.+    inclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | Configuration information for indexing Confluence pages.+    pageConfiguration :: Prelude.Maybe ConfluencePageConfiguration,+    -- | Configuration information to connect to your Confluence URL instance via+    -- a web proxy. You can use this option for Confluence Server.+    --+    -- You must provide the website host name and port number. For example, the+    -- host name of /https:\/\/a.example.com\/page1.html/ is \"a.example.com\"+    -- and the port is 443, the standard port for HTTPS.+    --+    -- Web proxy credentials are optional and you can use them to connect to a+    -- web proxy server that requires basic authentication of user name and+    -- password. To store web proxy credentials, you use a secret in Secrets+    -- Manager.+    --+    -- It is recommended that you follow best security practices when+    -- configuring your web proxy. This includes setting up throttling, setting+    -- up logging and monitoring, and applying security patches on a regular+    -- basis. If you use your web proxy with multiple data sources, sync jobs+    -- that occur at the same time could strain the load on your proxy. It is+    -- recommended you prepare your proxy beforehand for any security and load+    -- requirements.+    proxyConfiguration :: Prelude.Maybe ProxyConfiguration,+    -- | Configuration information for indexing Confluence spaces.+    spaceConfiguration :: Prelude.Maybe ConfluenceSpaceConfiguration,+    -- | Configuration information for an Amazon Virtual Private Cloud to connect+    -- to your Confluence. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+    vpcConfiguration :: Prelude.Maybe DataSourceVpcConfiguration,+    -- | The URL of your Confluence instance. Use the full URL of the server. For+    -- example, /https:\/\/server.example.com:port\//. You can also use an IP+    -- address, for example, /https:\/\/192.168.1.113\//.+    serverUrl :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an Secrets Manager secret that+    -- contains the user name and password required to connect to the+    -- Confluence instance. If you use Confluence Cloud, you use a generated+    -- API token as the password.+    --+    -- You can also provide authentication credentials in the form of a+    -- personal access token. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-confluence.html Using a Confluence data source>.+    secretArn :: Prelude.Text,+    -- | The version or the type of Confluence installation to connect to.+    version :: ConfluenceVersion+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfluenceConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attachmentConfiguration', 'confluenceConfiguration_attachmentConfiguration' - Configuration information for indexing attachments to Confluence blogs+-- and pages.+--+-- 'authenticationType', 'confluenceConfiguration_authenticationType' - Whether you want to connect to Confluence using basic authentication of+-- user name and password, or a personal access token. You can use a+-- personal access token for Confluence Server.+--+-- 'blogConfiguration', 'confluenceConfiguration_blogConfiguration' - Configuration information for indexing Confluence blogs.+--+-- 'exclusionPatterns', 'confluenceConfiguration_exclusionPatterns' - A list of regular expression patterns to exclude certain blog posts,+-- pages, spaces, or attachments in your Confluence. Content that matches+-- the patterns are excluded from the index. Content that doesn\'t match+-- the patterns is included in the index. If content matches both an+-- inclusion and exclusion pattern, the exclusion pattern takes precedence+-- and the content isn\'t included in the index.+--+-- 'inclusionPatterns', 'confluenceConfiguration_inclusionPatterns' - A list of regular expression patterns to include certain blog posts,+-- pages, spaces, or attachments in your Confluence. Content that matches+-- the patterns are included in the index. Content that doesn\'t match the+-- patterns is excluded from the index. If content matches both an+-- inclusion and exclusion pattern, the exclusion pattern takes precedence+-- and the content isn\'t included in the index.+--+-- 'pageConfiguration', 'confluenceConfiguration_pageConfiguration' - Configuration information for indexing Confluence pages.+--+-- 'proxyConfiguration', 'confluenceConfiguration_proxyConfiguration' - Configuration information to connect to your Confluence URL instance via+-- a web proxy. You can use this option for Confluence Server.+--+-- You must provide the website host name and port number. For example, the+-- host name of /https:\/\/a.example.com\/page1.html/ is \"a.example.com\"+-- and the port is 443, the standard port for HTTPS.+--+-- Web proxy credentials are optional and you can use them to connect to a+-- web proxy server that requires basic authentication of user name and+-- password. To store web proxy credentials, you use a secret in Secrets+-- Manager.+--+-- It is recommended that you follow best security practices when+-- configuring your web proxy. This includes setting up throttling, setting+-- up logging and monitoring, and applying security patches on a regular+-- basis. If you use your web proxy with multiple data sources, sync jobs+-- that occur at the same time could strain the load on your proxy. It is+-- recommended you prepare your proxy beforehand for any security and load+-- requirements.+--+-- 'spaceConfiguration', 'confluenceConfiguration_spaceConfiguration' - Configuration information for indexing Confluence spaces.+--+-- 'vpcConfiguration', 'confluenceConfiguration_vpcConfiguration' - Configuration information for an Amazon Virtual Private Cloud to connect+-- to your Confluence. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+--+-- 'serverUrl', 'confluenceConfiguration_serverUrl' - The URL of your Confluence instance. Use the full URL of the server. For+-- example, /https:\/\/server.example.com:port\//. You can also use an IP+-- address, for example, /https:\/\/192.168.1.113\//.+--+-- 'secretArn', 'confluenceConfiguration_secretArn' - The Amazon Resource Name (ARN) of an Secrets Manager secret that+-- contains the user name and password required to connect to the+-- Confluence instance. If you use Confluence Cloud, you use a generated+-- API token as the password.+--+-- You can also provide authentication credentials in the form of a+-- personal access token. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-confluence.html Using a Confluence data source>.+--+-- 'version', 'confluenceConfiguration_version' - The version or the type of Confluence installation to connect to.+newConfluenceConfiguration ::+  -- | 'serverUrl'+  Prelude.Text ->+  -- | 'secretArn'+  Prelude.Text ->+  -- | 'version'+  ConfluenceVersion ->+  ConfluenceConfiguration+newConfluenceConfiguration+  pServerUrl_+  pSecretArn_+  pVersion_ =+    ConfluenceConfiguration'+      { attachmentConfiguration =+          Prelude.Nothing,+        authenticationType = Prelude.Nothing,+        blogConfiguration = Prelude.Nothing,+        exclusionPatterns = Prelude.Nothing,+        inclusionPatterns = Prelude.Nothing,+        pageConfiguration = Prelude.Nothing,+        proxyConfiguration = Prelude.Nothing,+        spaceConfiguration = Prelude.Nothing,+        vpcConfiguration = Prelude.Nothing,+        serverUrl = pServerUrl_,+        secretArn = pSecretArn_,+        version = pVersion_+      }++-- | Configuration information for indexing attachments to Confluence blogs+-- and pages.+confluenceConfiguration_attachmentConfiguration :: Lens.Lens' ConfluenceConfiguration (Prelude.Maybe ConfluenceAttachmentConfiguration)+confluenceConfiguration_attachmentConfiguration = Lens.lens (\ConfluenceConfiguration' {attachmentConfiguration} -> attachmentConfiguration) (\s@ConfluenceConfiguration' {} a -> s {attachmentConfiguration = a} :: ConfluenceConfiguration)++-- | Whether you want to connect to Confluence using basic authentication of+-- user name and password, or a personal access token. You can use a+-- personal access token for Confluence Server.+confluenceConfiguration_authenticationType :: Lens.Lens' ConfluenceConfiguration (Prelude.Maybe ConfluenceAuthenticationType)+confluenceConfiguration_authenticationType = Lens.lens (\ConfluenceConfiguration' {authenticationType} -> authenticationType) (\s@ConfluenceConfiguration' {} a -> s {authenticationType = a} :: ConfluenceConfiguration)++-- | Configuration information for indexing Confluence blogs.+confluenceConfiguration_blogConfiguration :: Lens.Lens' ConfluenceConfiguration (Prelude.Maybe ConfluenceBlogConfiguration)+confluenceConfiguration_blogConfiguration = Lens.lens (\ConfluenceConfiguration' {blogConfiguration} -> blogConfiguration) (\s@ConfluenceConfiguration' {} a -> s {blogConfiguration = a} :: ConfluenceConfiguration)++-- | A list of regular expression patterns to exclude certain blog posts,+-- pages, spaces, or attachments in your Confluence. Content that matches+-- the patterns are excluded from the index. Content that doesn\'t match+-- the patterns is included in the index. If content matches both an+-- inclusion and exclusion pattern, the exclusion pattern takes precedence+-- and the content isn\'t included in the index.+confluenceConfiguration_exclusionPatterns :: Lens.Lens' ConfluenceConfiguration (Prelude.Maybe [Prelude.Text])+confluenceConfiguration_exclusionPatterns = Lens.lens (\ConfluenceConfiguration' {exclusionPatterns} -> exclusionPatterns) (\s@ConfluenceConfiguration' {} a -> s {exclusionPatterns = a} :: ConfluenceConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to include certain blog posts,+-- pages, spaces, or attachments in your Confluence. Content that matches+-- the patterns are included in the index. Content that doesn\'t match the+-- patterns is excluded from the index. If content matches both an+-- inclusion and exclusion pattern, the exclusion pattern takes precedence+-- and the content isn\'t included in the index.+confluenceConfiguration_inclusionPatterns :: Lens.Lens' ConfluenceConfiguration (Prelude.Maybe [Prelude.Text])+confluenceConfiguration_inclusionPatterns = Lens.lens (\ConfluenceConfiguration' {inclusionPatterns} -> inclusionPatterns) (\s@ConfluenceConfiguration' {} a -> s {inclusionPatterns = a} :: ConfluenceConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Configuration information for indexing Confluence pages.+confluenceConfiguration_pageConfiguration :: Lens.Lens' ConfluenceConfiguration (Prelude.Maybe ConfluencePageConfiguration)+confluenceConfiguration_pageConfiguration = Lens.lens (\ConfluenceConfiguration' {pageConfiguration} -> pageConfiguration) (\s@ConfluenceConfiguration' {} a -> s {pageConfiguration = a} :: ConfluenceConfiguration)++-- | Configuration information to connect to your Confluence URL instance via+-- a web proxy. You can use this option for Confluence Server.+--+-- You must provide the website host name and port number. For example, the+-- host name of /https:\/\/a.example.com\/page1.html/ is \"a.example.com\"+-- and the port is 443, the standard port for HTTPS.+--+-- Web proxy credentials are optional and you can use them to connect to a+-- web proxy server that requires basic authentication of user name and+-- password. To store web proxy credentials, you use a secret in Secrets+-- Manager.+--+-- It is recommended that you follow best security practices when+-- configuring your web proxy. This includes setting up throttling, setting+-- up logging and monitoring, and applying security patches on a regular+-- basis. If you use your web proxy with multiple data sources, sync jobs+-- that occur at the same time could strain the load on your proxy. It is+-- recommended you prepare your proxy beforehand for any security and load+-- requirements.+confluenceConfiguration_proxyConfiguration :: Lens.Lens' ConfluenceConfiguration (Prelude.Maybe ProxyConfiguration)+confluenceConfiguration_proxyConfiguration = Lens.lens (\ConfluenceConfiguration' {proxyConfiguration} -> proxyConfiguration) (\s@ConfluenceConfiguration' {} a -> s {proxyConfiguration = a} :: ConfluenceConfiguration)++-- | Configuration information for indexing Confluence spaces.+confluenceConfiguration_spaceConfiguration :: Lens.Lens' ConfluenceConfiguration (Prelude.Maybe ConfluenceSpaceConfiguration)+confluenceConfiguration_spaceConfiguration = Lens.lens (\ConfluenceConfiguration' {spaceConfiguration} -> spaceConfiguration) (\s@ConfluenceConfiguration' {} a -> s {spaceConfiguration = a} :: ConfluenceConfiguration)++-- | Configuration information for an Amazon Virtual Private Cloud to connect+-- to your Confluence. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+confluenceConfiguration_vpcConfiguration :: Lens.Lens' ConfluenceConfiguration (Prelude.Maybe DataSourceVpcConfiguration)+confluenceConfiguration_vpcConfiguration = Lens.lens (\ConfluenceConfiguration' {vpcConfiguration} -> vpcConfiguration) (\s@ConfluenceConfiguration' {} a -> s {vpcConfiguration = a} :: ConfluenceConfiguration)++-- | The URL of your Confluence instance. Use the full URL of the server. For+-- example, /https:\/\/server.example.com:port\//. You can also use an IP+-- address, for example, /https:\/\/192.168.1.113\//.+confluenceConfiguration_serverUrl :: Lens.Lens' ConfluenceConfiguration Prelude.Text+confluenceConfiguration_serverUrl = Lens.lens (\ConfluenceConfiguration' {serverUrl} -> serverUrl) (\s@ConfluenceConfiguration' {} a -> s {serverUrl = a} :: ConfluenceConfiguration)++-- | The Amazon Resource Name (ARN) of an Secrets Manager secret that+-- contains the user name and password required to connect to the+-- Confluence instance. If you use Confluence Cloud, you use a generated+-- API token as the password.+--+-- You can also provide authentication credentials in the form of a+-- personal access token. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-confluence.html Using a Confluence data source>.+confluenceConfiguration_secretArn :: Lens.Lens' ConfluenceConfiguration Prelude.Text+confluenceConfiguration_secretArn = Lens.lens (\ConfluenceConfiguration' {secretArn} -> secretArn) (\s@ConfluenceConfiguration' {} a -> s {secretArn = a} :: ConfluenceConfiguration)++-- | The version or the type of Confluence installation to connect to.+confluenceConfiguration_version :: Lens.Lens' ConfluenceConfiguration ConfluenceVersion+confluenceConfiguration_version = Lens.lens (\ConfluenceConfiguration' {version} -> version) (\s@ConfluenceConfiguration' {} a -> s {version = a} :: ConfluenceConfiguration)++instance Data.FromJSON ConfluenceConfiguration where+  parseJSON =+    Data.withObject+      "ConfluenceConfiguration"+      ( \x ->+          ConfluenceConfiguration'+            Prelude.<$> (x Data..:? "AttachmentConfiguration")+            Prelude.<*> (x Data..:? "AuthenticationType")+            Prelude.<*> (x Data..:? "BlogConfiguration")+            Prelude.<*> ( x+                            Data..:? "ExclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "InclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "PageConfiguration")+            Prelude.<*> (x Data..:? "ProxyConfiguration")+            Prelude.<*> (x Data..:? "SpaceConfiguration")+            Prelude.<*> (x Data..:? "VpcConfiguration")+            Prelude.<*> (x Data..: "ServerUrl")+            Prelude.<*> (x Data..: "SecretArn")+            Prelude.<*> (x Data..: "Version")+      )++instance Prelude.Hashable ConfluenceConfiguration where+  hashWithSalt _salt ConfluenceConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` attachmentConfiguration+      `Prelude.hashWithSalt` authenticationType+      `Prelude.hashWithSalt` blogConfiguration+      `Prelude.hashWithSalt` exclusionPatterns+      `Prelude.hashWithSalt` inclusionPatterns+      `Prelude.hashWithSalt` pageConfiguration+      `Prelude.hashWithSalt` proxyConfiguration+      `Prelude.hashWithSalt` spaceConfiguration+      `Prelude.hashWithSalt` vpcConfiguration+      `Prelude.hashWithSalt` serverUrl+      `Prelude.hashWithSalt` secretArn+      `Prelude.hashWithSalt` version++instance Prelude.NFData ConfluenceConfiguration where+  rnf ConfluenceConfiguration' {..} =+    Prelude.rnf attachmentConfiguration+      `Prelude.seq` Prelude.rnf authenticationType+      `Prelude.seq` Prelude.rnf blogConfiguration+      `Prelude.seq` Prelude.rnf exclusionPatterns+      `Prelude.seq` Prelude.rnf inclusionPatterns+      `Prelude.seq` Prelude.rnf pageConfiguration+      `Prelude.seq` Prelude.rnf proxyConfiguration+      `Prelude.seq` Prelude.rnf spaceConfiguration+      `Prelude.seq` Prelude.rnf vpcConfiguration+      `Prelude.seq` Prelude.rnf serverUrl+      `Prelude.seq` Prelude.rnf secretArn+      `Prelude.seq` Prelude.rnf version++instance Data.ToJSON ConfluenceConfiguration where+  toJSON ConfluenceConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AttachmentConfiguration" Data..=)+              Prelude.<$> attachmentConfiguration,+            ("AuthenticationType" Data..=)+              Prelude.<$> authenticationType,+            ("BlogConfiguration" Data..=)+              Prelude.<$> blogConfiguration,+            ("ExclusionPatterns" Data..=)+              Prelude.<$> exclusionPatterns,+            ("InclusionPatterns" Data..=)+              Prelude.<$> inclusionPatterns,+            ("PageConfiguration" Data..=)+              Prelude.<$> pageConfiguration,+            ("ProxyConfiguration" Data..=)+              Prelude.<$> proxyConfiguration,+            ("SpaceConfiguration" Data..=)+              Prelude.<$> spaceConfiguration,+            ("VpcConfiguration" Data..=)+              Prelude.<$> vpcConfiguration,+            Prelude.Just ("ServerUrl" Data..= serverUrl),+            Prelude.Just ("SecretArn" Data..= secretArn),+            Prelude.Just ("Version" Data..= version)+          ]+      )
+ gen/Amazonka/Kendra/Types/ConfluencePageConfiguration.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.Kendra.Types.ConfluencePageConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ConfluencePageConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ConfluencePageToIndexFieldMapping+import qualified Amazonka.Prelude as Prelude++-- | Configuration of the page settings for the Confluence data source.+--+-- /See:/ 'newConfluencePageConfiguration' smart constructor.+data ConfluencePageConfiguration = ConfluencePageConfiguration'+  { -- | Maps attributes or field names of Confluence pages to Amazon Kendra+    -- index field names. To create custom fields, use the @UpdateIndex@ API+    -- before you map to Confluence fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Confluence data source field names must exist in your Confluence+    -- custom metadata.+    --+    -- If you specify the @PageFieldMappings@ parameter, you must specify at+    -- least one field mapping.+    pageFieldMappings :: Prelude.Maybe (Prelude.NonEmpty ConfluencePageToIndexFieldMapping)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfluencePageConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'pageFieldMappings', 'confluencePageConfiguration_pageFieldMappings' - Maps attributes or field names of Confluence pages to Amazon Kendra+-- index field names. To create custom fields, use the @UpdateIndex@ API+-- before you map to Confluence fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Confluence data source field names must exist in your Confluence+-- custom metadata.+--+-- If you specify the @PageFieldMappings@ parameter, you must specify at+-- least one field mapping.+newConfluencePageConfiguration ::+  ConfluencePageConfiguration+newConfluencePageConfiguration =+  ConfluencePageConfiguration'+    { pageFieldMappings =+        Prelude.Nothing+    }++-- | Maps attributes or field names of Confluence pages to Amazon Kendra+-- index field names. To create custom fields, use the @UpdateIndex@ API+-- before you map to Confluence fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Confluence data source field names must exist in your Confluence+-- custom metadata.+--+-- If you specify the @PageFieldMappings@ parameter, you must specify at+-- least one field mapping.+confluencePageConfiguration_pageFieldMappings :: Lens.Lens' ConfluencePageConfiguration (Prelude.Maybe (Prelude.NonEmpty ConfluencePageToIndexFieldMapping))+confluencePageConfiguration_pageFieldMappings = Lens.lens (\ConfluencePageConfiguration' {pageFieldMappings} -> pageFieldMappings) (\s@ConfluencePageConfiguration' {} a -> s {pageFieldMappings = a} :: ConfluencePageConfiguration) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ConfluencePageConfiguration where+  parseJSON =+    Data.withObject+      "ConfluencePageConfiguration"+      ( \x ->+          ConfluencePageConfiguration'+            Prelude.<$> (x Data..:? "PageFieldMappings")+      )++instance Prelude.Hashable ConfluencePageConfiguration where+  hashWithSalt _salt ConfluencePageConfiguration' {..} =+    _salt `Prelude.hashWithSalt` pageFieldMappings++instance Prelude.NFData ConfluencePageConfiguration where+  rnf ConfluencePageConfiguration' {..} =+    Prelude.rnf pageFieldMappings++instance Data.ToJSON ConfluencePageConfiguration where+  toJSON ConfluencePageConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("PageFieldMappings" Data..=)+              Prelude.<$> pageFieldMappings+          ]+      )
+ gen/Amazonka/Kendra/Types/ConfluencePageFieldName.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.ConfluencePageFieldName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ConfluencePageFieldName+  ( ConfluencePageFieldName+      ( ..,+        ConfluencePageFieldName_AUTHOR,+        ConfluencePageFieldName_CONTENT_STATUS,+        ConfluencePageFieldName_CREATED_DATE,+        ConfluencePageFieldName_DISPLAY_URL,+        ConfluencePageFieldName_ITEM_TYPE,+        ConfluencePageFieldName_LABELS,+        ConfluencePageFieldName_MODIFIED_DATE,+        ConfluencePageFieldName_PARENT_ID,+        ConfluencePageFieldName_SPACE_KEY,+        ConfluencePageFieldName_SPACE_NAME,+        ConfluencePageFieldName_URL,+        ConfluencePageFieldName_VERSION+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ConfluencePageFieldName = ConfluencePageFieldName'+  { fromConfluencePageFieldName ::+      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 ConfluencePageFieldName_AUTHOR :: ConfluencePageFieldName+pattern ConfluencePageFieldName_AUTHOR = ConfluencePageFieldName' "AUTHOR"++pattern ConfluencePageFieldName_CONTENT_STATUS :: ConfluencePageFieldName+pattern ConfluencePageFieldName_CONTENT_STATUS = ConfluencePageFieldName' "CONTENT_STATUS"++pattern ConfluencePageFieldName_CREATED_DATE :: ConfluencePageFieldName+pattern ConfluencePageFieldName_CREATED_DATE = ConfluencePageFieldName' "CREATED_DATE"++pattern ConfluencePageFieldName_DISPLAY_URL :: ConfluencePageFieldName+pattern ConfluencePageFieldName_DISPLAY_URL = ConfluencePageFieldName' "DISPLAY_URL"++pattern ConfluencePageFieldName_ITEM_TYPE :: ConfluencePageFieldName+pattern ConfluencePageFieldName_ITEM_TYPE = ConfluencePageFieldName' "ITEM_TYPE"++pattern ConfluencePageFieldName_LABELS :: ConfluencePageFieldName+pattern ConfluencePageFieldName_LABELS = ConfluencePageFieldName' "LABELS"++pattern ConfluencePageFieldName_MODIFIED_DATE :: ConfluencePageFieldName+pattern ConfluencePageFieldName_MODIFIED_DATE = ConfluencePageFieldName' "MODIFIED_DATE"++pattern ConfluencePageFieldName_PARENT_ID :: ConfluencePageFieldName+pattern ConfluencePageFieldName_PARENT_ID = ConfluencePageFieldName' "PARENT_ID"++pattern ConfluencePageFieldName_SPACE_KEY :: ConfluencePageFieldName+pattern ConfluencePageFieldName_SPACE_KEY = ConfluencePageFieldName' "SPACE_KEY"++pattern ConfluencePageFieldName_SPACE_NAME :: ConfluencePageFieldName+pattern ConfluencePageFieldName_SPACE_NAME = ConfluencePageFieldName' "SPACE_NAME"++pattern ConfluencePageFieldName_URL :: ConfluencePageFieldName+pattern ConfluencePageFieldName_URL = ConfluencePageFieldName' "URL"++pattern ConfluencePageFieldName_VERSION :: ConfluencePageFieldName+pattern ConfluencePageFieldName_VERSION = ConfluencePageFieldName' "VERSION"++{-# COMPLETE+  ConfluencePageFieldName_AUTHOR,+  ConfluencePageFieldName_CONTENT_STATUS,+  ConfluencePageFieldName_CREATED_DATE,+  ConfluencePageFieldName_DISPLAY_URL,+  ConfluencePageFieldName_ITEM_TYPE,+  ConfluencePageFieldName_LABELS,+  ConfluencePageFieldName_MODIFIED_DATE,+  ConfluencePageFieldName_PARENT_ID,+  ConfluencePageFieldName_SPACE_KEY,+  ConfluencePageFieldName_SPACE_NAME,+  ConfluencePageFieldName_URL,+  ConfluencePageFieldName_VERSION,+  ConfluencePageFieldName'+  #-}
+ gen/Amazonka/Kendra/Types/ConfluencePageToIndexFieldMapping.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.Kendra.Types.ConfluencePageToIndexFieldMapping+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ConfluencePageToIndexFieldMapping where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ConfluencePageFieldName+import qualified Amazonka.Prelude as Prelude++-- | >Maps attributes or field names of Confluence pages to Amazon Kendra+-- index field names. To create custom fields, use the @UpdateIndex@ API+-- before you map to Confluence fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Confluence data source field names must exist in your Confluence+-- custom metadata.+--+-- /See:/ 'newConfluencePageToIndexFieldMapping' smart constructor.+data ConfluencePageToIndexFieldMapping = ConfluencePageToIndexFieldMapping'+  { -- | The name of the field in the data source.+    dataSourceFieldName :: Prelude.Maybe ConfluencePageFieldName,+    -- | The format for date fields in the data source. If the field specified in+    -- @DataSourceFieldName@ is a date field you must specify the date format.+    -- If the field is not a date field, an exception is thrown.+    dateFieldFormat :: Prelude.Maybe Prelude.Text,+    -- | The name of the index field to map to the Confluence data source field.+    -- The index field type must match the Confluence field type.+    indexFieldName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfluencePageToIndexFieldMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSourceFieldName', 'confluencePageToIndexFieldMapping_dataSourceFieldName' - The name of the field in the data source.+--+-- 'dateFieldFormat', 'confluencePageToIndexFieldMapping_dateFieldFormat' - The format for date fields in the data source. If the field specified in+-- @DataSourceFieldName@ is a date field you must specify the date format.+-- If the field is not a date field, an exception is thrown.+--+-- 'indexFieldName', 'confluencePageToIndexFieldMapping_indexFieldName' - The name of the index field to map to the Confluence data source field.+-- The index field type must match the Confluence field type.+newConfluencePageToIndexFieldMapping ::+  ConfluencePageToIndexFieldMapping+newConfluencePageToIndexFieldMapping =+  ConfluencePageToIndexFieldMapping'+    { dataSourceFieldName =+        Prelude.Nothing,+      dateFieldFormat = Prelude.Nothing,+      indexFieldName = Prelude.Nothing+    }++-- | The name of the field in the data source.+confluencePageToIndexFieldMapping_dataSourceFieldName :: Lens.Lens' ConfluencePageToIndexFieldMapping (Prelude.Maybe ConfluencePageFieldName)+confluencePageToIndexFieldMapping_dataSourceFieldName = Lens.lens (\ConfluencePageToIndexFieldMapping' {dataSourceFieldName} -> dataSourceFieldName) (\s@ConfluencePageToIndexFieldMapping' {} a -> s {dataSourceFieldName = a} :: ConfluencePageToIndexFieldMapping)++-- | The format for date fields in the data source. If the field specified in+-- @DataSourceFieldName@ is a date field you must specify the date format.+-- If the field is not a date field, an exception is thrown.+confluencePageToIndexFieldMapping_dateFieldFormat :: Lens.Lens' ConfluencePageToIndexFieldMapping (Prelude.Maybe Prelude.Text)+confluencePageToIndexFieldMapping_dateFieldFormat = Lens.lens (\ConfluencePageToIndexFieldMapping' {dateFieldFormat} -> dateFieldFormat) (\s@ConfluencePageToIndexFieldMapping' {} a -> s {dateFieldFormat = a} :: ConfluencePageToIndexFieldMapping)++-- | The name of the index field to map to the Confluence data source field.+-- The index field type must match the Confluence field type.+confluencePageToIndexFieldMapping_indexFieldName :: Lens.Lens' ConfluencePageToIndexFieldMapping (Prelude.Maybe Prelude.Text)+confluencePageToIndexFieldMapping_indexFieldName = Lens.lens (\ConfluencePageToIndexFieldMapping' {indexFieldName} -> indexFieldName) (\s@ConfluencePageToIndexFieldMapping' {} a -> s {indexFieldName = a} :: ConfluencePageToIndexFieldMapping)++instance+  Data.FromJSON+    ConfluencePageToIndexFieldMapping+  where+  parseJSON =+    Data.withObject+      "ConfluencePageToIndexFieldMapping"+      ( \x ->+          ConfluencePageToIndexFieldMapping'+            Prelude.<$> (x Data..:? "DataSourceFieldName")+            Prelude.<*> (x Data..:? "DateFieldFormat")+            Prelude.<*> (x Data..:? "IndexFieldName")+      )++instance+  Prelude.Hashable+    ConfluencePageToIndexFieldMapping+  where+  hashWithSalt+    _salt+    ConfluencePageToIndexFieldMapping' {..} =+      _salt+        `Prelude.hashWithSalt` dataSourceFieldName+        `Prelude.hashWithSalt` dateFieldFormat+        `Prelude.hashWithSalt` indexFieldName++instance+  Prelude.NFData+    ConfluencePageToIndexFieldMapping+  where+  rnf ConfluencePageToIndexFieldMapping' {..} =+    Prelude.rnf dataSourceFieldName+      `Prelude.seq` Prelude.rnf dateFieldFormat+      `Prelude.seq` Prelude.rnf indexFieldName++instance+  Data.ToJSON+    ConfluencePageToIndexFieldMapping+  where+  toJSON ConfluencePageToIndexFieldMapping' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataSourceFieldName" Data..=)+              Prelude.<$> dataSourceFieldName,+            ("DateFieldFormat" Data..=)+              Prelude.<$> dateFieldFormat,+            ("IndexFieldName" Data..=)+              Prelude.<$> indexFieldName+          ]+      )
+ gen/Amazonka/Kendra/Types/ConfluenceSpaceConfiguration.hs view
@@ -0,0 +1,200 @@+{-# 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.Kendra.Types.ConfluenceSpaceConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ConfluenceSpaceConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ConfluenceSpaceToIndexFieldMapping+import qualified Amazonka.Prelude as Prelude++-- | Configuration information for indexing Confluence spaces.+--+-- /See:/ 'newConfluenceSpaceConfiguration' smart constructor.+data ConfluenceSpaceConfiguration = ConfluenceSpaceConfiguration'+  { -- | @TRUE@ to index archived spaces.+    crawlArchivedSpaces :: Prelude.Maybe Prelude.Bool,+    -- | @TRUE@ to index personal spaces. You can add restrictions to items in+    -- personal spaces. If personal spaces are indexed, queries without user+    -- context information may return restricted items from a personal space in+    -- their results. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html Filtering on user context>.+    crawlPersonalSpaces :: Prelude.Maybe Prelude.Bool,+    -- | A list of space keys of Confluence spaces. If you include a key, the+    -- blogs, documents, and attachments in the space are not indexed. If a+    -- space is in both the @ExcludeSpaces@ and the @IncludeSpaces@ list, the+    -- space is excluded.+    excludeSpaces :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | A list of space keys for Confluence spaces. If you include a key, the+    -- blogs, documents, and attachments in the space are indexed. Spaces that+    -- aren\'t in the list aren\'t indexed. A space in the list must exist.+    -- Otherwise, Amazon Kendra logs an error when the data source is+    -- synchronized. If a space is in both the @IncludeSpaces@ and the+    -- @ExcludeSpaces@ list, the space is excluded.+    includeSpaces :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | Maps attributes or field names of Confluence spaces to Amazon Kendra+    -- index field names. To create custom fields, use the @UpdateIndex@ API+    -- before you map to Confluence fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Confluence data source field names must exist in your Confluence+    -- custom metadata.+    --+    -- If you specify the @SpaceFieldMappings@ parameter, you must specify at+    -- least one field mapping.+    spaceFieldMappings :: Prelude.Maybe (Prelude.NonEmpty ConfluenceSpaceToIndexFieldMapping)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfluenceSpaceConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'crawlArchivedSpaces', 'confluenceSpaceConfiguration_crawlArchivedSpaces' - @TRUE@ to index archived spaces.+--+-- 'crawlPersonalSpaces', 'confluenceSpaceConfiguration_crawlPersonalSpaces' - @TRUE@ to index personal spaces. You can add restrictions to items in+-- personal spaces. If personal spaces are indexed, queries without user+-- context information may return restricted items from a personal space in+-- their results. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html Filtering on user context>.+--+-- 'excludeSpaces', 'confluenceSpaceConfiguration_excludeSpaces' - A list of space keys of Confluence spaces. If you include a key, the+-- blogs, documents, and attachments in the space are not indexed. If a+-- space is in both the @ExcludeSpaces@ and the @IncludeSpaces@ list, the+-- space is excluded.+--+-- 'includeSpaces', 'confluenceSpaceConfiguration_includeSpaces' - A list of space keys for Confluence spaces. If you include a key, the+-- blogs, documents, and attachments in the space are indexed. Spaces that+-- aren\'t in the list aren\'t indexed. A space in the list must exist.+-- Otherwise, Amazon Kendra logs an error when the data source is+-- synchronized. If a space is in both the @IncludeSpaces@ and the+-- @ExcludeSpaces@ list, the space is excluded.+--+-- 'spaceFieldMappings', 'confluenceSpaceConfiguration_spaceFieldMappings' - Maps attributes or field names of Confluence spaces to Amazon Kendra+-- index field names. To create custom fields, use the @UpdateIndex@ API+-- before you map to Confluence fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Confluence data source field names must exist in your Confluence+-- custom metadata.+--+-- If you specify the @SpaceFieldMappings@ parameter, you must specify at+-- least one field mapping.+newConfluenceSpaceConfiguration ::+  ConfluenceSpaceConfiguration+newConfluenceSpaceConfiguration =+  ConfluenceSpaceConfiguration'+    { crawlArchivedSpaces =+        Prelude.Nothing,+      crawlPersonalSpaces = Prelude.Nothing,+      excludeSpaces = Prelude.Nothing,+      includeSpaces = Prelude.Nothing,+      spaceFieldMappings = Prelude.Nothing+    }++-- | @TRUE@ to index archived spaces.+confluenceSpaceConfiguration_crawlArchivedSpaces :: Lens.Lens' ConfluenceSpaceConfiguration (Prelude.Maybe Prelude.Bool)+confluenceSpaceConfiguration_crawlArchivedSpaces = Lens.lens (\ConfluenceSpaceConfiguration' {crawlArchivedSpaces} -> crawlArchivedSpaces) (\s@ConfluenceSpaceConfiguration' {} a -> s {crawlArchivedSpaces = a} :: ConfluenceSpaceConfiguration)++-- | @TRUE@ to index personal spaces. You can add restrictions to items in+-- personal spaces. If personal spaces are indexed, queries without user+-- context information may return restricted items from a personal space in+-- their results. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html Filtering on user context>.+confluenceSpaceConfiguration_crawlPersonalSpaces :: Lens.Lens' ConfluenceSpaceConfiguration (Prelude.Maybe Prelude.Bool)+confluenceSpaceConfiguration_crawlPersonalSpaces = Lens.lens (\ConfluenceSpaceConfiguration' {crawlPersonalSpaces} -> crawlPersonalSpaces) (\s@ConfluenceSpaceConfiguration' {} a -> s {crawlPersonalSpaces = a} :: ConfluenceSpaceConfiguration)++-- | A list of space keys of Confluence spaces. If you include a key, the+-- blogs, documents, and attachments in the space are not indexed. If a+-- space is in both the @ExcludeSpaces@ and the @IncludeSpaces@ list, the+-- space is excluded.+confluenceSpaceConfiguration_excludeSpaces :: Lens.Lens' ConfluenceSpaceConfiguration (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+confluenceSpaceConfiguration_excludeSpaces = Lens.lens (\ConfluenceSpaceConfiguration' {excludeSpaces} -> excludeSpaces) (\s@ConfluenceSpaceConfiguration' {} a -> s {excludeSpaces = a} :: ConfluenceSpaceConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of space keys for Confluence spaces. If you include a key, the+-- blogs, documents, and attachments in the space are indexed. Spaces that+-- aren\'t in the list aren\'t indexed. A space in the list must exist.+-- Otherwise, Amazon Kendra logs an error when the data source is+-- synchronized. If a space is in both the @IncludeSpaces@ and the+-- @ExcludeSpaces@ list, the space is excluded.+confluenceSpaceConfiguration_includeSpaces :: Lens.Lens' ConfluenceSpaceConfiguration (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+confluenceSpaceConfiguration_includeSpaces = Lens.lens (\ConfluenceSpaceConfiguration' {includeSpaces} -> includeSpaces) (\s@ConfluenceSpaceConfiguration' {} a -> s {includeSpaces = a} :: ConfluenceSpaceConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Maps attributes or field names of Confluence spaces to Amazon Kendra+-- index field names. To create custom fields, use the @UpdateIndex@ API+-- before you map to Confluence fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Confluence data source field names must exist in your Confluence+-- custom metadata.+--+-- If you specify the @SpaceFieldMappings@ parameter, you must specify at+-- least one field mapping.+confluenceSpaceConfiguration_spaceFieldMappings :: Lens.Lens' ConfluenceSpaceConfiguration (Prelude.Maybe (Prelude.NonEmpty ConfluenceSpaceToIndexFieldMapping))+confluenceSpaceConfiguration_spaceFieldMappings = Lens.lens (\ConfluenceSpaceConfiguration' {spaceFieldMappings} -> spaceFieldMappings) (\s@ConfluenceSpaceConfiguration' {} a -> s {spaceFieldMappings = a} :: ConfluenceSpaceConfiguration) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ConfluenceSpaceConfiguration where+  parseJSON =+    Data.withObject+      "ConfluenceSpaceConfiguration"+      ( \x ->+          ConfluenceSpaceConfiguration'+            Prelude.<$> (x Data..:? "CrawlArchivedSpaces")+            Prelude.<*> (x Data..:? "CrawlPersonalSpaces")+            Prelude.<*> (x Data..:? "ExcludeSpaces")+            Prelude.<*> (x Data..:? "IncludeSpaces")+            Prelude.<*> (x Data..:? "SpaceFieldMappings")+      )++instance+  Prelude.Hashable+    ConfluenceSpaceConfiguration+  where+  hashWithSalt _salt ConfluenceSpaceConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` crawlArchivedSpaces+      `Prelude.hashWithSalt` crawlPersonalSpaces+      `Prelude.hashWithSalt` excludeSpaces+      `Prelude.hashWithSalt` includeSpaces+      `Prelude.hashWithSalt` spaceFieldMappings++instance Prelude.NFData ConfluenceSpaceConfiguration where+  rnf ConfluenceSpaceConfiguration' {..} =+    Prelude.rnf crawlArchivedSpaces+      `Prelude.seq` Prelude.rnf crawlPersonalSpaces+      `Prelude.seq` Prelude.rnf excludeSpaces+      `Prelude.seq` Prelude.rnf includeSpaces+      `Prelude.seq` Prelude.rnf spaceFieldMappings++instance Data.ToJSON ConfluenceSpaceConfiguration where+  toJSON ConfluenceSpaceConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CrawlArchivedSpaces" Data..=)+              Prelude.<$> crawlArchivedSpaces,+            ("CrawlPersonalSpaces" Data..=)+              Prelude.<$> crawlPersonalSpaces,+            ("ExcludeSpaces" Data..=) Prelude.<$> excludeSpaces,+            ("IncludeSpaces" Data..=) Prelude.<$> includeSpaces,+            ("SpaceFieldMappings" Data..=)+              Prelude.<$> spaceFieldMappings+          ]+      )
+ gen/Amazonka/Kendra/Types/ConfluenceSpaceFieldName.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.Kendra.Types.ConfluenceSpaceFieldName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ConfluenceSpaceFieldName+  ( ConfluenceSpaceFieldName+      ( ..,+        ConfluenceSpaceFieldName_DISPLAY_URL,+        ConfluenceSpaceFieldName_ITEM_TYPE,+        ConfluenceSpaceFieldName_SPACE_KEY,+        ConfluenceSpaceFieldName_URL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ConfluenceSpaceFieldName = ConfluenceSpaceFieldName'+  { fromConfluenceSpaceFieldName ::+      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 ConfluenceSpaceFieldName_DISPLAY_URL :: ConfluenceSpaceFieldName+pattern ConfluenceSpaceFieldName_DISPLAY_URL = ConfluenceSpaceFieldName' "DISPLAY_URL"++pattern ConfluenceSpaceFieldName_ITEM_TYPE :: ConfluenceSpaceFieldName+pattern ConfluenceSpaceFieldName_ITEM_TYPE = ConfluenceSpaceFieldName' "ITEM_TYPE"++pattern ConfluenceSpaceFieldName_SPACE_KEY :: ConfluenceSpaceFieldName+pattern ConfluenceSpaceFieldName_SPACE_KEY = ConfluenceSpaceFieldName' "SPACE_KEY"++pattern ConfluenceSpaceFieldName_URL :: ConfluenceSpaceFieldName+pattern ConfluenceSpaceFieldName_URL = ConfluenceSpaceFieldName' "URL"++{-# COMPLETE+  ConfluenceSpaceFieldName_DISPLAY_URL,+  ConfluenceSpaceFieldName_ITEM_TYPE,+  ConfluenceSpaceFieldName_SPACE_KEY,+  ConfluenceSpaceFieldName_URL,+  ConfluenceSpaceFieldName'+  #-}
+ gen/Amazonka/Kendra/Types/ConfluenceSpaceToIndexFieldMapping.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.Kendra.Types.ConfluenceSpaceToIndexFieldMapping+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ConfluenceSpaceToIndexFieldMapping where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ConfluenceSpaceFieldName+import qualified Amazonka.Prelude as Prelude++-- | >Maps attributes or field names of Confluence spaces to Amazon Kendra+-- index field names. To create custom fields, use the @UpdateIndex@ API+-- before you map to Confluence fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Confluence data source field names must exist in your Confluence+-- custom metadata.+--+-- /See:/ 'newConfluenceSpaceToIndexFieldMapping' smart constructor.+data ConfluenceSpaceToIndexFieldMapping = ConfluenceSpaceToIndexFieldMapping'+  { -- | The name of the field in the data source.+    dataSourceFieldName :: Prelude.Maybe ConfluenceSpaceFieldName,+    -- | The format for date fields in the data source. If the field specified in+    -- @DataSourceFieldName@ is a date field you must specify the date format.+    -- If the field is not a date field, an exception is thrown.+    dateFieldFormat :: Prelude.Maybe Prelude.Text,+    -- | The name of the index field to map to the Confluence data source field.+    -- The index field type must match the Confluence field type.+    indexFieldName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConfluenceSpaceToIndexFieldMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSourceFieldName', 'confluenceSpaceToIndexFieldMapping_dataSourceFieldName' - The name of the field in the data source.+--+-- 'dateFieldFormat', 'confluenceSpaceToIndexFieldMapping_dateFieldFormat' - The format for date fields in the data source. If the field specified in+-- @DataSourceFieldName@ is a date field you must specify the date format.+-- If the field is not a date field, an exception is thrown.+--+-- 'indexFieldName', 'confluenceSpaceToIndexFieldMapping_indexFieldName' - The name of the index field to map to the Confluence data source field.+-- The index field type must match the Confluence field type.+newConfluenceSpaceToIndexFieldMapping ::+  ConfluenceSpaceToIndexFieldMapping+newConfluenceSpaceToIndexFieldMapping =+  ConfluenceSpaceToIndexFieldMapping'+    { dataSourceFieldName =+        Prelude.Nothing,+      dateFieldFormat = Prelude.Nothing,+      indexFieldName = Prelude.Nothing+    }++-- | The name of the field in the data source.+confluenceSpaceToIndexFieldMapping_dataSourceFieldName :: Lens.Lens' ConfluenceSpaceToIndexFieldMapping (Prelude.Maybe ConfluenceSpaceFieldName)+confluenceSpaceToIndexFieldMapping_dataSourceFieldName = Lens.lens (\ConfluenceSpaceToIndexFieldMapping' {dataSourceFieldName} -> dataSourceFieldName) (\s@ConfluenceSpaceToIndexFieldMapping' {} a -> s {dataSourceFieldName = a} :: ConfluenceSpaceToIndexFieldMapping)++-- | The format for date fields in the data source. If the field specified in+-- @DataSourceFieldName@ is a date field you must specify the date format.+-- If the field is not a date field, an exception is thrown.+confluenceSpaceToIndexFieldMapping_dateFieldFormat :: Lens.Lens' ConfluenceSpaceToIndexFieldMapping (Prelude.Maybe Prelude.Text)+confluenceSpaceToIndexFieldMapping_dateFieldFormat = Lens.lens (\ConfluenceSpaceToIndexFieldMapping' {dateFieldFormat} -> dateFieldFormat) (\s@ConfluenceSpaceToIndexFieldMapping' {} a -> s {dateFieldFormat = a} :: ConfluenceSpaceToIndexFieldMapping)++-- | The name of the index field to map to the Confluence data source field.+-- The index field type must match the Confluence field type.+confluenceSpaceToIndexFieldMapping_indexFieldName :: Lens.Lens' ConfluenceSpaceToIndexFieldMapping (Prelude.Maybe Prelude.Text)+confluenceSpaceToIndexFieldMapping_indexFieldName = Lens.lens (\ConfluenceSpaceToIndexFieldMapping' {indexFieldName} -> indexFieldName) (\s@ConfluenceSpaceToIndexFieldMapping' {} a -> s {indexFieldName = a} :: ConfluenceSpaceToIndexFieldMapping)++instance+  Data.FromJSON+    ConfluenceSpaceToIndexFieldMapping+  where+  parseJSON =+    Data.withObject+      "ConfluenceSpaceToIndexFieldMapping"+      ( \x ->+          ConfluenceSpaceToIndexFieldMapping'+            Prelude.<$> (x Data..:? "DataSourceFieldName")+            Prelude.<*> (x Data..:? "DateFieldFormat")+            Prelude.<*> (x Data..:? "IndexFieldName")+      )++instance+  Prelude.Hashable+    ConfluenceSpaceToIndexFieldMapping+  where+  hashWithSalt+    _salt+    ConfluenceSpaceToIndexFieldMapping' {..} =+      _salt+        `Prelude.hashWithSalt` dataSourceFieldName+        `Prelude.hashWithSalt` dateFieldFormat+        `Prelude.hashWithSalt` indexFieldName++instance+  Prelude.NFData+    ConfluenceSpaceToIndexFieldMapping+  where+  rnf ConfluenceSpaceToIndexFieldMapping' {..} =+    Prelude.rnf dataSourceFieldName+      `Prelude.seq` Prelude.rnf dateFieldFormat+      `Prelude.seq` Prelude.rnf indexFieldName++instance+  Data.ToJSON+    ConfluenceSpaceToIndexFieldMapping+  where+  toJSON ConfluenceSpaceToIndexFieldMapping' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataSourceFieldName" Data..=)+              Prelude.<$> dataSourceFieldName,+            ("DateFieldFormat" Data..=)+              Prelude.<$> dateFieldFormat,+            ("IndexFieldName" Data..=)+              Prelude.<$> indexFieldName+          ]+      )
+ gen/Amazonka/Kendra/Types/ConfluenceVersion.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.Kendra.Types.ConfluenceVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ConfluenceVersion+  ( ConfluenceVersion+      ( ..,+        ConfluenceVersion_CLOUD,+        ConfluenceVersion_SERVER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ConfluenceVersion = ConfluenceVersion'+  { fromConfluenceVersion ::+      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 ConfluenceVersion_CLOUD :: ConfluenceVersion+pattern ConfluenceVersion_CLOUD = ConfluenceVersion' "CLOUD"++pattern ConfluenceVersion_SERVER :: ConfluenceVersion+pattern ConfluenceVersion_SERVER = ConfluenceVersion' "SERVER"++{-# COMPLETE+  ConfluenceVersion_CLOUD,+  ConfluenceVersion_SERVER,+  ConfluenceVersion'+  #-}
+ gen/Amazonka/Kendra/Types/ConnectionConfiguration.hs view
@@ -0,0 +1,170 @@+{-# 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.Kendra.Types.ConnectionConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ConnectionConfiguration 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 configuration information that\'s required to connect to a+-- database.+--+-- /See:/ 'newConnectionConfiguration' smart constructor.+data ConnectionConfiguration = ConnectionConfiguration'+  { -- | The name of the host for the database. Can be either a string+    -- (host.subdomain.domain.tld) or an IPv4 or IPv6 address.+    databaseHost :: Prelude.Text,+    -- | The port that the database uses for connections.+    databasePort :: Prelude.Natural,+    -- | The name of the database containing the document data.+    databaseName :: Prelude.Text,+    -- | The name of the table that contains the document data.+    tableName :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of credentials stored in Secrets Manager.+    -- The credentials should be a user\/password pair. For more information,+    -- see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-database.html Using a Database Data Source>.+    -- For more information about Secrets Manager, see+    -- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html What Is Secrets Manager>+    -- in the /Secrets Manager/ user guide.+    secretArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ConnectionConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'databaseHost', 'connectionConfiguration_databaseHost' - The name of the host for the database. Can be either a string+-- (host.subdomain.domain.tld) or an IPv4 or IPv6 address.+--+-- 'databasePort', 'connectionConfiguration_databasePort' - The port that the database uses for connections.+--+-- 'databaseName', 'connectionConfiguration_databaseName' - The name of the database containing the document data.+--+-- 'tableName', 'connectionConfiguration_tableName' - The name of the table that contains the document data.+--+-- 'secretArn', 'connectionConfiguration_secretArn' - The Amazon Resource Name (ARN) of credentials stored in Secrets Manager.+-- The credentials should be a user\/password pair. For more information,+-- see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-database.html Using a Database Data Source>.+-- For more information about Secrets Manager, see+-- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html What Is Secrets Manager>+-- in the /Secrets Manager/ user guide.+newConnectionConfiguration ::+  -- | 'databaseHost'+  Prelude.Text ->+  -- | 'databasePort'+  Prelude.Natural ->+  -- | 'databaseName'+  Prelude.Text ->+  -- | 'tableName'+  Prelude.Text ->+  -- | 'secretArn'+  Prelude.Text ->+  ConnectionConfiguration+newConnectionConfiguration+  pDatabaseHost_+  pDatabasePort_+  pDatabaseName_+  pTableName_+  pSecretArn_ =+    ConnectionConfiguration'+      { databaseHost =+          pDatabaseHost_,+        databasePort = pDatabasePort_,+        databaseName = pDatabaseName_,+        tableName = pTableName_,+        secretArn = pSecretArn_+      }++-- | The name of the host for the database. Can be either a string+-- (host.subdomain.domain.tld) or an IPv4 or IPv6 address.+connectionConfiguration_databaseHost :: Lens.Lens' ConnectionConfiguration Prelude.Text+connectionConfiguration_databaseHost = Lens.lens (\ConnectionConfiguration' {databaseHost} -> databaseHost) (\s@ConnectionConfiguration' {} a -> s {databaseHost = a} :: ConnectionConfiguration)++-- | The port that the database uses for connections.+connectionConfiguration_databasePort :: Lens.Lens' ConnectionConfiguration Prelude.Natural+connectionConfiguration_databasePort = Lens.lens (\ConnectionConfiguration' {databasePort} -> databasePort) (\s@ConnectionConfiguration' {} a -> s {databasePort = a} :: ConnectionConfiguration)++-- | The name of the database containing the document data.+connectionConfiguration_databaseName :: Lens.Lens' ConnectionConfiguration Prelude.Text+connectionConfiguration_databaseName = Lens.lens (\ConnectionConfiguration' {databaseName} -> databaseName) (\s@ConnectionConfiguration' {} a -> s {databaseName = a} :: ConnectionConfiguration)++-- | The name of the table that contains the document data.+connectionConfiguration_tableName :: Lens.Lens' ConnectionConfiguration Prelude.Text+connectionConfiguration_tableName = Lens.lens (\ConnectionConfiguration' {tableName} -> tableName) (\s@ConnectionConfiguration' {} a -> s {tableName = a} :: ConnectionConfiguration)++-- | The Amazon Resource Name (ARN) of credentials stored in Secrets Manager.+-- The credentials should be a user\/password pair. For more information,+-- see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-database.html Using a Database Data Source>.+-- For more information about Secrets Manager, see+-- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html What Is Secrets Manager>+-- in the /Secrets Manager/ user guide.+connectionConfiguration_secretArn :: Lens.Lens' ConnectionConfiguration Prelude.Text+connectionConfiguration_secretArn = Lens.lens (\ConnectionConfiguration' {secretArn} -> secretArn) (\s@ConnectionConfiguration' {} a -> s {secretArn = a} :: ConnectionConfiguration)++instance Data.FromJSON ConnectionConfiguration where+  parseJSON =+    Data.withObject+      "ConnectionConfiguration"+      ( \x ->+          ConnectionConfiguration'+            Prelude.<$> (x Data..: "DatabaseHost")+            Prelude.<*> (x Data..: "DatabasePort")+            Prelude.<*> (x Data..: "DatabaseName")+            Prelude.<*> (x Data..: "TableName")+            Prelude.<*> (x Data..: "SecretArn")+      )++instance Prelude.Hashable ConnectionConfiguration where+  hashWithSalt _salt ConnectionConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` databaseHost+      `Prelude.hashWithSalt` databasePort+      `Prelude.hashWithSalt` databaseName+      `Prelude.hashWithSalt` tableName+      `Prelude.hashWithSalt` secretArn++instance Prelude.NFData ConnectionConfiguration where+  rnf ConnectionConfiguration' {..} =+    Prelude.rnf databaseHost+      `Prelude.seq` Prelude.rnf databasePort+      `Prelude.seq` Prelude.rnf databaseName+      `Prelude.seq` Prelude.rnf tableName+      `Prelude.seq` Prelude.rnf secretArn++instance Data.ToJSON ConnectionConfiguration where+  toJSON ConnectionConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("DatabaseHost" Data..= databaseHost),+            Prelude.Just ("DatabasePort" Data..= databasePort),+            Prelude.Just ("DatabaseName" Data..= databaseName),+            Prelude.Just ("TableName" Data..= tableName),+            Prelude.Just ("SecretArn" Data..= secretArn)+          ]+      )
+ gen/Amazonka/Kendra/Types/ContentSourceConfiguration.hs view
@@ -0,0 +1,119 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.ContentSourceConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ContentSourceConfiguration 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 configuration information for your content sources, such as+-- data sources, FAQs, and content indexed directly via+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_BatchPutDocument.html BatchPutDocument>.+--+-- /See:/ 'newContentSourceConfiguration' smart constructor.+data ContentSourceConfiguration = ContentSourceConfiguration'+  { -- | The identifier of the data sources you want to use for your Amazon+    -- Kendra experience.+    dataSourceIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | @TRUE@ to use documents you indexed directly using the+    -- @BatchPutDocument@ API.+    directPutContent :: Prelude.Maybe Prelude.Bool,+    -- | The identifier of the FAQs that you want to use for your Amazon Kendra+    -- experience.+    faqIds :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ContentSourceConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSourceIds', 'contentSourceConfiguration_dataSourceIds' - The identifier of the data sources you want to use for your Amazon+-- Kendra experience.+--+-- 'directPutContent', 'contentSourceConfiguration_directPutContent' - @TRUE@ to use documents you indexed directly using the+-- @BatchPutDocument@ API.+--+-- 'faqIds', 'contentSourceConfiguration_faqIds' - The identifier of the FAQs that you want to use for your Amazon Kendra+-- experience.+newContentSourceConfiguration ::+  ContentSourceConfiguration+newContentSourceConfiguration =+  ContentSourceConfiguration'+    { dataSourceIds =+        Prelude.Nothing,+      directPutContent = Prelude.Nothing,+      faqIds = Prelude.Nothing+    }++-- | The identifier of the data sources you want to use for your Amazon+-- Kendra experience.+contentSourceConfiguration_dataSourceIds :: Lens.Lens' ContentSourceConfiguration (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+contentSourceConfiguration_dataSourceIds = Lens.lens (\ContentSourceConfiguration' {dataSourceIds} -> dataSourceIds) (\s@ContentSourceConfiguration' {} a -> s {dataSourceIds = a} :: ContentSourceConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | @TRUE@ to use documents you indexed directly using the+-- @BatchPutDocument@ API.+contentSourceConfiguration_directPutContent :: Lens.Lens' ContentSourceConfiguration (Prelude.Maybe Prelude.Bool)+contentSourceConfiguration_directPutContent = Lens.lens (\ContentSourceConfiguration' {directPutContent} -> directPutContent) (\s@ContentSourceConfiguration' {} a -> s {directPutContent = a} :: ContentSourceConfiguration)++-- | The identifier of the FAQs that you want to use for your Amazon Kendra+-- experience.+contentSourceConfiguration_faqIds :: Lens.Lens' ContentSourceConfiguration (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+contentSourceConfiguration_faqIds = Lens.lens (\ContentSourceConfiguration' {faqIds} -> faqIds) (\s@ContentSourceConfiguration' {} a -> s {faqIds = a} :: ContentSourceConfiguration) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ContentSourceConfiguration where+  parseJSON =+    Data.withObject+      "ContentSourceConfiguration"+      ( \x ->+          ContentSourceConfiguration'+            Prelude.<$> (x Data..:? "DataSourceIds")+            Prelude.<*> (x Data..:? "DirectPutContent")+            Prelude.<*> (x Data..:? "FaqIds")+      )++instance Prelude.Hashable ContentSourceConfiguration where+  hashWithSalt _salt ContentSourceConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` dataSourceIds+      `Prelude.hashWithSalt` directPutContent+      `Prelude.hashWithSalt` faqIds++instance Prelude.NFData ContentSourceConfiguration where+  rnf ContentSourceConfiguration' {..} =+    Prelude.rnf dataSourceIds+      `Prelude.seq` Prelude.rnf directPutContent+      `Prelude.seq` Prelude.rnf faqIds++instance Data.ToJSON ContentSourceConfiguration where+  toJSON ContentSourceConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataSourceIds" Data..=) Prelude.<$> dataSourceIds,+            ("DirectPutContent" Data..=)+              Prelude.<$> directPutContent,+            ("FaqIds" Data..=) Prelude.<$> faqIds+          ]+      )
+ gen/Amazonka/Kendra/Types/ContentType.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.Kendra.Types.ContentType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ContentType+  ( ContentType+      ( ..,+        ContentType_HTML,+        ContentType_MS_WORD,+        ContentType_PDF,+        ContentType_PLAIN_TEXT,+        ContentType_PPT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ContentType = ContentType'+  { fromContentType ::+      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 ContentType_HTML :: ContentType+pattern ContentType_HTML = ContentType' "HTML"++pattern ContentType_MS_WORD :: ContentType+pattern ContentType_MS_WORD = ContentType' "MS_WORD"++pattern ContentType_PDF :: ContentType+pattern ContentType_PDF = ContentType' "PDF"++pattern ContentType_PLAIN_TEXT :: ContentType+pattern ContentType_PLAIN_TEXT = ContentType' "PLAIN_TEXT"++pattern ContentType_PPT :: ContentType+pattern ContentType_PPT = ContentType' "PPT"++{-# COMPLETE+  ContentType_HTML,+  ContentType_MS_WORD,+  ContentType_PDF,+  ContentType_PLAIN_TEXT,+  ContentType_PPT,+  ContentType'+  #-}
+ gen/Amazonka/Kendra/Types/Correction.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.Kendra.Types.Correction+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.Correction 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 corrected misspelled word in a query.+--+-- /See:/ 'newCorrection' smart constructor.+data Correction = Correction'+  { -- | The zero-based location in the response string or text where the+    -- corrected word starts.+    beginOffset :: Prelude.Maybe Prelude.Int,+    -- | The string or text of a corrected misspelled word in a query.+    correctedTerm :: Prelude.Maybe Prelude.Text,+    -- | The zero-based location in the response string or text where the+    -- corrected word ends.+    endOffset :: Prelude.Maybe Prelude.Int,+    -- | The string or text of a misspelled word in a query.+    term :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Correction' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'beginOffset', 'correction_beginOffset' - The zero-based location in the response string or text where the+-- corrected word starts.+--+-- 'correctedTerm', 'correction_correctedTerm' - The string or text of a corrected misspelled word in a query.+--+-- 'endOffset', 'correction_endOffset' - The zero-based location in the response string or text where the+-- corrected word ends.+--+-- 'term', 'correction_term' - The string or text of a misspelled word in a query.+newCorrection ::+  Correction+newCorrection =+  Correction'+    { beginOffset = Prelude.Nothing,+      correctedTerm = Prelude.Nothing,+      endOffset = Prelude.Nothing,+      term = Prelude.Nothing+    }++-- | The zero-based location in the response string or text where the+-- corrected word starts.+correction_beginOffset :: Lens.Lens' Correction (Prelude.Maybe Prelude.Int)+correction_beginOffset = Lens.lens (\Correction' {beginOffset} -> beginOffset) (\s@Correction' {} a -> s {beginOffset = a} :: Correction)++-- | The string or text of a corrected misspelled word in a query.+correction_correctedTerm :: Lens.Lens' Correction (Prelude.Maybe Prelude.Text)+correction_correctedTerm = Lens.lens (\Correction' {correctedTerm} -> correctedTerm) (\s@Correction' {} a -> s {correctedTerm = a} :: Correction)++-- | The zero-based location in the response string or text where the+-- corrected word ends.+correction_endOffset :: Lens.Lens' Correction (Prelude.Maybe Prelude.Int)+correction_endOffset = Lens.lens (\Correction' {endOffset} -> endOffset) (\s@Correction' {} a -> s {endOffset = a} :: Correction)++-- | The string or text of a misspelled word in a query.+correction_term :: Lens.Lens' Correction (Prelude.Maybe Prelude.Text)+correction_term = Lens.lens (\Correction' {term} -> term) (\s@Correction' {} a -> s {term = a} :: Correction)++instance Data.FromJSON Correction where+  parseJSON =+    Data.withObject+      "Correction"+      ( \x ->+          Correction'+            Prelude.<$> (x Data..:? "BeginOffset")+            Prelude.<*> (x Data..:? "CorrectedTerm")+            Prelude.<*> (x Data..:? "EndOffset")+            Prelude.<*> (x Data..:? "Term")+      )++instance Prelude.Hashable Correction where+  hashWithSalt _salt Correction' {..} =+    _salt+      `Prelude.hashWithSalt` beginOffset+      `Prelude.hashWithSalt` correctedTerm+      `Prelude.hashWithSalt` endOffset+      `Prelude.hashWithSalt` term++instance Prelude.NFData Correction where+  rnf Correction' {..} =+    Prelude.rnf beginOffset+      `Prelude.seq` Prelude.rnf correctedTerm+      `Prelude.seq` Prelude.rnf endOffset+      `Prelude.seq` Prelude.rnf term
+ gen/Amazonka/Kendra/Types/CustomDocumentEnrichmentConfiguration.hs view
@@ -0,0 +1,190 @@+{-# 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.Kendra.Types.CustomDocumentEnrichmentConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.CustomDocumentEnrichmentConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.HookConfiguration+import Amazonka.Kendra.Types.InlineCustomDocumentEnrichmentConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for altering document metadata+-- and content during the document ingestion process.+--+-- For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html Customizing document metadata during the ingestion process>.+--+-- /See:/ 'newCustomDocumentEnrichmentConfiguration' smart constructor.+data CustomDocumentEnrichmentConfiguration = CustomDocumentEnrichmentConfiguration'+  { -- | Configuration information to alter document attributes or metadata+    -- fields and content when ingesting documents into Amazon Kendra.+    inlineConfigurations :: Prelude.Maybe [InlineCustomDocumentEnrichmentConfiguration],+    -- | Configuration information for invoking a Lambda function in Lambda on+    -- the structured documents with their metadata and text extracted. You can+    -- use a Lambda function to apply advanced logic for creating, modifying,+    -- or deleting document metadata and content. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#advanced-data-manipulation Advanced data manipulation>.+    postExtractionHookConfiguration :: Prelude.Maybe HookConfiguration,+    -- | Configuration information for invoking a Lambda function in Lambda on+    -- the original or raw documents before extracting their metadata and text.+    -- You can use a Lambda function to apply advanced logic for creating,+    -- modifying, or deleting document metadata and content. For more+    -- information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#advanced-data-manipulation Advanced data manipulation>.+    preExtractionHookConfiguration :: Prelude.Maybe HookConfiguration,+    -- | The Amazon Resource Name (ARN) of a role with permission to run+    -- @PreExtractionHookConfiguration@ and @PostExtractionHookConfiguration@+    -- for altering document metadata and content during the document ingestion+    -- process. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+    roleArn :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CustomDocumentEnrichmentConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inlineConfigurations', 'customDocumentEnrichmentConfiguration_inlineConfigurations' - Configuration information to alter document attributes or metadata+-- fields and content when ingesting documents into Amazon Kendra.+--+-- 'postExtractionHookConfiguration', 'customDocumentEnrichmentConfiguration_postExtractionHookConfiguration' - Configuration information for invoking a Lambda function in Lambda on+-- the structured documents with their metadata and text extracted. You can+-- use a Lambda function to apply advanced logic for creating, modifying,+-- or deleting document metadata and content. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#advanced-data-manipulation Advanced data manipulation>.+--+-- 'preExtractionHookConfiguration', 'customDocumentEnrichmentConfiguration_preExtractionHookConfiguration' - Configuration information for invoking a Lambda function in Lambda on+-- the original or raw documents before extracting their metadata and text.+-- You can use a Lambda function to apply advanced logic for creating,+-- modifying, or deleting document metadata and content. For more+-- information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#advanced-data-manipulation Advanced data manipulation>.+--+-- 'roleArn', 'customDocumentEnrichmentConfiguration_roleArn' - The Amazon Resource Name (ARN) of a role with permission to run+-- @PreExtractionHookConfiguration@ and @PostExtractionHookConfiguration@+-- for altering document metadata and content during the document ingestion+-- process. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+newCustomDocumentEnrichmentConfiguration ::+  CustomDocumentEnrichmentConfiguration+newCustomDocumentEnrichmentConfiguration =+  CustomDocumentEnrichmentConfiguration'+    { inlineConfigurations =+        Prelude.Nothing,+      postExtractionHookConfiguration =+        Prelude.Nothing,+      preExtractionHookConfiguration =+        Prelude.Nothing,+      roleArn = Prelude.Nothing+    }++-- | Configuration information to alter document attributes or metadata+-- fields and content when ingesting documents into Amazon Kendra.+customDocumentEnrichmentConfiguration_inlineConfigurations :: Lens.Lens' CustomDocumentEnrichmentConfiguration (Prelude.Maybe [InlineCustomDocumentEnrichmentConfiguration])+customDocumentEnrichmentConfiguration_inlineConfigurations = Lens.lens (\CustomDocumentEnrichmentConfiguration' {inlineConfigurations} -> inlineConfigurations) (\s@CustomDocumentEnrichmentConfiguration' {} a -> s {inlineConfigurations = a} :: CustomDocumentEnrichmentConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Configuration information for invoking a Lambda function in Lambda on+-- the structured documents with their metadata and text extracted. You can+-- use a Lambda function to apply advanced logic for creating, modifying,+-- or deleting document metadata and content. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#advanced-data-manipulation Advanced data manipulation>.+customDocumentEnrichmentConfiguration_postExtractionHookConfiguration :: Lens.Lens' CustomDocumentEnrichmentConfiguration (Prelude.Maybe HookConfiguration)+customDocumentEnrichmentConfiguration_postExtractionHookConfiguration = Lens.lens (\CustomDocumentEnrichmentConfiguration' {postExtractionHookConfiguration} -> postExtractionHookConfiguration) (\s@CustomDocumentEnrichmentConfiguration' {} a -> s {postExtractionHookConfiguration = a} :: CustomDocumentEnrichmentConfiguration)++-- | Configuration information for invoking a Lambda function in Lambda on+-- the original or raw documents before extracting their metadata and text.+-- You can use a Lambda function to apply advanced logic for creating,+-- modifying, or deleting document metadata and content. For more+-- information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#advanced-data-manipulation Advanced data manipulation>.+customDocumentEnrichmentConfiguration_preExtractionHookConfiguration :: Lens.Lens' CustomDocumentEnrichmentConfiguration (Prelude.Maybe HookConfiguration)+customDocumentEnrichmentConfiguration_preExtractionHookConfiguration = Lens.lens (\CustomDocumentEnrichmentConfiguration' {preExtractionHookConfiguration} -> preExtractionHookConfiguration) (\s@CustomDocumentEnrichmentConfiguration' {} a -> s {preExtractionHookConfiguration = a} :: CustomDocumentEnrichmentConfiguration)++-- | The Amazon Resource Name (ARN) of a role with permission to run+-- @PreExtractionHookConfiguration@ and @PostExtractionHookConfiguration@+-- for altering document metadata and content during the document ingestion+-- process. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+customDocumentEnrichmentConfiguration_roleArn :: Lens.Lens' CustomDocumentEnrichmentConfiguration (Prelude.Maybe Prelude.Text)+customDocumentEnrichmentConfiguration_roleArn = Lens.lens (\CustomDocumentEnrichmentConfiguration' {roleArn} -> roleArn) (\s@CustomDocumentEnrichmentConfiguration' {} a -> s {roleArn = a} :: CustomDocumentEnrichmentConfiguration)++instance+  Data.FromJSON+    CustomDocumentEnrichmentConfiguration+  where+  parseJSON =+    Data.withObject+      "CustomDocumentEnrichmentConfiguration"+      ( \x ->+          CustomDocumentEnrichmentConfiguration'+            Prelude.<$> ( x+                            Data..:? "InlineConfigurations"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "PostExtractionHookConfiguration")+            Prelude.<*> (x Data..:? "PreExtractionHookConfiguration")+            Prelude.<*> (x Data..:? "RoleArn")+      )++instance+  Prelude.Hashable+    CustomDocumentEnrichmentConfiguration+  where+  hashWithSalt+    _salt+    CustomDocumentEnrichmentConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` inlineConfigurations+        `Prelude.hashWithSalt` postExtractionHookConfiguration+        `Prelude.hashWithSalt` preExtractionHookConfiguration+        `Prelude.hashWithSalt` roleArn++instance+  Prelude.NFData+    CustomDocumentEnrichmentConfiguration+  where+  rnf CustomDocumentEnrichmentConfiguration' {..} =+    Prelude.rnf inlineConfigurations+      `Prelude.seq` Prelude.rnf postExtractionHookConfiguration+      `Prelude.seq` Prelude.rnf preExtractionHookConfiguration+      `Prelude.seq` Prelude.rnf roleArn++instance+  Data.ToJSON+    CustomDocumentEnrichmentConfiguration+  where+  toJSON CustomDocumentEnrichmentConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("InlineConfigurations" Data..=)+              Prelude.<$> inlineConfigurations,+            ("PostExtractionHookConfiguration" Data..=)+              Prelude.<$> postExtractionHookConfiguration,+            ("PreExtractionHookConfiguration" Data..=)+              Prelude.<$> preExtractionHookConfiguration,+            ("RoleArn" Data..=) Prelude.<$> roleArn+          ]+      )
+ gen/Amazonka/Kendra/Types/DataSourceConfiguration.hs view
@@ -0,0 +1,388 @@+{-# 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.Kendra.Types.DataSourceConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DataSourceConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.AlfrescoConfiguration+import Amazonka.Kendra.Types.BoxConfiguration+import Amazonka.Kendra.Types.ConfluenceConfiguration+import Amazonka.Kendra.Types.DatabaseConfiguration+import Amazonka.Kendra.Types.FsxConfiguration+import Amazonka.Kendra.Types.GitHubConfiguration+import Amazonka.Kendra.Types.GoogleDriveConfiguration+import Amazonka.Kendra.Types.JiraConfiguration+import Amazonka.Kendra.Types.OneDriveConfiguration+import Amazonka.Kendra.Types.QuipConfiguration+import Amazonka.Kendra.Types.S3DataSourceConfiguration+import Amazonka.Kendra.Types.SalesforceConfiguration+import Amazonka.Kendra.Types.ServiceNowConfiguration+import Amazonka.Kendra.Types.SharePointConfiguration+import Amazonka.Kendra.Types.SlackConfiguration+import Amazonka.Kendra.Types.TemplateConfiguration+import Amazonka.Kendra.Types.WebCrawlerConfiguration+import Amazonka.Kendra.Types.WorkDocsConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for an Amazon Kendra data source.+--+-- /See:/ 'newDataSourceConfiguration' smart constructor.+data DataSourceConfiguration = DataSourceConfiguration'+  { -- | Provides the configuration information to connect to Alfresco as your+    -- data source.+    alfrescoConfiguration :: Prelude.Maybe AlfrescoConfiguration,+    -- | Provides the configuration information to connect to Box as your data+    -- source.+    boxConfiguration :: Prelude.Maybe BoxConfiguration,+    -- | Provides the configuration information to connect to Confluence as your+    -- data source.+    confluenceConfiguration :: Prelude.Maybe ConfluenceConfiguration,+    -- | Provides the configuration information to connect to a database as your+    -- data source.+    databaseConfiguration :: Prelude.Maybe DatabaseConfiguration,+    -- | Provides the configuration information to connect to Amazon FSx as your+    -- data source.+    fsxConfiguration :: Prelude.Maybe FsxConfiguration,+    -- | Provides the configuration information to connect to GitHub as your data+    -- source.+    gitHubConfiguration :: Prelude.Maybe GitHubConfiguration,+    -- | Provides the configuration information to connect to Google Drive as+    -- your data source.+    googleDriveConfiguration :: Prelude.Maybe GoogleDriveConfiguration,+    -- | Provides the configuration information to connect to Jira as your data+    -- source.+    jiraConfiguration :: Prelude.Maybe JiraConfiguration,+    -- | Provides the configuration information to connect to Microsoft OneDrive+    -- as your data source.+    oneDriveConfiguration :: Prelude.Maybe OneDriveConfiguration,+    -- | Provides the configuration information to connect to Quip as your data+    -- source.+    quipConfiguration :: Prelude.Maybe QuipConfiguration,+    -- | Provides the configuration information to connect to an Amazon S3 bucket+    -- as your data source.+    s3Configuration :: Prelude.Maybe S3DataSourceConfiguration,+    -- | Provides the configuration information to connect to Salesforce as your+    -- data source.+    salesforceConfiguration :: Prelude.Maybe SalesforceConfiguration,+    -- | Provides the configuration information to connect to ServiceNow as your+    -- data source.+    serviceNowConfiguration :: Prelude.Maybe ServiceNowConfiguration,+    -- | Provides the configuration information to connect to Microsoft+    -- SharePoint as your data source.+    sharePointConfiguration :: Prelude.Maybe SharePointConfiguration,+    -- | Provides the configuration information to connect to Slack as your data+    -- source.+    slackConfiguration :: Prelude.Maybe SlackConfiguration,+    -- | Provides a template for the configuration information to connect to your+    -- data source.+    templateConfiguration :: Prelude.Maybe TemplateConfiguration,+    webCrawlerConfiguration :: Prelude.Maybe WebCrawlerConfiguration,+    -- | Provides the configuration information to connect to Amazon WorkDocs as+    -- your data source.+    workDocsConfiguration :: Prelude.Maybe WorkDocsConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataSourceConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'alfrescoConfiguration', 'dataSourceConfiguration_alfrescoConfiguration' - Provides the configuration information to connect to Alfresco as your+-- data source.+--+-- 'boxConfiguration', 'dataSourceConfiguration_boxConfiguration' - Provides the configuration information to connect to Box as your data+-- source.+--+-- 'confluenceConfiguration', 'dataSourceConfiguration_confluenceConfiguration' - Provides the configuration information to connect to Confluence as your+-- data source.+--+-- 'databaseConfiguration', 'dataSourceConfiguration_databaseConfiguration' - Provides the configuration information to connect to a database as your+-- data source.+--+-- 'fsxConfiguration', 'dataSourceConfiguration_fsxConfiguration' - Provides the configuration information to connect to Amazon FSx as your+-- data source.+--+-- 'gitHubConfiguration', 'dataSourceConfiguration_gitHubConfiguration' - Provides the configuration information to connect to GitHub as your data+-- source.+--+-- 'googleDriveConfiguration', 'dataSourceConfiguration_googleDriveConfiguration' - Provides the configuration information to connect to Google Drive as+-- your data source.+--+-- 'jiraConfiguration', 'dataSourceConfiguration_jiraConfiguration' - Provides the configuration information to connect to Jira as your data+-- source.+--+-- 'oneDriveConfiguration', 'dataSourceConfiguration_oneDriveConfiguration' - Provides the configuration information to connect to Microsoft OneDrive+-- as your data source.+--+-- 'quipConfiguration', 'dataSourceConfiguration_quipConfiguration' - Provides the configuration information to connect to Quip as your data+-- source.+--+-- 's3Configuration', 'dataSourceConfiguration_s3Configuration' - Provides the configuration information to connect to an Amazon S3 bucket+-- as your data source.+--+-- 'salesforceConfiguration', 'dataSourceConfiguration_salesforceConfiguration' - Provides the configuration information to connect to Salesforce as your+-- data source.+--+-- 'serviceNowConfiguration', 'dataSourceConfiguration_serviceNowConfiguration' - Provides the configuration information to connect to ServiceNow as your+-- data source.+--+-- 'sharePointConfiguration', 'dataSourceConfiguration_sharePointConfiguration' - Provides the configuration information to connect to Microsoft+-- SharePoint as your data source.+--+-- 'slackConfiguration', 'dataSourceConfiguration_slackConfiguration' - Provides the configuration information to connect to Slack as your data+-- source.+--+-- 'templateConfiguration', 'dataSourceConfiguration_templateConfiguration' - Provides a template for the configuration information to connect to your+-- data source.+--+-- 'webCrawlerConfiguration', 'dataSourceConfiguration_webCrawlerConfiguration' - Undocumented member.+--+-- 'workDocsConfiguration', 'dataSourceConfiguration_workDocsConfiguration' - Provides the configuration information to connect to Amazon WorkDocs as+-- your data source.+newDataSourceConfiguration ::+  DataSourceConfiguration+newDataSourceConfiguration =+  DataSourceConfiguration'+    { alfrescoConfiguration =+        Prelude.Nothing,+      boxConfiguration = Prelude.Nothing,+      confluenceConfiguration = Prelude.Nothing,+      databaseConfiguration = Prelude.Nothing,+      fsxConfiguration = Prelude.Nothing,+      gitHubConfiguration = Prelude.Nothing,+      googleDriveConfiguration = Prelude.Nothing,+      jiraConfiguration = Prelude.Nothing,+      oneDriveConfiguration = Prelude.Nothing,+      quipConfiguration = Prelude.Nothing,+      s3Configuration = Prelude.Nothing,+      salesforceConfiguration = Prelude.Nothing,+      serviceNowConfiguration = Prelude.Nothing,+      sharePointConfiguration = Prelude.Nothing,+      slackConfiguration = Prelude.Nothing,+      templateConfiguration = Prelude.Nothing,+      webCrawlerConfiguration = Prelude.Nothing,+      workDocsConfiguration = Prelude.Nothing+    }++-- | Provides the configuration information to connect to Alfresco as your+-- data source.+dataSourceConfiguration_alfrescoConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe AlfrescoConfiguration)+dataSourceConfiguration_alfrescoConfiguration = Lens.lens (\DataSourceConfiguration' {alfrescoConfiguration} -> alfrescoConfiguration) (\s@DataSourceConfiguration' {} a -> s {alfrescoConfiguration = a} :: DataSourceConfiguration)++-- | Provides the configuration information to connect to Box as your data+-- source.+dataSourceConfiguration_boxConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe BoxConfiguration)+dataSourceConfiguration_boxConfiguration = Lens.lens (\DataSourceConfiguration' {boxConfiguration} -> boxConfiguration) (\s@DataSourceConfiguration' {} a -> s {boxConfiguration = a} :: DataSourceConfiguration)++-- | Provides the configuration information to connect to Confluence as your+-- data source.+dataSourceConfiguration_confluenceConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe ConfluenceConfiguration)+dataSourceConfiguration_confluenceConfiguration = Lens.lens (\DataSourceConfiguration' {confluenceConfiguration} -> confluenceConfiguration) (\s@DataSourceConfiguration' {} a -> s {confluenceConfiguration = a} :: DataSourceConfiguration)++-- | Provides the configuration information to connect to a database as your+-- data source.+dataSourceConfiguration_databaseConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe DatabaseConfiguration)+dataSourceConfiguration_databaseConfiguration = Lens.lens (\DataSourceConfiguration' {databaseConfiguration} -> databaseConfiguration) (\s@DataSourceConfiguration' {} a -> s {databaseConfiguration = a} :: DataSourceConfiguration)++-- | Provides the configuration information to connect to Amazon FSx as your+-- data source.+dataSourceConfiguration_fsxConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe FsxConfiguration)+dataSourceConfiguration_fsxConfiguration = Lens.lens (\DataSourceConfiguration' {fsxConfiguration} -> fsxConfiguration) (\s@DataSourceConfiguration' {} a -> s {fsxConfiguration = a} :: DataSourceConfiguration)++-- | Provides the configuration information to connect to GitHub as your data+-- source.+dataSourceConfiguration_gitHubConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe GitHubConfiguration)+dataSourceConfiguration_gitHubConfiguration = Lens.lens (\DataSourceConfiguration' {gitHubConfiguration} -> gitHubConfiguration) (\s@DataSourceConfiguration' {} a -> s {gitHubConfiguration = a} :: DataSourceConfiguration)++-- | Provides the configuration information to connect to Google Drive as+-- your data source.+dataSourceConfiguration_googleDriveConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe GoogleDriveConfiguration)+dataSourceConfiguration_googleDriveConfiguration = Lens.lens (\DataSourceConfiguration' {googleDriveConfiguration} -> googleDriveConfiguration) (\s@DataSourceConfiguration' {} a -> s {googleDriveConfiguration = a} :: DataSourceConfiguration)++-- | Provides the configuration information to connect to Jira as your data+-- source.+dataSourceConfiguration_jiraConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe JiraConfiguration)+dataSourceConfiguration_jiraConfiguration = Lens.lens (\DataSourceConfiguration' {jiraConfiguration} -> jiraConfiguration) (\s@DataSourceConfiguration' {} a -> s {jiraConfiguration = a} :: DataSourceConfiguration)++-- | Provides the configuration information to connect to Microsoft OneDrive+-- as your data source.+dataSourceConfiguration_oneDriveConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe OneDriveConfiguration)+dataSourceConfiguration_oneDriveConfiguration = Lens.lens (\DataSourceConfiguration' {oneDriveConfiguration} -> oneDriveConfiguration) (\s@DataSourceConfiguration' {} a -> s {oneDriveConfiguration = a} :: DataSourceConfiguration)++-- | Provides the configuration information to connect to Quip as your data+-- source.+dataSourceConfiguration_quipConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe QuipConfiguration)+dataSourceConfiguration_quipConfiguration = Lens.lens (\DataSourceConfiguration' {quipConfiguration} -> quipConfiguration) (\s@DataSourceConfiguration' {} a -> s {quipConfiguration = a} :: DataSourceConfiguration)++-- | Provides the configuration information to connect to an Amazon S3 bucket+-- as your data source.+dataSourceConfiguration_s3Configuration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe S3DataSourceConfiguration)+dataSourceConfiguration_s3Configuration = Lens.lens (\DataSourceConfiguration' {s3Configuration} -> s3Configuration) (\s@DataSourceConfiguration' {} a -> s {s3Configuration = a} :: DataSourceConfiguration)++-- | Provides the configuration information to connect to Salesforce as your+-- data source.+dataSourceConfiguration_salesforceConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe SalesforceConfiguration)+dataSourceConfiguration_salesforceConfiguration = Lens.lens (\DataSourceConfiguration' {salesforceConfiguration} -> salesforceConfiguration) (\s@DataSourceConfiguration' {} a -> s {salesforceConfiguration = a} :: DataSourceConfiguration)++-- | Provides the configuration information to connect to ServiceNow as your+-- data source.+dataSourceConfiguration_serviceNowConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe ServiceNowConfiguration)+dataSourceConfiguration_serviceNowConfiguration = Lens.lens (\DataSourceConfiguration' {serviceNowConfiguration} -> serviceNowConfiguration) (\s@DataSourceConfiguration' {} a -> s {serviceNowConfiguration = a} :: DataSourceConfiguration)++-- | Provides the configuration information to connect to Microsoft+-- SharePoint as your data source.+dataSourceConfiguration_sharePointConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe SharePointConfiguration)+dataSourceConfiguration_sharePointConfiguration = Lens.lens (\DataSourceConfiguration' {sharePointConfiguration} -> sharePointConfiguration) (\s@DataSourceConfiguration' {} a -> s {sharePointConfiguration = a} :: DataSourceConfiguration)++-- | Provides the configuration information to connect to Slack as your data+-- source.+dataSourceConfiguration_slackConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe SlackConfiguration)+dataSourceConfiguration_slackConfiguration = Lens.lens (\DataSourceConfiguration' {slackConfiguration} -> slackConfiguration) (\s@DataSourceConfiguration' {} a -> s {slackConfiguration = a} :: DataSourceConfiguration)++-- | Provides a template for the configuration information to connect to your+-- data source.+dataSourceConfiguration_templateConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe TemplateConfiguration)+dataSourceConfiguration_templateConfiguration = Lens.lens (\DataSourceConfiguration' {templateConfiguration} -> templateConfiguration) (\s@DataSourceConfiguration' {} a -> s {templateConfiguration = a} :: DataSourceConfiguration)++-- | Undocumented member.+dataSourceConfiguration_webCrawlerConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe WebCrawlerConfiguration)+dataSourceConfiguration_webCrawlerConfiguration = Lens.lens (\DataSourceConfiguration' {webCrawlerConfiguration} -> webCrawlerConfiguration) (\s@DataSourceConfiguration' {} a -> s {webCrawlerConfiguration = a} :: DataSourceConfiguration)++-- | Provides the configuration information to connect to Amazon WorkDocs as+-- your data source.+dataSourceConfiguration_workDocsConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe WorkDocsConfiguration)+dataSourceConfiguration_workDocsConfiguration = Lens.lens (\DataSourceConfiguration' {workDocsConfiguration} -> workDocsConfiguration) (\s@DataSourceConfiguration' {} a -> s {workDocsConfiguration = a} :: DataSourceConfiguration)++instance Data.FromJSON DataSourceConfiguration where+  parseJSON =+    Data.withObject+      "DataSourceConfiguration"+      ( \x ->+          DataSourceConfiguration'+            Prelude.<$> (x Data..:? "AlfrescoConfiguration")+            Prelude.<*> (x Data..:? "BoxConfiguration")+            Prelude.<*> (x Data..:? "ConfluenceConfiguration")+            Prelude.<*> (x Data..:? "DatabaseConfiguration")+            Prelude.<*> (x Data..:? "FsxConfiguration")+            Prelude.<*> (x Data..:? "GitHubConfiguration")+            Prelude.<*> (x Data..:? "GoogleDriveConfiguration")+            Prelude.<*> (x Data..:? "JiraConfiguration")+            Prelude.<*> (x Data..:? "OneDriveConfiguration")+            Prelude.<*> (x Data..:? "QuipConfiguration")+            Prelude.<*> (x Data..:? "S3Configuration")+            Prelude.<*> (x Data..:? "SalesforceConfiguration")+            Prelude.<*> (x Data..:? "ServiceNowConfiguration")+            Prelude.<*> (x Data..:? "SharePointConfiguration")+            Prelude.<*> (x Data..:? "SlackConfiguration")+            Prelude.<*> (x Data..:? "TemplateConfiguration")+            Prelude.<*> (x Data..:? "WebCrawlerConfiguration")+            Prelude.<*> (x Data..:? "WorkDocsConfiguration")+      )++instance Prelude.Hashable DataSourceConfiguration where+  hashWithSalt _salt DataSourceConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` alfrescoConfiguration+      `Prelude.hashWithSalt` boxConfiguration+      `Prelude.hashWithSalt` confluenceConfiguration+      `Prelude.hashWithSalt` databaseConfiguration+      `Prelude.hashWithSalt` fsxConfiguration+      `Prelude.hashWithSalt` gitHubConfiguration+      `Prelude.hashWithSalt` googleDriveConfiguration+      `Prelude.hashWithSalt` jiraConfiguration+      `Prelude.hashWithSalt` oneDriveConfiguration+      `Prelude.hashWithSalt` quipConfiguration+      `Prelude.hashWithSalt` s3Configuration+      `Prelude.hashWithSalt` salesforceConfiguration+      `Prelude.hashWithSalt` serviceNowConfiguration+      `Prelude.hashWithSalt` sharePointConfiguration+      `Prelude.hashWithSalt` slackConfiguration+      `Prelude.hashWithSalt` templateConfiguration+      `Prelude.hashWithSalt` webCrawlerConfiguration+      `Prelude.hashWithSalt` workDocsConfiguration++instance Prelude.NFData DataSourceConfiguration where+  rnf DataSourceConfiguration' {..} =+    Prelude.rnf alfrescoConfiguration+      `Prelude.seq` Prelude.rnf boxConfiguration+      `Prelude.seq` Prelude.rnf confluenceConfiguration+      `Prelude.seq` Prelude.rnf databaseConfiguration+      `Prelude.seq` Prelude.rnf fsxConfiguration+      `Prelude.seq` Prelude.rnf gitHubConfiguration+      `Prelude.seq` Prelude.rnf googleDriveConfiguration+      `Prelude.seq` Prelude.rnf jiraConfiguration+      `Prelude.seq` Prelude.rnf oneDriveConfiguration+      `Prelude.seq` Prelude.rnf quipConfiguration+      `Prelude.seq` Prelude.rnf s3Configuration+      `Prelude.seq` Prelude.rnf salesforceConfiguration+      `Prelude.seq` Prelude.rnf serviceNowConfiguration+      `Prelude.seq` Prelude.rnf sharePointConfiguration+      `Prelude.seq` Prelude.rnf slackConfiguration+      `Prelude.seq` Prelude.rnf templateConfiguration+      `Prelude.seq` Prelude.rnf webCrawlerConfiguration+      `Prelude.seq` Prelude.rnf workDocsConfiguration++instance Data.ToJSON DataSourceConfiguration where+  toJSON DataSourceConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AlfrescoConfiguration" Data..=)+              Prelude.<$> alfrescoConfiguration,+            ("BoxConfiguration" Data..=)+              Prelude.<$> boxConfiguration,+            ("ConfluenceConfiguration" Data..=)+              Prelude.<$> confluenceConfiguration,+            ("DatabaseConfiguration" Data..=)+              Prelude.<$> databaseConfiguration,+            ("FsxConfiguration" Data..=)+              Prelude.<$> fsxConfiguration,+            ("GitHubConfiguration" Data..=)+              Prelude.<$> gitHubConfiguration,+            ("GoogleDriveConfiguration" Data..=)+              Prelude.<$> googleDriveConfiguration,+            ("JiraConfiguration" Data..=)+              Prelude.<$> jiraConfiguration,+            ("OneDriveConfiguration" Data..=)+              Prelude.<$> oneDriveConfiguration,+            ("QuipConfiguration" Data..=)+              Prelude.<$> quipConfiguration,+            ("S3Configuration" Data..=)+              Prelude.<$> s3Configuration,+            ("SalesforceConfiguration" Data..=)+              Prelude.<$> salesforceConfiguration,+            ("ServiceNowConfiguration" Data..=)+              Prelude.<$> serviceNowConfiguration,+            ("SharePointConfiguration" Data..=)+              Prelude.<$> sharePointConfiguration,+            ("SlackConfiguration" Data..=)+              Prelude.<$> slackConfiguration,+            ("TemplateConfiguration" Data..=)+              Prelude.<$> templateConfiguration,+            ("WebCrawlerConfiguration" Data..=)+              Prelude.<$> webCrawlerConfiguration,+            ("WorkDocsConfiguration" Data..=)+              Prelude.<$> workDocsConfiguration+          ]+      )
+ gen/Amazonka/Kendra/Types/DataSourceGroup.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.Kendra.Types.DataSourceGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DataSourceGroup 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++-- | Data source information for user context filtering.+--+-- /See:/ 'newDataSourceGroup' smart constructor.+data DataSourceGroup = DataSourceGroup'+  { -- | The identifier of the group you want to add to your list of groups. This+    -- is for filtering search results based on the groups\' access to+    -- documents.+    groupId :: Prelude.Text,+    -- | The identifier of the data source group you want to add to your list of+    -- data source groups. This is for filtering search results based on the+    -- groups\' access to documents in that data source.+    dataSourceId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataSourceGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'groupId', 'dataSourceGroup_groupId' - The identifier of the group you want to add to your list of groups. This+-- is for filtering search results based on the groups\' access to+-- documents.+--+-- 'dataSourceId', 'dataSourceGroup_dataSourceId' - The identifier of the data source group you want to add to your list of+-- data source groups. This is for filtering search results based on the+-- groups\' access to documents in that data source.+newDataSourceGroup ::+  -- | 'groupId'+  Prelude.Text ->+  -- | 'dataSourceId'+  Prelude.Text ->+  DataSourceGroup+newDataSourceGroup pGroupId_ pDataSourceId_ =+  DataSourceGroup'+    { groupId = pGroupId_,+      dataSourceId = pDataSourceId_+    }++-- | The identifier of the group you want to add to your list of groups. This+-- is for filtering search results based on the groups\' access to+-- documents.+dataSourceGroup_groupId :: Lens.Lens' DataSourceGroup Prelude.Text+dataSourceGroup_groupId = Lens.lens (\DataSourceGroup' {groupId} -> groupId) (\s@DataSourceGroup' {} a -> s {groupId = a} :: DataSourceGroup)++-- | The identifier of the data source group you want to add to your list of+-- data source groups. This is for filtering search results based on the+-- groups\' access to documents in that data source.+dataSourceGroup_dataSourceId :: Lens.Lens' DataSourceGroup Prelude.Text+dataSourceGroup_dataSourceId = Lens.lens (\DataSourceGroup' {dataSourceId} -> dataSourceId) (\s@DataSourceGroup' {} a -> s {dataSourceId = a} :: DataSourceGroup)++instance Prelude.Hashable DataSourceGroup where+  hashWithSalt _salt DataSourceGroup' {..} =+    _salt+      `Prelude.hashWithSalt` groupId+      `Prelude.hashWithSalt` dataSourceId++instance Prelude.NFData DataSourceGroup where+  rnf DataSourceGroup' {..} =+    Prelude.rnf groupId+      `Prelude.seq` Prelude.rnf dataSourceId++instance Data.ToJSON DataSourceGroup where+  toJSON DataSourceGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("GroupId" Data..= groupId),+            Prelude.Just ("DataSourceId" Data..= dataSourceId)+          ]+      )
+ gen/Amazonka/Kendra/Types/DataSourceStatus.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.Kendra.Types.DataSourceStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DataSourceStatus+  ( DataSourceStatus+      ( ..,+        DataSourceStatus_ACTIVE,+        DataSourceStatus_CREATING,+        DataSourceStatus_DELETING,+        DataSourceStatus_FAILED,+        DataSourceStatus_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataSourceStatus = DataSourceStatus'+  { fromDataSourceStatus ::+      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 DataSourceStatus_ACTIVE :: DataSourceStatus+pattern DataSourceStatus_ACTIVE = DataSourceStatus' "ACTIVE"++pattern DataSourceStatus_CREATING :: DataSourceStatus+pattern DataSourceStatus_CREATING = DataSourceStatus' "CREATING"++pattern DataSourceStatus_DELETING :: DataSourceStatus+pattern DataSourceStatus_DELETING = DataSourceStatus' "DELETING"++pattern DataSourceStatus_FAILED :: DataSourceStatus+pattern DataSourceStatus_FAILED = DataSourceStatus' "FAILED"++pattern DataSourceStatus_UPDATING :: DataSourceStatus+pattern DataSourceStatus_UPDATING = DataSourceStatus' "UPDATING"++{-# COMPLETE+  DataSourceStatus_ACTIVE,+  DataSourceStatus_CREATING,+  DataSourceStatus_DELETING,+  DataSourceStatus_FAILED,+  DataSourceStatus_UPDATING,+  DataSourceStatus'+  #-}
+ gen/Amazonka/Kendra/Types/DataSourceSummary.hs view
@@ -0,0 +1,158 @@+{-# 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.Kendra.Types.DataSourceSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DataSourceSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceStatus+import Amazonka.Kendra.Types.DataSourceType+import qualified Amazonka.Prelude as Prelude++-- | Summary information for a Amazon Kendra data source.+--+-- /See:/ 'newDataSourceSummary' smart constructor.+data DataSourceSummary = DataSourceSummary'+  { -- | The UNIX datetime that the data source was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The identifier for the data source.+    id :: Prelude.Maybe Prelude.Text,+    -- | The code for a language. This shows a supported language for all+    -- documents in the data source. English is supported by default. For more+    -- information on supported languages, including their codes, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+    languageCode :: Prelude.Maybe Prelude.Text,+    -- | The name of the data source.+    name :: Prelude.Maybe Prelude.Text,+    -- | The status of the data source. When the status is @ACTIVE@ the data+    -- source is ready to use.+    status :: Prelude.Maybe DataSourceStatus,+    -- | The type of the data source.+    type' :: Prelude.Maybe DataSourceType,+    -- | The UNIX datetime that the data source was lasted updated.+    updatedAt :: Prelude.Maybe Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataSourceSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdAt', 'dataSourceSummary_createdAt' - The UNIX datetime that the data source was created.+--+-- 'id', 'dataSourceSummary_id' - The identifier for the data source.+--+-- 'languageCode', 'dataSourceSummary_languageCode' - The code for a language. This shows a supported language for all+-- documents in the data source. English is supported by default. For more+-- information on supported languages, including their codes, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+--+-- 'name', 'dataSourceSummary_name' - The name of the data source.+--+-- 'status', 'dataSourceSummary_status' - The status of the data source. When the status is @ACTIVE@ the data+-- source is ready to use.+--+-- 'type'', 'dataSourceSummary_type' - The type of the data source.+--+-- 'updatedAt', 'dataSourceSummary_updatedAt' - The UNIX datetime that the data source was lasted updated.+newDataSourceSummary ::+  DataSourceSummary+newDataSourceSummary =+  DataSourceSummary'+    { createdAt = Prelude.Nothing,+      id = Prelude.Nothing,+      languageCode = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing,+      type' = Prelude.Nothing,+      updatedAt = Prelude.Nothing+    }++-- | The UNIX datetime that the data source was created.+dataSourceSummary_createdAt :: Lens.Lens' DataSourceSummary (Prelude.Maybe Prelude.UTCTime)+dataSourceSummary_createdAt = Lens.lens (\DataSourceSummary' {createdAt} -> createdAt) (\s@DataSourceSummary' {} a -> s {createdAt = a} :: DataSourceSummary) Prelude.. Lens.mapping Data._Time++-- | The identifier for the data source.+dataSourceSummary_id :: Lens.Lens' DataSourceSummary (Prelude.Maybe Prelude.Text)+dataSourceSummary_id = Lens.lens (\DataSourceSummary' {id} -> id) (\s@DataSourceSummary' {} a -> s {id = a} :: DataSourceSummary)++-- | The code for a language. This shows a supported language for all+-- documents in the data source. English is supported by default. For more+-- information on supported languages, including their codes, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+dataSourceSummary_languageCode :: Lens.Lens' DataSourceSummary (Prelude.Maybe Prelude.Text)+dataSourceSummary_languageCode = Lens.lens (\DataSourceSummary' {languageCode} -> languageCode) (\s@DataSourceSummary' {} a -> s {languageCode = a} :: DataSourceSummary)++-- | The name of the data source.+dataSourceSummary_name :: Lens.Lens' DataSourceSummary (Prelude.Maybe Prelude.Text)+dataSourceSummary_name = Lens.lens (\DataSourceSummary' {name} -> name) (\s@DataSourceSummary' {} a -> s {name = a} :: DataSourceSummary)++-- | The status of the data source. When the status is @ACTIVE@ the data+-- source is ready to use.+dataSourceSummary_status :: Lens.Lens' DataSourceSummary (Prelude.Maybe DataSourceStatus)+dataSourceSummary_status = Lens.lens (\DataSourceSummary' {status} -> status) (\s@DataSourceSummary' {} a -> s {status = a} :: DataSourceSummary)++-- | The type of the data source.+dataSourceSummary_type :: Lens.Lens' DataSourceSummary (Prelude.Maybe DataSourceType)+dataSourceSummary_type = Lens.lens (\DataSourceSummary' {type'} -> type') (\s@DataSourceSummary' {} a -> s {type' = a} :: DataSourceSummary)++-- | The UNIX datetime that the data source was lasted updated.+dataSourceSummary_updatedAt :: Lens.Lens' DataSourceSummary (Prelude.Maybe Prelude.UTCTime)+dataSourceSummary_updatedAt = Lens.lens (\DataSourceSummary' {updatedAt} -> updatedAt) (\s@DataSourceSummary' {} a -> s {updatedAt = a} :: DataSourceSummary) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON DataSourceSummary where+  parseJSON =+    Data.withObject+      "DataSourceSummary"+      ( \x ->+          DataSourceSummary'+            Prelude.<$> (x Data..:? "CreatedAt")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "LanguageCode")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "Type")+            Prelude.<*> (x Data..:? "UpdatedAt")+      )++instance Prelude.Hashable DataSourceSummary where+  hashWithSalt _salt DataSourceSummary' {..} =+    _salt+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` languageCode+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` updatedAt++instance Prelude.NFData DataSourceSummary where+  rnf DataSourceSummary' {..} =+    Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf languageCode+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf updatedAt
+ gen/Amazonka/Kendra/Types/DataSourceSyncJob.hs view
@@ -0,0 +1,190 @@+{-# 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.Kendra.Types.DataSourceSyncJob+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DataSourceSyncJob where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceSyncJobMetrics+import Amazonka.Kendra.Types.DataSourceSyncJobStatus+import Amazonka.Kendra.Types.ErrorCode+import qualified Amazonka.Prelude as Prelude++-- | Provides information about a data source synchronization job.+--+-- /See:/ 'newDataSourceSyncJob' smart constructor.+data DataSourceSyncJob = DataSourceSyncJob'+  { -- | If the reason that the synchronization failed is due to an error with+    -- the underlying data source, this field contains a code that identifies+    -- the error.+    dataSourceErrorCode :: Prelude.Maybe Prelude.Text,+    -- | The UNIX datetime that the synchronization job completed.+    endTime :: Prelude.Maybe Data.POSIX,+    -- | If the @Status@ field is set to @FAILED@, the @ErrorCode@ field+    -- indicates the reason the synchronization failed.+    errorCode :: Prelude.Maybe ErrorCode,+    -- | If the @Status@ field is set to @ERROR@, the @ErrorMessage@ field+    -- contains a description of the error that caused the synchronization to+    -- fail.+    errorMessage :: Prelude.Maybe Prelude.Text,+    -- | A identifier for the synchronization job.+    executionId :: Prelude.Maybe Prelude.Text,+    -- | Maps a batch delete document request to a specific data source sync job.+    -- This is optional and should only be supplied when documents are deleted+    -- by a data source connector.+    metrics :: Prelude.Maybe DataSourceSyncJobMetrics,+    -- | The UNIX datetime that the synchronization job started.+    startTime :: Prelude.Maybe Data.POSIX,+    -- | The execution status of the synchronization job. When the @Status@ field+    -- is set to @SUCCEEDED@, the synchronization job is done. If the status+    -- code is set to @FAILED@, the @ErrorCode@ and @ErrorMessage@ fields give+    -- you the reason for the failure.+    status :: Prelude.Maybe DataSourceSyncJobStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataSourceSyncJob' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSourceErrorCode', 'dataSourceSyncJob_dataSourceErrorCode' - If the reason that the synchronization failed is due to an error with+-- the underlying data source, this field contains a code that identifies+-- the error.+--+-- 'endTime', 'dataSourceSyncJob_endTime' - The UNIX datetime that the synchronization job completed.+--+-- 'errorCode', 'dataSourceSyncJob_errorCode' - If the @Status@ field is set to @FAILED@, the @ErrorCode@ field+-- indicates the reason the synchronization failed.+--+-- 'errorMessage', 'dataSourceSyncJob_errorMessage' - If the @Status@ field is set to @ERROR@, the @ErrorMessage@ field+-- contains a description of the error that caused the synchronization to+-- fail.+--+-- 'executionId', 'dataSourceSyncJob_executionId' - A identifier for the synchronization job.+--+-- 'metrics', 'dataSourceSyncJob_metrics' - Maps a batch delete document request to a specific data source sync job.+-- This is optional and should only be supplied when documents are deleted+-- by a data source connector.+--+-- 'startTime', 'dataSourceSyncJob_startTime' - The UNIX datetime that the synchronization job started.+--+-- 'status', 'dataSourceSyncJob_status' - The execution status of the synchronization job. When the @Status@ field+-- is set to @SUCCEEDED@, the synchronization job is done. If the status+-- code is set to @FAILED@, the @ErrorCode@ and @ErrorMessage@ fields give+-- you the reason for the failure.+newDataSourceSyncJob ::+  DataSourceSyncJob+newDataSourceSyncJob =+  DataSourceSyncJob'+    { dataSourceErrorCode =+        Prelude.Nothing,+      endTime = Prelude.Nothing,+      errorCode = Prelude.Nothing,+      errorMessage = Prelude.Nothing,+      executionId = Prelude.Nothing,+      metrics = Prelude.Nothing,+      startTime = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | If the reason that the synchronization failed is due to an error with+-- the underlying data source, this field contains a code that identifies+-- the error.+dataSourceSyncJob_dataSourceErrorCode :: Lens.Lens' DataSourceSyncJob (Prelude.Maybe Prelude.Text)+dataSourceSyncJob_dataSourceErrorCode = Lens.lens (\DataSourceSyncJob' {dataSourceErrorCode} -> dataSourceErrorCode) (\s@DataSourceSyncJob' {} a -> s {dataSourceErrorCode = a} :: DataSourceSyncJob)++-- | The UNIX datetime that the synchronization job completed.+dataSourceSyncJob_endTime :: Lens.Lens' DataSourceSyncJob (Prelude.Maybe Prelude.UTCTime)+dataSourceSyncJob_endTime = Lens.lens (\DataSourceSyncJob' {endTime} -> endTime) (\s@DataSourceSyncJob' {} a -> s {endTime = a} :: DataSourceSyncJob) Prelude.. Lens.mapping Data._Time++-- | If the @Status@ field is set to @FAILED@, the @ErrorCode@ field+-- indicates the reason the synchronization failed.+dataSourceSyncJob_errorCode :: Lens.Lens' DataSourceSyncJob (Prelude.Maybe ErrorCode)+dataSourceSyncJob_errorCode = Lens.lens (\DataSourceSyncJob' {errorCode} -> errorCode) (\s@DataSourceSyncJob' {} a -> s {errorCode = a} :: DataSourceSyncJob)++-- | If the @Status@ field is set to @ERROR@, the @ErrorMessage@ field+-- contains a description of the error that caused the synchronization to+-- fail.+dataSourceSyncJob_errorMessage :: Lens.Lens' DataSourceSyncJob (Prelude.Maybe Prelude.Text)+dataSourceSyncJob_errorMessage = Lens.lens (\DataSourceSyncJob' {errorMessage} -> errorMessage) (\s@DataSourceSyncJob' {} a -> s {errorMessage = a} :: DataSourceSyncJob)++-- | A identifier for the synchronization job.+dataSourceSyncJob_executionId :: Lens.Lens' DataSourceSyncJob (Prelude.Maybe Prelude.Text)+dataSourceSyncJob_executionId = Lens.lens (\DataSourceSyncJob' {executionId} -> executionId) (\s@DataSourceSyncJob' {} a -> s {executionId = a} :: DataSourceSyncJob)++-- | Maps a batch delete document request to a specific data source sync job.+-- This is optional and should only be supplied when documents are deleted+-- by a data source connector.+dataSourceSyncJob_metrics :: Lens.Lens' DataSourceSyncJob (Prelude.Maybe DataSourceSyncJobMetrics)+dataSourceSyncJob_metrics = Lens.lens (\DataSourceSyncJob' {metrics} -> metrics) (\s@DataSourceSyncJob' {} a -> s {metrics = a} :: DataSourceSyncJob)++-- | The UNIX datetime that the synchronization job started.+dataSourceSyncJob_startTime :: Lens.Lens' DataSourceSyncJob (Prelude.Maybe Prelude.UTCTime)+dataSourceSyncJob_startTime = Lens.lens (\DataSourceSyncJob' {startTime} -> startTime) (\s@DataSourceSyncJob' {} a -> s {startTime = a} :: DataSourceSyncJob) Prelude.. Lens.mapping Data._Time++-- | The execution status of the synchronization job. When the @Status@ field+-- is set to @SUCCEEDED@, the synchronization job is done. If the status+-- code is set to @FAILED@, the @ErrorCode@ and @ErrorMessage@ fields give+-- you the reason for the failure.+dataSourceSyncJob_status :: Lens.Lens' DataSourceSyncJob (Prelude.Maybe DataSourceSyncJobStatus)+dataSourceSyncJob_status = Lens.lens (\DataSourceSyncJob' {status} -> status) (\s@DataSourceSyncJob' {} a -> s {status = a} :: DataSourceSyncJob)++instance Data.FromJSON DataSourceSyncJob where+  parseJSON =+    Data.withObject+      "DataSourceSyncJob"+      ( \x ->+          DataSourceSyncJob'+            Prelude.<$> (x Data..:? "DataSourceErrorCode")+            Prelude.<*> (x Data..:? "EndTime")+            Prelude.<*> (x Data..:? "ErrorCode")+            Prelude.<*> (x Data..:? "ErrorMessage")+            Prelude.<*> (x Data..:? "ExecutionId")+            Prelude.<*> (x Data..:? "Metrics")+            Prelude.<*> (x Data..:? "StartTime")+            Prelude.<*> (x Data..:? "Status")+      )++instance Prelude.Hashable DataSourceSyncJob where+  hashWithSalt _salt DataSourceSyncJob' {..} =+    _salt+      `Prelude.hashWithSalt` dataSourceErrorCode+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` errorCode+      `Prelude.hashWithSalt` errorMessage+      `Prelude.hashWithSalt` executionId+      `Prelude.hashWithSalt` metrics+      `Prelude.hashWithSalt` startTime+      `Prelude.hashWithSalt` status++instance Prelude.NFData DataSourceSyncJob where+  rnf DataSourceSyncJob' {..} =+    Prelude.rnf dataSourceErrorCode+      `Prelude.seq` Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf errorCode+      `Prelude.seq` Prelude.rnf errorMessage+      `Prelude.seq` Prelude.rnf executionId+      `Prelude.seq` Prelude.rnf metrics+      `Prelude.seq` Prelude.rnf startTime+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Kendra/Types/DataSourceSyncJobMetricTarget.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.Kendra.Types.DataSourceSyncJobMetricTarget+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DataSourceSyncJobMetricTarget 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++-- | Maps a particular data source sync job to a particular data source.+--+-- /See:/ 'newDataSourceSyncJobMetricTarget' smart constructor.+data DataSourceSyncJobMetricTarget = DataSourceSyncJobMetricTarget'+  { -- | The ID of the sync job that is running on the data source.+    --+    -- If the ID of a sync job is not provided and there is a sync job running,+    -- then the ID of this sync job is used and metrics are generated for this+    -- sync job.+    --+    -- If the ID of a sync job is not provided and there is no sync job+    -- running, then no metrics are generated and documents are+    -- indexed\/deleted at the index level without sync job metrics included.+    dataSourceSyncJobId :: Prelude.Maybe Prelude.Text,+    -- | The ID of the data source that is running the sync job.+    dataSourceId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataSourceSyncJobMetricTarget' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSourceSyncJobId', 'dataSourceSyncJobMetricTarget_dataSourceSyncJobId' - The ID of the sync job that is running on the data source.+--+-- If the ID of a sync job is not provided and there is a sync job running,+-- then the ID of this sync job is used and metrics are generated for this+-- sync job.+--+-- If the ID of a sync job is not provided and there is no sync job+-- running, then no metrics are generated and documents are+-- indexed\/deleted at the index level without sync job metrics included.+--+-- 'dataSourceId', 'dataSourceSyncJobMetricTarget_dataSourceId' - The ID of the data source that is running the sync job.+newDataSourceSyncJobMetricTarget ::+  -- | 'dataSourceId'+  Prelude.Text ->+  DataSourceSyncJobMetricTarget+newDataSourceSyncJobMetricTarget pDataSourceId_ =+  DataSourceSyncJobMetricTarget'+    { dataSourceSyncJobId =+        Prelude.Nothing,+      dataSourceId = pDataSourceId_+    }++-- | The ID of the sync job that is running on the data source.+--+-- If the ID of a sync job is not provided and there is a sync job running,+-- then the ID of this sync job is used and metrics are generated for this+-- sync job.+--+-- If the ID of a sync job is not provided and there is no sync job+-- running, then no metrics are generated and documents are+-- indexed\/deleted at the index level without sync job metrics included.+dataSourceSyncJobMetricTarget_dataSourceSyncJobId :: Lens.Lens' DataSourceSyncJobMetricTarget (Prelude.Maybe Prelude.Text)+dataSourceSyncJobMetricTarget_dataSourceSyncJobId = Lens.lens (\DataSourceSyncJobMetricTarget' {dataSourceSyncJobId} -> dataSourceSyncJobId) (\s@DataSourceSyncJobMetricTarget' {} a -> s {dataSourceSyncJobId = a} :: DataSourceSyncJobMetricTarget)++-- | The ID of the data source that is running the sync job.+dataSourceSyncJobMetricTarget_dataSourceId :: Lens.Lens' DataSourceSyncJobMetricTarget Prelude.Text+dataSourceSyncJobMetricTarget_dataSourceId = Lens.lens (\DataSourceSyncJobMetricTarget' {dataSourceId} -> dataSourceId) (\s@DataSourceSyncJobMetricTarget' {} a -> s {dataSourceId = a} :: DataSourceSyncJobMetricTarget)++instance+  Prelude.Hashable+    DataSourceSyncJobMetricTarget+  where+  hashWithSalt _salt DataSourceSyncJobMetricTarget' {..} =+    _salt+      `Prelude.hashWithSalt` dataSourceSyncJobId+      `Prelude.hashWithSalt` dataSourceId++instance Prelude.NFData DataSourceSyncJobMetricTarget where+  rnf DataSourceSyncJobMetricTarget' {..} =+    Prelude.rnf dataSourceSyncJobId+      `Prelude.seq` Prelude.rnf dataSourceId++instance Data.ToJSON DataSourceSyncJobMetricTarget where+  toJSON DataSourceSyncJobMetricTarget' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataSourceSyncJobId" Data..=)+              Prelude.<$> dataSourceSyncJobId,+            Prelude.Just ("DataSourceId" Data..= dataSourceId)+          ]+      )
+ gen/Amazonka/Kendra/Types/DataSourceSyncJobMetrics.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.Kendra.Types.DataSourceSyncJobMetrics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DataSourceSyncJobMetrics 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++-- | Maps a batch delete document request to a specific data source sync job.+-- This is optional and should only be supplied when documents are deleted+-- by a data source connector.+--+-- /See:/ 'newDataSourceSyncJobMetrics' smart constructor.+data DataSourceSyncJobMetrics = DataSourceSyncJobMetrics'+  { -- | The number of documents added from the data source up to now in the data+    -- source sync.+    documentsAdded :: Prelude.Maybe Prelude.Text,+    -- | The number of documents deleted from the data source up to now in the+    -- data source sync run.+    documentsDeleted :: Prelude.Maybe Prelude.Text,+    -- | The number of documents that failed to sync from the data source up to+    -- now in the data source sync run.+    documentsFailed :: Prelude.Maybe Prelude.Text,+    -- | The number of documents modified in the data source up to now in the+    -- data source sync run.+    documentsModified :: Prelude.Maybe Prelude.Text,+    -- | The current number of documents crawled by the current sync job in the+    -- data source.+    documentsScanned :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataSourceSyncJobMetrics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'documentsAdded', 'dataSourceSyncJobMetrics_documentsAdded' - The number of documents added from the data source up to now in the data+-- source sync.+--+-- 'documentsDeleted', 'dataSourceSyncJobMetrics_documentsDeleted' - The number of documents deleted from the data source up to now in the+-- data source sync run.+--+-- 'documentsFailed', 'dataSourceSyncJobMetrics_documentsFailed' - The number of documents that failed to sync from the data source up to+-- now in the data source sync run.+--+-- 'documentsModified', 'dataSourceSyncJobMetrics_documentsModified' - The number of documents modified in the data source up to now in the+-- data source sync run.+--+-- 'documentsScanned', 'dataSourceSyncJobMetrics_documentsScanned' - The current number of documents crawled by the current sync job in the+-- data source.+newDataSourceSyncJobMetrics ::+  DataSourceSyncJobMetrics+newDataSourceSyncJobMetrics =+  DataSourceSyncJobMetrics'+    { documentsAdded =+        Prelude.Nothing,+      documentsDeleted = Prelude.Nothing,+      documentsFailed = Prelude.Nothing,+      documentsModified = Prelude.Nothing,+      documentsScanned = Prelude.Nothing+    }++-- | The number of documents added from the data source up to now in the data+-- source sync.+dataSourceSyncJobMetrics_documentsAdded :: Lens.Lens' DataSourceSyncJobMetrics (Prelude.Maybe Prelude.Text)+dataSourceSyncJobMetrics_documentsAdded = Lens.lens (\DataSourceSyncJobMetrics' {documentsAdded} -> documentsAdded) (\s@DataSourceSyncJobMetrics' {} a -> s {documentsAdded = a} :: DataSourceSyncJobMetrics)++-- | The number of documents deleted from the data source up to now in the+-- data source sync run.+dataSourceSyncJobMetrics_documentsDeleted :: Lens.Lens' DataSourceSyncJobMetrics (Prelude.Maybe Prelude.Text)+dataSourceSyncJobMetrics_documentsDeleted = Lens.lens (\DataSourceSyncJobMetrics' {documentsDeleted} -> documentsDeleted) (\s@DataSourceSyncJobMetrics' {} a -> s {documentsDeleted = a} :: DataSourceSyncJobMetrics)++-- | The number of documents that failed to sync from the data source up to+-- now in the data source sync run.+dataSourceSyncJobMetrics_documentsFailed :: Lens.Lens' DataSourceSyncJobMetrics (Prelude.Maybe Prelude.Text)+dataSourceSyncJobMetrics_documentsFailed = Lens.lens (\DataSourceSyncJobMetrics' {documentsFailed} -> documentsFailed) (\s@DataSourceSyncJobMetrics' {} a -> s {documentsFailed = a} :: DataSourceSyncJobMetrics)++-- | The number of documents modified in the data source up to now in the+-- data source sync run.+dataSourceSyncJobMetrics_documentsModified :: Lens.Lens' DataSourceSyncJobMetrics (Prelude.Maybe Prelude.Text)+dataSourceSyncJobMetrics_documentsModified = Lens.lens (\DataSourceSyncJobMetrics' {documentsModified} -> documentsModified) (\s@DataSourceSyncJobMetrics' {} a -> s {documentsModified = a} :: DataSourceSyncJobMetrics)++-- | The current number of documents crawled by the current sync job in the+-- data source.+dataSourceSyncJobMetrics_documentsScanned :: Lens.Lens' DataSourceSyncJobMetrics (Prelude.Maybe Prelude.Text)+dataSourceSyncJobMetrics_documentsScanned = Lens.lens (\DataSourceSyncJobMetrics' {documentsScanned} -> documentsScanned) (\s@DataSourceSyncJobMetrics' {} a -> s {documentsScanned = a} :: DataSourceSyncJobMetrics)++instance Data.FromJSON DataSourceSyncJobMetrics where+  parseJSON =+    Data.withObject+      "DataSourceSyncJobMetrics"+      ( \x ->+          DataSourceSyncJobMetrics'+            Prelude.<$> (x Data..:? "DocumentsAdded")+            Prelude.<*> (x Data..:? "DocumentsDeleted")+            Prelude.<*> (x Data..:? "DocumentsFailed")+            Prelude.<*> (x Data..:? "DocumentsModified")+            Prelude.<*> (x Data..:? "DocumentsScanned")+      )++instance Prelude.Hashable DataSourceSyncJobMetrics where+  hashWithSalt _salt DataSourceSyncJobMetrics' {..} =+    _salt+      `Prelude.hashWithSalt` documentsAdded+      `Prelude.hashWithSalt` documentsDeleted+      `Prelude.hashWithSalt` documentsFailed+      `Prelude.hashWithSalt` documentsModified+      `Prelude.hashWithSalt` documentsScanned++instance Prelude.NFData DataSourceSyncJobMetrics where+  rnf DataSourceSyncJobMetrics' {..} =+    Prelude.rnf documentsAdded+      `Prelude.seq` Prelude.rnf documentsDeleted+      `Prelude.seq` Prelude.rnf documentsFailed+      `Prelude.seq` Prelude.rnf documentsModified+      `Prelude.seq` Prelude.rnf documentsScanned
+ gen/Amazonka/Kendra/Types/DataSourceSyncJobStatus.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.Kendra.Types.DataSourceSyncJobStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DataSourceSyncJobStatus+  ( DataSourceSyncJobStatus+      ( ..,+        DataSourceSyncJobStatus_ABORTED,+        DataSourceSyncJobStatus_FAILED,+        DataSourceSyncJobStatus_INCOMPLETE,+        DataSourceSyncJobStatus_STOPPING,+        DataSourceSyncJobStatus_SUCCEEDED,+        DataSourceSyncJobStatus_SYNCING,+        DataSourceSyncJobStatus_SYNCING_INDEXING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataSourceSyncJobStatus = DataSourceSyncJobStatus'+  { fromDataSourceSyncJobStatus ::+      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 DataSourceSyncJobStatus_ABORTED :: DataSourceSyncJobStatus+pattern DataSourceSyncJobStatus_ABORTED = DataSourceSyncJobStatus' "ABORTED"++pattern DataSourceSyncJobStatus_FAILED :: DataSourceSyncJobStatus+pattern DataSourceSyncJobStatus_FAILED = DataSourceSyncJobStatus' "FAILED"++pattern DataSourceSyncJobStatus_INCOMPLETE :: DataSourceSyncJobStatus+pattern DataSourceSyncJobStatus_INCOMPLETE = DataSourceSyncJobStatus' "INCOMPLETE"++pattern DataSourceSyncJobStatus_STOPPING :: DataSourceSyncJobStatus+pattern DataSourceSyncJobStatus_STOPPING = DataSourceSyncJobStatus' "STOPPING"++pattern DataSourceSyncJobStatus_SUCCEEDED :: DataSourceSyncJobStatus+pattern DataSourceSyncJobStatus_SUCCEEDED = DataSourceSyncJobStatus' "SUCCEEDED"++pattern DataSourceSyncJobStatus_SYNCING :: DataSourceSyncJobStatus+pattern DataSourceSyncJobStatus_SYNCING = DataSourceSyncJobStatus' "SYNCING"++pattern DataSourceSyncJobStatus_SYNCING_INDEXING :: DataSourceSyncJobStatus+pattern DataSourceSyncJobStatus_SYNCING_INDEXING = DataSourceSyncJobStatus' "SYNCING_INDEXING"++{-# COMPLETE+  DataSourceSyncJobStatus_ABORTED,+  DataSourceSyncJobStatus_FAILED,+  DataSourceSyncJobStatus_INCOMPLETE,+  DataSourceSyncJobStatus_STOPPING,+  DataSourceSyncJobStatus_SUCCEEDED,+  DataSourceSyncJobStatus_SYNCING,+  DataSourceSyncJobStatus_SYNCING_INDEXING,+  DataSourceSyncJobStatus'+  #-}
+ gen/Amazonka/Kendra/Types/DataSourceToIndexFieldMapping.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.Kendra.Types.DataSourceToIndexFieldMapping+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DataSourceToIndexFieldMapping 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++-- | Maps a column or attribute in the data source to an index field. You+-- must first create the fields in the index using the @UpdateIndex@ API.+--+-- /See:/ 'newDataSourceToIndexFieldMapping' smart constructor.+data DataSourceToIndexFieldMapping = DataSourceToIndexFieldMapping'+  { -- | The type of data stored in the column or attribute.+    dateFieldFormat :: Prelude.Maybe Prelude.Text,+    -- | The name of the column or attribute in the data source.+    dataSourceFieldName :: Prelude.Text,+    -- | The name of the field in the index.+    indexFieldName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataSourceToIndexFieldMapping' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dateFieldFormat', 'dataSourceToIndexFieldMapping_dateFieldFormat' - The type of data stored in the column or attribute.+--+-- 'dataSourceFieldName', 'dataSourceToIndexFieldMapping_dataSourceFieldName' - The name of the column or attribute in the data source.+--+-- 'indexFieldName', 'dataSourceToIndexFieldMapping_indexFieldName' - The name of the field in the index.+newDataSourceToIndexFieldMapping ::+  -- | 'dataSourceFieldName'+  Prelude.Text ->+  -- | 'indexFieldName'+  Prelude.Text ->+  DataSourceToIndexFieldMapping+newDataSourceToIndexFieldMapping+  pDataSourceFieldName_+  pIndexFieldName_ =+    DataSourceToIndexFieldMapping'+      { dateFieldFormat =+          Prelude.Nothing,+        dataSourceFieldName = pDataSourceFieldName_,+        indexFieldName = pIndexFieldName_+      }++-- | The type of data stored in the column or attribute.+dataSourceToIndexFieldMapping_dateFieldFormat :: Lens.Lens' DataSourceToIndexFieldMapping (Prelude.Maybe Prelude.Text)+dataSourceToIndexFieldMapping_dateFieldFormat = Lens.lens (\DataSourceToIndexFieldMapping' {dateFieldFormat} -> dateFieldFormat) (\s@DataSourceToIndexFieldMapping' {} a -> s {dateFieldFormat = a} :: DataSourceToIndexFieldMapping)++-- | The name of the column or attribute in the data source.+dataSourceToIndexFieldMapping_dataSourceFieldName :: Lens.Lens' DataSourceToIndexFieldMapping Prelude.Text+dataSourceToIndexFieldMapping_dataSourceFieldName = Lens.lens (\DataSourceToIndexFieldMapping' {dataSourceFieldName} -> dataSourceFieldName) (\s@DataSourceToIndexFieldMapping' {} a -> s {dataSourceFieldName = a} :: DataSourceToIndexFieldMapping)++-- | The name of the field in the index.+dataSourceToIndexFieldMapping_indexFieldName :: Lens.Lens' DataSourceToIndexFieldMapping Prelude.Text+dataSourceToIndexFieldMapping_indexFieldName = Lens.lens (\DataSourceToIndexFieldMapping' {indexFieldName} -> indexFieldName) (\s@DataSourceToIndexFieldMapping' {} a -> s {indexFieldName = a} :: DataSourceToIndexFieldMapping)++instance Data.FromJSON DataSourceToIndexFieldMapping where+  parseJSON =+    Data.withObject+      "DataSourceToIndexFieldMapping"+      ( \x ->+          DataSourceToIndexFieldMapping'+            Prelude.<$> (x Data..:? "DateFieldFormat")+            Prelude.<*> (x Data..: "DataSourceFieldName")+            Prelude.<*> (x Data..: "IndexFieldName")+      )++instance+  Prelude.Hashable+    DataSourceToIndexFieldMapping+  where+  hashWithSalt _salt DataSourceToIndexFieldMapping' {..} =+    _salt+      `Prelude.hashWithSalt` dateFieldFormat+      `Prelude.hashWithSalt` dataSourceFieldName+      `Prelude.hashWithSalt` indexFieldName++instance Prelude.NFData DataSourceToIndexFieldMapping where+  rnf DataSourceToIndexFieldMapping' {..} =+    Prelude.rnf dateFieldFormat+      `Prelude.seq` Prelude.rnf dataSourceFieldName+      `Prelude.seq` Prelude.rnf indexFieldName++instance Data.ToJSON DataSourceToIndexFieldMapping where+  toJSON DataSourceToIndexFieldMapping' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DateFieldFormat" Data..=)+              Prelude.<$> dateFieldFormat,+            Prelude.Just+              ("DataSourceFieldName" Data..= dataSourceFieldName),+            Prelude.Just+              ("IndexFieldName" Data..= indexFieldName)+          ]+      )
+ gen/Amazonka/Kendra/Types/DataSourceType.hs view
@@ -0,0 +1,156 @@+{-# 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.Kendra.Types.DataSourceType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DataSourceType+  ( DataSourceType+      ( ..,+        DataSourceType_ALFRESCO,+        DataSourceType_BOX,+        DataSourceType_CONFLUENCE,+        DataSourceType_CUSTOM,+        DataSourceType_DATABASE,+        DataSourceType_FSX,+        DataSourceType_GITHUB,+        DataSourceType_GOOGLEDRIVE,+        DataSourceType_JIRA,+        DataSourceType_ONEDRIVE,+        DataSourceType_QUIP,+        DataSourceType_S3,+        DataSourceType_SALESFORCE,+        DataSourceType_SERVICENOW,+        DataSourceType_SHAREPOINT,+        DataSourceType_SLACK,+        DataSourceType_TEMPLATE,+        DataSourceType_WEBCRAWLER,+        DataSourceType_WORKDOCS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DataSourceType = DataSourceType'+  { fromDataSourceType ::+      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 DataSourceType_ALFRESCO :: DataSourceType+pattern DataSourceType_ALFRESCO = DataSourceType' "ALFRESCO"++pattern DataSourceType_BOX :: DataSourceType+pattern DataSourceType_BOX = DataSourceType' "BOX"++pattern DataSourceType_CONFLUENCE :: DataSourceType+pattern DataSourceType_CONFLUENCE = DataSourceType' "CONFLUENCE"++pattern DataSourceType_CUSTOM :: DataSourceType+pattern DataSourceType_CUSTOM = DataSourceType' "CUSTOM"++pattern DataSourceType_DATABASE :: DataSourceType+pattern DataSourceType_DATABASE = DataSourceType' "DATABASE"++pattern DataSourceType_FSX :: DataSourceType+pattern DataSourceType_FSX = DataSourceType' "FSX"++pattern DataSourceType_GITHUB :: DataSourceType+pattern DataSourceType_GITHUB = DataSourceType' "GITHUB"++pattern DataSourceType_GOOGLEDRIVE :: DataSourceType+pattern DataSourceType_GOOGLEDRIVE = DataSourceType' "GOOGLEDRIVE"++pattern DataSourceType_JIRA :: DataSourceType+pattern DataSourceType_JIRA = DataSourceType' "JIRA"++pattern DataSourceType_ONEDRIVE :: DataSourceType+pattern DataSourceType_ONEDRIVE = DataSourceType' "ONEDRIVE"++pattern DataSourceType_QUIP :: DataSourceType+pattern DataSourceType_QUIP = DataSourceType' "QUIP"++pattern DataSourceType_S3 :: DataSourceType+pattern DataSourceType_S3 = DataSourceType' "S3"++pattern DataSourceType_SALESFORCE :: DataSourceType+pattern DataSourceType_SALESFORCE = DataSourceType' "SALESFORCE"++pattern DataSourceType_SERVICENOW :: DataSourceType+pattern DataSourceType_SERVICENOW = DataSourceType' "SERVICENOW"++pattern DataSourceType_SHAREPOINT :: DataSourceType+pattern DataSourceType_SHAREPOINT = DataSourceType' "SHAREPOINT"++pattern DataSourceType_SLACK :: DataSourceType+pattern DataSourceType_SLACK = DataSourceType' "SLACK"++pattern DataSourceType_TEMPLATE :: DataSourceType+pattern DataSourceType_TEMPLATE = DataSourceType' "TEMPLATE"++pattern DataSourceType_WEBCRAWLER :: DataSourceType+pattern DataSourceType_WEBCRAWLER = DataSourceType' "WEBCRAWLER"++pattern DataSourceType_WORKDOCS :: DataSourceType+pattern DataSourceType_WORKDOCS = DataSourceType' "WORKDOCS"++{-# COMPLETE+  DataSourceType_ALFRESCO,+  DataSourceType_BOX,+  DataSourceType_CONFLUENCE,+  DataSourceType_CUSTOM,+  DataSourceType_DATABASE,+  DataSourceType_FSX,+  DataSourceType_GITHUB,+  DataSourceType_GOOGLEDRIVE,+  DataSourceType_JIRA,+  DataSourceType_ONEDRIVE,+  DataSourceType_QUIP,+  DataSourceType_S3,+  DataSourceType_SALESFORCE,+  DataSourceType_SERVICENOW,+  DataSourceType_SHAREPOINT,+  DataSourceType_SLACK,+  DataSourceType_TEMPLATE,+  DataSourceType_WEBCRAWLER,+  DataSourceType_WORKDOCS,+  DataSourceType'+  #-}
+ gen/Amazonka/Kendra/Types/DataSourceVpcConfiguration.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.Kendra.Types.DataSourceVpcConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DataSourceVpcConfiguration 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 configuration information to connect to an Amazon VPC.+--+-- /See:/ 'newDataSourceVpcConfiguration' smart constructor.+data DataSourceVpcConfiguration = DataSourceVpcConfiguration'+  { -- | A list of identifiers for subnets within your Amazon VPC. The subnets+    -- should be able to connect to each other in the VPC, and they should have+    -- outgoing access to the Internet through a NAT device.+    subnetIds :: Prelude.NonEmpty Prelude.Text,+    -- | A list of identifiers of security groups within your Amazon VPC. The+    -- security groups should enable Amazon Kendra to connect to the data+    -- source.+    securityGroupIds :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DataSourceVpcConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subnetIds', 'dataSourceVpcConfiguration_subnetIds' - A list of identifiers for subnets within your Amazon VPC. The subnets+-- should be able to connect to each other in the VPC, and they should have+-- outgoing access to the Internet through a NAT device.+--+-- 'securityGroupIds', 'dataSourceVpcConfiguration_securityGroupIds' - A list of identifiers of security groups within your Amazon VPC. The+-- security groups should enable Amazon Kendra to connect to the data+-- source.+newDataSourceVpcConfiguration ::+  -- | 'subnetIds'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'securityGroupIds'+  Prelude.NonEmpty Prelude.Text ->+  DataSourceVpcConfiguration+newDataSourceVpcConfiguration+  pSubnetIds_+  pSecurityGroupIds_ =+    DataSourceVpcConfiguration'+      { subnetIds =+          Lens.coerced Lens.# pSubnetIds_,+        securityGroupIds =+          Lens.coerced Lens.# pSecurityGroupIds_+      }++-- | A list of identifiers for subnets within your Amazon VPC. The subnets+-- should be able to connect to each other in the VPC, and they should have+-- outgoing access to the Internet through a NAT device.+dataSourceVpcConfiguration_subnetIds :: Lens.Lens' DataSourceVpcConfiguration (Prelude.NonEmpty Prelude.Text)+dataSourceVpcConfiguration_subnetIds = Lens.lens (\DataSourceVpcConfiguration' {subnetIds} -> subnetIds) (\s@DataSourceVpcConfiguration' {} a -> s {subnetIds = a} :: DataSourceVpcConfiguration) Prelude.. Lens.coerced++-- | A list of identifiers of security groups within your Amazon VPC. The+-- security groups should enable Amazon Kendra to connect to the data+-- source.+dataSourceVpcConfiguration_securityGroupIds :: Lens.Lens' DataSourceVpcConfiguration (Prelude.NonEmpty Prelude.Text)+dataSourceVpcConfiguration_securityGroupIds = Lens.lens (\DataSourceVpcConfiguration' {securityGroupIds} -> securityGroupIds) (\s@DataSourceVpcConfiguration' {} a -> s {securityGroupIds = a} :: DataSourceVpcConfiguration) Prelude.. Lens.coerced++instance Data.FromJSON DataSourceVpcConfiguration where+  parseJSON =+    Data.withObject+      "DataSourceVpcConfiguration"+      ( \x ->+          DataSourceVpcConfiguration'+            Prelude.<$> (x Data..: "SubnetIds")+            Prelude.<*> (x Data..: "SecurityGroupIds")+      )++instance Prelude.Hashable DataSourceVpcConfiguration where+  hashWithSalt _salt DataSourceVpcConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` subnetIds+      `Prelude.hashWithSalt` securityGroupIds++instance Prelude.NFData DataSourceVpcConfiguration where+  rnf DataSourceVpcConfiguration' {..} =+    Prelude.rnf subnetIds+      `Prelude.seq` Prelude.rnf securityGroupIds++instance Data.ToJSON DataSourceVpcConfiguration where+  toJSON DataSourceVpcConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("SubnetIds" Data..= subnetIds),+            Prelude.Just+              ("SecurityGroupIds" Data..= securityGroupIds)+          ]+      )
+ gen/Amazonka/Kendra/Types/DatabaseConfiguration.hs view
@@ -0,0 +1,177 @@+{-# 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.Kendra.Types.DatabaseConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DatabaseConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.AclConfiguration+import Amazonka.Kendra.Types.ColumnConfiguration+import Amazonka.Kendra.Types.ConnectionConfiguration+import Amazonka.Kendra.Types.DataSourceVpcConfiguration+import Amazonka.Kendra.Types.DatabaseEngineType+import Amazonka.Kendra.Types.SqlConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to a index.+--+-- /See:/ 'newDatabaseConfiguration' smart constructor.+data DatabaseConfiguration = DatabaseConfiguration'+  { -- | Information about the database column that provides information for user+    -- context filtering.+    aclConfiguration :: Prelude.Maybe AclConfiguration,+    -- | Provides information about how Amazon Kendra uses quote marks around SQL+    -- identifiers when querying a database data source.+    sqlConfiguration :: Prelude.Maybe SqlConfiguration,+    vpcConfiguration :: Prelude.Maybe DataSourceVpcConfiguration,+    -- | The type of database engine that runs the database.+    databaseEngineType :: DatabaseEngineType,+    -- | Configuration information that\'s required to connect to a database.+    connectionConfiguration :: ConnectionConfiguration,+    -- | Information about where the index should get the document information+    -- from the database.+    columnConfiguration :: ColumnConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DatabaseConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'aclConfiguration', 'databaseConfiguration_aclConfiguration' - Information about the database column that provides information for user+-- context filtering.+--+-- 'sqlConfiguration', 'databaseConfiguration_sqlConfiguration' - Provides information about how Amazon Kendra uses quote marks around SQL+-- identifiers when querying a database data source.+--+-- 'vpcConfiguration', 'databaseConfiguration_vpcConfiguration' - Undocumented member.+--+-- 'databaseEngineType', 'databaseConfiguration_databaseEngineType' - The type of database engine that runs the database.+--+-- 'connectionConfiguration', 'databaseConfiguration_connectionConfiguration' - Configuration information that\'s required to connect to a database.+--+-- 'columnConfiguration', 'databaseConfiguration_columnConfiguration' - Information about where the index should get the document information+-- from the database.+newDatabaseConfiguration ::+  -- | 'databaseEngineType'+  DatabaseEngineType ->+  -- | 'connectionConfiguration'+  ConnectionConfiguration ->+  -- | 'columnConfiguration'+  ColumnConfiguration ->+  DatabaseConfiguration+newDatabaseConfiguration+  pDatabaseEngineType_+  pConnectionConfiguration_+  pColumnConfiguration_ =+    DatabaseConfiguration'+      { aclConfiguration =+          Prelude.Nothing,+        sqlConfiguration = Prelude.Nothing,+        vpcConfiguration = Prelude.Nothing,+        databaseEngineType = pDatabaseEngineType_,+        connectionConfiguration = pConnectionConfiguration_,+        columnConfiguration = pColumnConfiguration_+      }++-- | Information about the database column that provides information for user+-- context filtering.+databaseConfiguration_aclConfiguration :: Lens.Lens' DatabaseConfiguration (Prelude.Maybe AclConfiguration)+databaseConfiguration_aclConfiguration = Lens.lens (\DatabaseConfiguration' {aclConfiguration} -> aclConfiguration) (\s@DatabaseConfiguration' {} a -> s {aclConfiguration = a} :: DatabaseConfiguration)++-- | Provides information about how Amazon Kendra uses quote marks around SQL+-- identifiers when querying a database data source.+databaseConfiguration_sqlConfiguration :: Lens.Lens' DatabaseConfiguration (Prelude.Maybe SqlConfiguration)+databaseConfiguration_sqlConfiguration = Lens.lens (\DatabaseConfiguration' {sqlConfiguration} -> sqlConfiguration) (\s@DatabaseConfiguration' {} a -> s {sqlConfiguration = a} :: DatabaseConfiguration)++-- | Undocumented member.+databaseConfiguration_vpcConfiguration :: Lens.Lens' DatabaseConfiguration (Prelude.Maybe DataSourceVpcConfiguration)+databaseConfiguration_vpcConfiguration = Lens.lens (\DatabaseConfiguration' {vpcConfiguration} -> vpcConfiguration) (\s@DatabaseConfiguration' {} a -> s {vpcConfiguration = a} :: DatabaseConfiguration)++-- | The type of database engine that runs the database.+databaseConfiguration_databaseEngineType :: Lens.Lens' DatabaseConfiguration DatabaseEngineType+databaseConfiguration_databaseEngineType = Lens.lens (\DatabaseConfiguration' {databaseEngineType} -> databaseEngineType) (\s@DatabaseConfiguration' {} a -> s {databaseEngineType = a} :: DatabaseConfiguration)++-- | Configuration information that\'s required to connect to a database.+databaseConfiguration_connectionConfiguration :: Lens.Lens' DatabaseConfiguration ConnectionConfiguration+databaseConfiguration_connectionConfiguration = Lens.lens (\DatabaseConfiguration' {connectionConfiguration} -> connectionConfiguration) (\s@DatabaseConfiguration' {} a -> s {connectionConfiguration = a} :: DatabaseConfiguration)++-- | Information about where the index should get the document information+-- from the database.+databaseConfiguration_columnConfiguration :: Lens.Lens' DatabaseConfiguration ColumnConfiguration+databaseConfiguration_columnConfiguration = Lens.lens (\DatabaseConfiguration' {columnConfiguration} -> columnConfiguration) (\s@DatabaseConfiguration' {} a -> s {columnConfiguration = a} :: DatabaseConfiguration)++instance Data.FromJSON DatabaseConfiguration where+  parseJSON =+    Data.withObject+      "DatabaseConfiguration"+      ( \x ->+          DatabaseConfiguration'+            Prelude.<$> (x Data..:? "AclConfiguration")+            Prelude.<*> (x Data..:? "SqlConfiguration")+            Prelude.<*> (x Data..:? "VpcConfiguration")+            Prelude.<*> (x Data..: "DatabaseEngineType")+            Prelude.<*> (x Data..: "ConnectionConfiguration")+            Prelude.<*> (x Data..: "ColumnConfiguration")+      )++instance Prelude.Hashable DatabaseConfiguration where+  hashWithSalt _salt DatabaseConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` aclConfiguration+      `Prelude.hashWithSalt` sqlConfiguration+      `Prelude.hashWithSalt` vpcConfiguration+      `Prelude.hashWithSalt` databaseEngineType+      `Prelude.hashWithSalt` connectionConfiguration+      `Prelude.hashWithSalt` columnConfiguration++instance Prelude.NFData DatabaseConfiguration where+  rnf DatabaseConfiguration' {..} =+    Prelude.rnf aclConfiguration+      `Prelude.seq` Prelude.rnf sqlConfiguration+      `Prelude.seq` Prelude.rnf vpcConfiguration+      `Prelude.seq` Prelude.rnf databaseEngineType+      `Prelude.seq` Prelude.rnf connectionConfiguration+      `Prelude.seq` Prelude.rnf columnConfiguration++instance Data.ToJSON DatabaseConfiguration where+  toJSON DatabaseConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AclConfiguration" Data..=)+              Prelude.<$> aclConfiguration,+            ("SqlConfiguration" Data..=)+              Prelude.<$> sqlConfiguration,+            ("VpcConfiguration" Data..=)+              Prelude.<$> vpcConfiguration,+            Prelude.Just+              ("DatabaseEngineType" Data..= databaseEngineType),+            Prelude.Just+              ( "ConnectionConfiguration"+                  Data..= connectionConfiguration+              ),+            Prelude.Just+              ("ColumnConfiguration" Data..= columnConfiguration)+          ]+      )
+ gen/Amazonka/Kendra/Types/DatabaseEngineType.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.Kendra.Types.DatabaseEngineType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DatabaseEngineType+  ( DatabaseEngineType+      ( ..,+        DatabaseEngineType_RDS_AURORA_MYSQL,+        DatabaseEngineType_RDS_AURORA_POSTGRESQL,+        DatabaseEngineType_RDS_MYSQL,+        DatabaseEngineType_RDS_POSTGRESQL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DatabaseEngineType = DatabaseEngineType'+  { fromDatabaseEngineType ::+      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 DatabaseEngineType_RDS_AURORA_MYSQL :: DatabaseEngineType+pattern DatabaseEngineType_RDS_AURORA_MYSQL = DatabaseEngineType' "RDS_AURORA_MYSQL"++pattern DatabaseEngineType_RDS_AURORA_POSTGRESQL :: DatabaseEngineType+pattern DatabaseEngineType_RDS_AURORA_POSTGRESQL = DatabaseEngineType' "RDS_AURORA_POSTGRESQL"++pattern DatabaseEngineType_RDS_MYSQL :: DatabaseEngineType+pattern DatabaseEngineType_RDS_MYSQL = DatabaseEngineType' "RDS_MYSQL"++pattern DatabaseEngineType_RDS_POSTGRESQL :: DatabaseEngineType+pattern DatabaseEngineType_RDS_POSTGRESQL = DatabaseEngineType' "RDS_POSTGRESQL"++{-# COMPLETE+  DatabaseEngineType_RDS_AURORA_MYSQL,+  DatabaseEngineType_RDS_AURORA_POSTGRESQL,+  DatabaseEngineType_RDS_MYSQL,+  DatabaseEngineType_RDS_POSTGRESQL,+  DatabaseEngineType'+  #-}
+ gen/Amazonka/Kendra/Types/Document.hs view
@@ -0,0 +1,269 @@+{-# 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.Kendra.Types.Document+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.Document where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ContentType+import Amazonka.Kendra.Types.DocumentAttribute+import Amazonka.Kendra.Types.HierarchicalPrincipal+import Amazonka.Kendra.Types.Principal+import Amazonka.Kendra.Types.S3Path+import qualified Amazonka.Prelude as Prelude++-- | A document in an index.+--+-- /See:/ 'newDocument' smart constructor.+data Document = Document'+  { -- | The identifier of the access control configuration that you want to+    -- apply to the document.+    accessControlConfigurationId :: Prelude.Maybe Prelude.Text,+    -- | Information on principals (users and\/or groups) and which documents+    -- they should have access to. This is useful for user context filtering,+    -- where search results are filtered based on the user or their group+    -- access to documents.+    accessControlList :: Prelude.Maybe [Principal],+    -- | Custom attributes to apply to the document. Use the custom attributes to+    -- provide additional information for searching, to provide facets for+    -- refining searches, and to provide additional information in the query+    -- response.+    --+    -- For example, \'DataSourceId\' and \'DataSourceSyncJobId\' are custom+    -- attributes that provide information on the synchronization of documents+    -- running on a data source. Note, \'DataSourceSyncJobId\' could be an+    -- optional custom attribute as Amazon Kendra will use the ID of a running+    -- sync job.+    attributes :: Prelude.Maybe [DocumentAttribute],+    -- | The contents of the document.+    --+    -- Documents passed to the @Blob@ parameter must be base64 encoded. Your+    -- code might not need to encode the document file bytes if you\'re using+    -- an Amazon Web Services SDK to call Amazon Kendra APIs. If you are+    -- calling the Amazon Kendra endpoint directly using REST, you must base64+    -- encode the contents before sending.+    blob :: Prelude.Maybe Data.Base64,+    -- | The file type of the document in the @Blob@ field.+    contentType :: Prelude.Maybe ContentType,+    -- | The list of+    -- <https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html principal>+    -- lists that define the hierarchy for which documents users should have+    -- access to.+    hierarchicalAccessControlList :: Prelude.Maybe (Prelude.NonEmpty HierarchicalPrincipal),+    s3Path :: Prelude.Maybe S3Path,+    -- | The title of the document.+    title :: Prelude.Maybe Prelude.Text,+    -- | A identifier of the document in the index.+    --+    -- Note, each document ID must be unique per index. You cannot create a+    -- data source to index your documents with their unique IDs and then use+    -- the @BatchPutDocument@ API to index the same documents, or vice versa.+    -- You can delete a data source and then use the @BatchPutDocument@ API to+    -- index the same documents, or vice versa.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Document' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessControlConfigurationId', 'document_accessControlConfigurationId' - The identifier of the access control configuration that you want to+-- apply to the document.+--+-- 'accessControlList', 'document_accessControlList' - Information on principals (users and\/or groups) and which documents+-- they should have access to. This is useful for user context filtering,+-- where search results are filtered based on the user or their group+-- access to documents.+--+-- 'attributes', 'document_attributes' - Custom attributes to apply to the document. Use the custom attributes to+-- provide additional information for searching, to provide facets for+-- refining searches, and to provide additional information in the query+-- response.+--+-- For example, \'DataSourceId\' and \'DataSourceSyncJobId\' are custom+-- attributes that provide information on the synchronization of documents+-- running on a data source. Note, \'DataSourceSyncJobId\' could be an+-- optional custom attribute as Amazon Kendra will use the ID of a running+-- sync job.+--+-- 'blob', 'document_blob' - The contents of the document.+--+-- Documents passed to the @Blob@ parameter must be base64 encoded. Your+-- code might not need to encode the document file bytes if you\'re using+-- an Amazon Web Services SDK to call Amazon Kendra APIs. If you are+-- calling the Amazon Kendra endpoint directly using REST, you must base64+-- encode the contents before sending.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+--+-- 'contentType', 'document_contentType' - The file type of the document in the @Blob@ field.+--+-- 'hierarchicalAccessControlList', 'document_hierarchicalAccessControlList' - The list of+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html principal>+-- lists that define the hierarchy for which documents users should have+-- access to.+--+-- 's3Path', 'document_s3Path' - Undocumented member.+--+-- 'title', 'document_title' - The title of the document.+--+-- 'id', 'document_id' - A identifier of the document in the index.+--+-- Note, each document ID must be unique per index. You cannot create a+-- data source to index your documents with their unique IDs and then use+-- the @BatchPutDocument@ API to index the same documents, or vice versa.+-- You can delete a data source and then use the @BatchPutDocument@ API to+-- index the same documents, or vice versa.+newDocument ::+  -- | 'id'+  Prelude.Text ->+  Document+newDocument pId_ =+  Document'+    { accessControlConfigurationId =+        Prelude.Nothing,+      accessControlList = Prelude.Nothing,+      attributes = Prelude.Nothing,+      blob = Prelude.Nothing,+      contentType = Prelude.Nothing,+      hierarchicalAccessControlList = Prelude.Nothing,+      s3Path = Prelude.Nothing,+      title = Prelude.Nothing,+      id = pId_+    }++-- | The identifier of the access control configuration that you want to+-- apply to the document.+document_accessControlConfigurationId :: Lens.Lens' Document (Prelude.Maybe Prelude.Text)+document_accessControlConfigurationId = Lens.lens (\Document' {accessControlConfigurationId} -> accessControlConfigurationId) (\s@Document' {} a -> s {accessControlConfigurationId = a} :: Document)++-- | Information on principals (users and\/or groups) and which documents+-- they should have access to. This is useful for user context filtering,+-- where search results are filtered based on the user or their group+-- access to documents.+document_accessControlList :: Lens.Lens' Document (Prelude.Maybe [Principal])+document_accessControlList = Lens.lens (\Document' {accessControlList} -> accessControlList) (\s@Document' {} a -> s {accessControlList = a} :: Document) Prelude.. Lens.mapping Lens.coerced++-- | Custom attributes to apply to the document. Use the custom attributes to+-- provide additional information for searching, to provide facets for+-- refining searches, and to provide additional information in the query+-- response.+--+-- For example, \'DataSourceId\' and \'DataSourceSyncJobId\' are custom+-- attributes that provide information on the synchronization of documents+-- running on a data source. Note, \'DataSourceSyncJobId\' could be an+-- optional custom attribute as Amazon Kendra will use the ID of a running+-- sync job.+document_attributes :: Lens.Lens' Document (Prelude.Maybe [DocumentAttribute])+document_attributes = Lens.lens (\Document' {attributes} -> attributes) (\s@Document' {} a -> s {attributes = a} :: Document) Prelude.. Lens.mapping Lens.coerced++-- | The contents of the document.+--+-- Documents passed to the @Blob@ parameter must be base64 encoded. Your+-- code might not need to encode the document file bytes if you\'re using+-- an Amazon Web Services SDK to call Amazon Kendra APIs. If you are+-- calling the Amazon Kendra endpoint directly using REST, you must base64+-- encode the contents before sending.--+-- -- /Note:/ This 'Lens' automatically encodes and decodes Base64 data.+-- -- The underlying isomorphism will encode to Base64 representation during+-- -- serialisation, and decode from Base64 representation during deserialisation.+-- -- This 'Lens' accepts and returns only raw unencoded data.+document_blob :: Lens.Lens' Document (Prelude.Maybe Prelude.ByteString)+document_blob = Lens.lens (\Document' {blob} -> blob) (\s@Document' {} a -> s {blob = a} :: Document) Prelude.. Lens.mapping Data._Base64++-- | The file type of the document in the @Blob@ field.+document_contentType :: Lens.Lens' Document (Prelude.Maybe ContentType)+document_contentType = Lens.lens (\Document' {contentType} -> contentType) (\s@Document' {} a -> s {contentType = a} :: Document)++-- | The list of+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html principal>+-- lists that define the hierarchy for which documents users should have+-- access to.+document_hierarchicalAccessControlList :: Lens.Lens' Document (Prelude.Maybe (Prelude.NonEmpty HierarchicalPrincipal))+document_hierarchicalAccessControlList = Lens.lens (\Document' {hierarchicalAccessControlList} -> hierarchicalAccessControlList) (\s@Document' {} a -> s {hierarchicalAccessControlList = a} :: Document) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+document_s3Path :: Lens.Lens' Document (Prelude.Maybe S3Path)+document_s3Path = Lens.lens (\Document' {s3Path} -> s3Path) (\s@Document' {} a -> s {s3Path = a} :: Document)++-- | The title of the document.+document_title :: Lens.Lens' Document (Prelude.Maybe Prelude.Text)+document_title = Lens.lens (\Document' {title} -> title) (\s@Document' {} a -> s {title = a} :: Document)++-- | A identifier of the document in the index.+--+-- Note, each document ID must be unique per index. You cannot create a+-- data source to index your documents with their unique IDs and then use+-- the @BatchPutDocument@ API to index the same documents, or vice versa.+-- You can delete a data source and then use the @BatchPutDocument@ API to+-- index the same documents, or vice versa.+document_id :: Lens.Lens' Document Prelude.Text+document_id = Lens.lens (\Document' {id} -> id) (\s@Document' {} a -> s {id = a} :: Document)++instance Prelude.Hashable Document where+  hashWithSalt _salt Document' {..} =+    _salt+      `Prelude.hashWithSalt` accessControlConfigurationId+      `Prelude.hashWithSalt` accessControlList+      `Prelude.hashWithSalt` attributes+      `Prelude.hashWithSalt` blob+      `Prelude.hashWithSalt` contentType+      `Prelude.hashWithSalt` hierarchicalAccessControlList+      `Prelude.hashWithSalt` s3Path+      `Prelude.hashWithSalt` title+      `Prelude.hashWithSalt` id++instance Prelude.NFData Document where+  rnf Document' {..} =+    Prelude.rnf accessControlConfigurationId+      `Prelude.seq` Prelude.rnf accessControlList+      `Prelude.seq` Prelude.rnf attributes+      `Prelude.seq` Prelude.rnf blob+      `Prelude.seq` Prelude.rnf contentType+      `Prelude.seq` Prelude.rnf hierarchicalAccessControlList+      `Prelude.seq` Prelude.rnf s3Path+      `Prelude.seq` Prelude.rnf title+      `Prelude.seq` Prelude.rnf id++instance Data.ToJSON Document where+  toJSON Document' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AccessControlConfigurationId" Data..=)+              Prelude.<$> accessControlConfigurationId,+            ("AccessControlList" Data..=)+              Prelude.<$> accessControlList,+            ("Attributes" Data..=) Prelude.<$> attributes,+            ("Blob" Data..=) Prelude.<$> blob,+            ("ContentType" Data..=) Prelude.<$> contentType,+            ("HierarchicalAccessControlList" Data..=)+              Prelude.<$> hierarchicalAccessControlList,+            ("S3Path" Data..=) Prelude.<$> s3Path,+            ("Title" Data..=) Prelude.<$> title,+            Prelude.Just ("Id" Data..= id)+          ]+      )
+ gen/Amazonka/Kendra/Types/DocumentAttribute.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.Kendra.Types.DocumentAttribute+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DocumentAttribute where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DocumentAttributeValue+import qualified Amazonka.Prelude as Prelude++-- | A document attribute or metadata field. To create custom document+-- attributes, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-attributes.html Custom attributes>.+--+-- /See:/ 'newDocumentAttribute' smart constructor.+data DocumentAttribute = DocumentAttribute'+  { -- | The identifier for the attribute.+    key :: Prelude.Text,+    -- | The value of the attribute.+    value :: DocumentAttributeValue+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DocumentAttribute' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'documentAttribute_key' - The identifier for the attribute.+--+-- 'value', 'documentAttribute_value' - The value of the attribute.+newDocumentAttribute ::+  -- | 'key'+  Prelude.Text ->+  -- | 'value'+  DocumentAttributeValue ->+  DocumentAttribute+newDocumentAttribute pKey_ pValue_ =+  DocumentAttribute' {key = pKey_, value = pValue_}++-- | The identifier for the attribute.+documentAttribute_key :: Lens.Lens' DocumentAttribute Prelude.Text+documentAttribute_key = Lens.lens (\DocumentAttribute' {key} -> key) (\s@DocumentAttribute' {} a -> s {key = a} :: DocumentAttribute)++-- | The value of the attribute.+documentAttribute_value :: Lens.Lens' DocumentAttribute DocumentAttributeValue+documentAttribute_value = Lens.lens (\DocumentAttribute' {value} -> value) (\s@DocumentAttribute' {} a -> s {value = a} :: DocumentAttribute)++instance Data.FromJSON DocumentAttribute where+  parseJSON =+    Data.withObject+      "DocumentAttribute"+      ( \x ->+          DocumentAttribute'+            Prelude.<$> (x Data..: "Key")+            Prelude.<*> (x Data..: "Value")+      )++instance Prelude.Hashable DocumentAttribute where+  hashWithSalt _salt DocumentAttribute' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` value++instance Prelude.NFData DocumentAttribute where+  rnf DocumentAttribute' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON DocumentAttribute where+  toJSON DocumentAttribute' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Key" Data..= key),+            Prelude.Just ("Value" Data..= value)+          ]+      )
+ gen/Amazonka/Kendra/Types/DocumentAttributeCondition.hs view
@@ -0,0 +1,168 @@+{-# 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.Kendra.Types.DocumentAttributeCondition+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DocumentAttributeCondition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ConditionOperator+import Amazonka.Kendra.Types.DocumentAttributeValue+import qualified Amazonka.Prelude as Prelude++-- | The condition used for the target document attribute or metadata field+-- when ingesting documents into Amazon Kendra. You use this with+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_DocumentAttributeTarget.html DocumentAttributeTarget to apply the condition>.+--+-- For example, you can create the \'Department\' target field and have it+-- prefill department names associated with the documents based on+-- information in the \'Source_URI\' field. Set the condition that if the+-- \'Source_URI\' field contains \'financial\' in its URI value, then+-- prefill the target field \'Department\' with the target value+-- \'Finance\' for the document.+--+-- Amazon Kendra cannot create a target field if it has not already been+-- created as an index field. After you create your index field, you can+-- create a document metadata field using @DocumentAttributeTarget@. Amazon+-- Kendra then will map your newly created metadata field to your index+-- field.+--+-- /See:/ 'newDocumentAttributeCondition' smart constructor.+data DocumentAttributeCondition = DocumentAttributeCondition'+  { -- | The value used by the operator.+    --+    -- For example, you can specify the value \'financial\' for strings in the+    -- \'Source_URI\' field that partially match or contain this value.+    conditionOnValue :: Prelude.Maybe DocumentAttributeValue,+    -- | The identifier of the document attribute used for the condition.+    --+    -- For example, \'Source_URI\' could be an identifier for the attribute or+    -- metadata field that contains source URIs associated with the documents.+    --+    -- Amazon Kendra currently does not support @_document_body@ as an+    -- attribute key used for the condition.+    conditionDocumentAttributeKey :: Prelude.Text,+    -- | The condition operator.+    --+    -- For example, you can use \'Contains\' to partially match a string.+    operator :: ConditionOperator+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DocumentAttributeCondition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'conditionOnValue', 'documentAttributeCondition_conditionOnValue' - The value used by the operator.+--+-- For example, you can specify the value \'financial\' for strings in the+-- \'Source_URI\' field that partially match or contain this value.+--+-- 'conditionDocumentAttributeKey', 'documentAttributeCondition_conditionDocumentAttributeKey' - The identifier of the document attribute used for the condition.+--+-- For example, \'Source_URI\' could be an identifier for the attribute or+-- metadata field that contains source URIs associated with the documents.+--+-- Amazon Kendra currently does not support @_document_body@ as an+-- attribute key used for the condition.+--+-- 'operator', 'documentAttributeCondition_operator' - The condition operator.+--+-- For example, you can use \'Contains\' to partially match a string.+newDocumentAttributeCondition ::+  -- | 'conditionDocumentAttributeKey'+  Prelude.Text ->+  -- | 'operator'+  ConditionOperator ->+  DocumentAttributeCondition+newDocumentAttributeCondition+  pConditionDocumentAttributeKey_+  pOperator_ =+    DocumentAttributeCondition'+      { conditionOnValue =+          Prelude.Nothing,+        conditionDocumentAttributeKey =+          pConditionDocumentAttributeKey_,+        operator = pOperator_+      }++-- | The value used by the operator.+--+-- For example, you can specify the value \'financial\' for strings in the+-- \'Source_URI\' field that partially match or contain this value.+documentAttributeCondition_conditionOnValue :: Lens.Lens' DocumentAttributeCondition (Prelude.Maybe DocumentAttributeValue)+documentAttributeCondition_conditionOnValue = Lens.lens (\DocumentAttributeCondition' {conditionOnValue} -> conditionOnValue) (\s@DocumentAttributeCondition' {} a -> s {conditionOnValue = a} :: DocumentAttributeCondition)++-- | The identifier of the document attribute used for the condition.+--+-- For example, \'Source_URI\' could be an identifier for the attribute or+-- metadata field that contains source URIs associated with the documents.+--+-- Amazon Kendra currently does not support @_document_body@ as an+-- attribute key used for the condition.+documentAttributeCondition_conditionDocumentAttributeKey :: Lens.Lens' DocumentAttributeCondition Prelude.Text+documentAttributeCondition_conditionDocumentAttributeKey = Lens.lens (\DocumentAttributeCondition' {conditionDocumentAttributeKey} -> conditionDocumentAttributeKey) (\s@DocumentAttributeCondition' {} a -> s {conditionDocumentAttributeKey = a} :: DocumentAttributeCondition)++-- | The condition operator.+--+-- For example, you can use \'Contains\' to partially match a string.+documentAttributeCondition_operator :: Lens.Lens' DocumentAttributeCondition ConditionOperator+documentAttributeCondition_operator = Lens.lens (\DocumentAttributeCondition' {operator} -> operator) (\s@DocumentAttributeCondition' {} a -> s {operator = a} :: DocumentAttributeCondition)++instance Data.FromJSON DocumentAttributeCondition where+  parseJSON =+    Data.withObject+      "DocumentAttributeCondition"+      ( \x ->+          DocumentAttributeCondition'+            Prelude.<$> (x Data..:? "ConditionOnValue")+            Prelude.<*> (x Data..: "ConditionDocumentAttributeKey")+            Prelude.<*> (x Data..: "Operator")+      )++instance Prelude.Hashable DocumentAttributeCondition where+  hashWithSalt _salt DocumentAttributeCondition' {..} =+    _salt+      `Prelude.hashWithSalt` conditionOnValue+      `Prelude.hashWithSalt` conditionDocumentAttributeKey+      `Prelude.hashWithSalt` operator++instance Prelude.NFData DocumentAttributeCondition where+  rnf DocumentAttributeCondition' {..} =+    Prelude.rnf conditionOnValue+      `Prelude.seq` Prelude.rnf conditionDocumentAttributeKey+      `Prelude.seq` Prelude.rnf operator++instance Data.ToJSON DocumentAttributeCondition where+  toJSON DocumentAttributeCondition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ConditionOnValue" Data..=)+              Prelude.<$> conditionOnValue,+            Prelude.Just+              ( "ConditionDocumentAttributeKey"+                  Data..= conditionDocumentAttributeKey+              ),+            Prelude.Just ("Operator" Data..= operator)+          ]+      )
+ gen/Amazonka/Kendra/Types/DocumentAttributeTarget.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.Kendra.Types.DocumentAttributeTarget+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DocumentAttributeTarget where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DocumentAttributeValue+import qualified Amazonka.Prelude as Prelude++-- | The target document attribute or metadata field you want to alter when+-- ingesting documents into Amazon Kendra.+--+-- For example, you can delete customer identification numbers associated+-- with the documents, stored in the document metadata field called+-- \'Customer_ID\'. You set the target key as \'Customer_ID\' and the+-- deletion flag to @TRUE@. This removes all customer ID values in the+-- field \'Customer_ID\'. This would scrub personally identifiable+-- information from each document\'s metadata.+--+-- Amazon Kendra cannot create a target field if it has not already been+-- created as an index field. After you create your index field, you can+-- create a document metadata field using @DocumentAttributeTarget@. Amazon+-- Kendra then will map your newly created metadata field to your index+-- field.+--+-- You can also use this with+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_DocumentAttributeCondition.html DocumentAttributeCondition>.+--+-- /See:/ 'newDocumentAttributeTarget' smart constructor.+data DocumentAttributeTarget = DocumentAttributeTarget'+  { -- | The identifier of the target document attribute or metadata field.+    --+    -- For example, \'Department\' could be an identifier for the target+    -- attribute or metadata field that includes the department names+    -- associated with the documents.+    targetDocumentAttributeKey :: Prelude.Maybe Prelude.Text,+    -- | The target value you want to create for the target attribute.+    --+    -- For example, \'Finance\' could be the target value for the target+    -- attribute key \'Department\'.+    targetDocumentAttributeValue :: Prelude.Maybe DocumentAttributeValue,+    -- | @TRUE@ to delete the existing target value for your specified target+    -- attribute key. You cannot create a target value and set this to @TRUE@.+    -- To create a target value (@TargetDocumentAttributeValue@), set this to+    -- @FALSE@.+    targetDocumentAttributeValueDeletion :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DocumentAttributeTarget' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'targetDocumentAttributeKey', 'documentAttributeTarget_targetDocumentAttributeKey' - The identifier of the target document attribute or metadata field.+--+-- For example, \'Department\' could be an identifier for the target+-- attribute or metadata field that includes the department names+-- associated with the documents.+--+-- 'targetDocumentAttributeValue', 'documentAttributeTarget_targetDocumentAttributeValue' - The target value you want to create for the target attribute.+--+-- For example, \'Finance\' could be the target value for the target+-- attribute key \'Department\'.+--+-- 'targetDocumentAttributeValueDeletion', 'documentAttributeTarget_targetDocumentAttributeValueDeletion' - @TRUE@ to delete the existing target value for your specified target+-- attribute key. You cannot create a target value and set this to @TRUE@.+-- To create a target value (@TargetDocumentAttributeValue@), set this to+-- @FALSE@.+newDocumentAttributeTarget ::+  DocumentAttributeTarget+newDocumentAttributeTarget =+  DocumentAttributeTarget'+    { targetDocumentAttributeKey =+        Prelude.Nothing,+      targetDocumentAttributeValue = Prelude.Nothing,+      targetDocumentAttributeValueDeletion =+        Prelude.Nothing+    }++-- | The identifier of the target document attribute or metadata field.+--+-- For example, \'Department\' could be an identifier for the target+-- attribute or metadata field that includes the department names+-- associated with the documents.+documentAttributeTarget_targetDocumentAttributeKey :: Lens.Lens' DocumentAttributeTarget (Prelude.Maybe Prelude.Text)+documentAttributeTarget_targetDocumentAttributeKey = Lens.lens (\DocumentAttributeTarget' {targetDocumentAttributeKey} -> targetDocumentAttributeKey) (\s@DocumentAttributeTarget' {} a -> s {targetDocumentAttributeKey = a} :: DocumentAttributeTarget)++-- | The target value you want to create for the target attribute.+--+-- For example, \'Finance\' could be the target value for the target+-- attribute key \'Department\'.+documentAttributeTarget_targetDocumentAttributeValue :: Lens.Lens' DocumentAttributeTarget (Prelude.Maybe DocumentAttributeValue)+documentAttributeTarget_targetDocumentAttributeValue = Lens.lens (\DocumentAttributeTarget' {targetDocumentAttributeValue} -> targetDocumentAttributeValue) (\s@DocumentAttributeTarget' {} a -> s {targetDocumentAttributeValue = a} :: DocumentAttributeTarget)++-- | @TRUE@ to delete the existing target value for your specified target+-- attribute key. You cannot create a target value and set this to @TRUE@.+-- To create a target value (@TargetDocumentAttributeValue@), set this to+-- @FALSE@.+documentAttributeTarget_targetDocumentAttributeValueDeletion :: Lens.Lens' DocumentAttributeTarget (Prelude.Maybe Prelude.Bool)+documentAttributeTarget_targetDocumentAttributeValueDeletion = Lens.lens (\DocumentAttributeTarget' {targetDocumentAttributeValueDeletion} -> targetDocumentAttributeValueDeletion) (\s@DocumentAttributeTarget' {} a -> s {targetDocumentAttributeValueDeletion = a} :: DocumentAttributeTarget)++instance Data.FromJSON DocumentAttributeTarget where+  parseJSON =+    Data.withObject+      "DocumentAttributeTarget"+      ( \x ->+          DocumentAttributeTarget'+            Prelude.<$> (x Data..:? "TargetDocumentAttributeKey")+            Prelude.<*> (x Data..:? "TargetDocumentAttributeValue")+            Prelude.<*> (x Data..:? "TargetDocumentAttributeValueDeletion")+      )++instance Prelude.Hashable DocumentAttributeTarget where+  hashWithSalt _salt DocumentAttributeTarget' {..} =+    _salt+      `Prelude.hashWithSalt` targetDocumentAttributeKey+      `Prelude.hashWithSalt` targetDocumentAttributeValue+      `Prelude.hashWithSalt` targetDocumentAttributeValueDeletion++instance Prelude.NFData DocumentAttributeTarget where+  rnf DocumentAttributeTarget' {..} =+    Prelude.rnf targetDocumentAttributeKey+      `Prelude.seq` Prelude.rnf targetDocumentAttributeValue+      `Prelude.seq` Prelude.rnf targetDocumentAttributeValueDeletion++instance Data.ToJSON DocumentAttributeTarget where+  toJSON DocumentAttributeTarget' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("TargetDocumentAttributeKey" Data..=)+              Prelude.<$> targetDocumentAttributeKey,+            ("TargetDocumentAttributeValue" Data..=)+              Prelude.<$> targetDocumentAttributeValue,+            ("TargetDocumentAttributeValueDeletion" Data..=)+              Prelude.<$> targetDocumentAttributeValueDeletion+          ]+      )
+ gen/Amazonka/Kendra/Types/DocumentAttributeValue.hs view
@@ -0,0 +1,143 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.DocumentAttributeValue+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DocumentAttributeValue 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 of a document attribute. You can only provide one value for a+-- document attribute.+--+-- /See:/ 'newDocumentAttributeValue' smart constructor.+data DocumentAttributeValue = DocumentAttributeValue'+  { -- | A date expressed as an ISO 8601 string.+    --+    -- It is important for the time zone to be included in the ISO 8601+    -- date-time format. For example, 2012-03-25T12:30:10+01:00 is the ISO 8601+    -- date-time format for March 25th 2012 at 12:30PM (plus 10 seconds) in+    -- Central European Time.+    dateValue :: Prelude.Maybe Data.POSIX,+    -- | A long integer value.+    longValue :: Prelude.Maybe Prelude.Integer,+    -- | A list of strings. The default maximum length or number of strings is+    -- 10.+    stringListValue :: Prelude.Maybe [Prelude.Text],+    -- | A string, such as \"department\".+    stringValue :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DocumentAttributeValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dateValue', 'documentAttributeValue_dateValue' - A date expressed as an ISO 8601 string.+--+-- It is important for the time zone to be included in the ISO 8601+-- date-time format. For example, 2012-03-25T12:30:10+01:00 is the ISO 8601+-- date-time format for March 25th 2012 at 12:30PM (plus 10 seconds) in+-- Central European Time.+--+-- 'longValue', 'documentAttributeValue_longValue' - A long integer value.+--+-- 'stringListValue', 'documentAttributeValue_stringListValue' - A list of strings. The default maximum length or number of strings is+-- 10.+--+-- 'stringValue', 'documentAttributeValue_stringValue' - A string, such as \"department\".+newDocumentAttributeValue ::+  DocumentAttributeValue+newDocumentAttributeValue =+  DocumentAttributeValue'+    { dateValue =+        Prelude.Nothing,+      longValue = Prelude.Nothing,+      stringListValue = Prelude.Nothing,+      stringValue = Prelude.Nothing+    }++-- | A date expressed as an ISO 8601 string.+--+-- It is important for the time zone to be included in the ISO 8601+-- date-time format. For example, 2012-03-25T12:30:10+01:00 is the ISO 8601+-- date-time format for March 25th 2012 at 12:30PM (plus 10 seconds) in+-- Central European Time.+documentAttributeValue_dateValue :: Lens.Lens' DocumentAttributeValue (Prelude.Maybe Prelude.UTCTime)+documentAttributeValue_dateValue = Lens.lens (\DocumentAttributeValue' {dateValue} -> dateValue) (\s@DocumentAttributeValue' {} a -> s {dateValue = a} :: DocumentAttributeValue) Prelude.. Lens.mapping Data._Time++-- | A long integer value.+documentAttributeValue_longValue :: Lens.Lens' DocumentAttributeValue (Prelude.Maybe Prelude.Integer)+documentAttributeValue_longValue = Lens.lens (\DocumentAttributeValue' {longValue} -> longValue) (\s@DocumentAttributeValue' {} a -> s {longValue = a} :: DocumentAttributeValue)++-- | A list of strings. The default maximum length or number of strings is+-- 10.+documentAttributeValue_stringListValue :: Lens.Lens' DocumentAttributeValue (Prelude.Maybe [Prelude.Text])+documentAttributeValue_stringListValue = Lens.lens (\DocumentAttributeValue' {stringListValue} -> stringListValue) (\s@DocumentAttributeValue' {} a -> s {stringListValue = a} :: DocumentAttributeValue) Prelude.. Lens.mapping Lens.coerced++-- | A string, such as \"department\".+documentAttributeValue_stringValue :: Lens.Lens' DocumentAttributeValue (Prelude.Maybe Prelude.Text)+documentAttributeValue_stringValue = Lens.lens (\DocumentAttributeValue' {stringValue} -> stringValue) (\s@DocumentAttributeValue' {} a -> s {stringValue = a} :: DocumentAttributeValue)++instance Data.FromJSON DocumentAttributeValue where+  parseJSON =+    Data.withObject+      "DocumentAttributeValue"+      ( \x ->+          DocumentAttributeValue'+            Prelude.<$> (x Data..:? "DateValue")+            Prelude.<*> (x Data..:? "LongValue")+            Prelude.<*> ( x+                            Data..:? "StringListValue"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "StringValue")+      )++instance Prelude.Hashable DocumentAttributeValue where+  hashWithSalt _salt DocumentAttributeValue' {..} =+    _salt+      `Prelude.hashWithSalt` dateValue+      `Prelude.hashWithSalt` longValue+      `Prelude.hashWithSalt` stringListValue+      `Prelude.hashWithSalt` stringValue++instance Prelude.NFData DocumentAttributeValue where+  rnf DocumentAttributeValue' {..} =+    Prelude.rnf dateValue+      `Prelude.seq` Prelude.rnf longValue+      `Prelude.seq` Prelude.rnf stringListValue+      `Prelude.seq` Prelude.rnf stringValue++instance Data.ToJSON DocumentAttributeValue where+  toJSON DocumentAttributeValue' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DateValue" Data..=) Prelude.<$> dateValue,+            ("LongValue" Data..=) Prelude.<$> longValue,+            ("StringListValue" Data..=)+              Prelude.<$> stringListValue,+            ("StringValue" Data..=) Prelude.<$> stringValue+          ]+      )
+ gen/Amazonka/Kendra/Types/DocumentAttributeValueCountPair.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.Kendra.Types.DocumentAttributeValueCountPair+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DocumentAttributeValueCountPair where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DocumentAttributeValue+import {-# SOURCE #-} Amazonka.Kendra.Types.FacetResult+import qualified Amazonka.Prelude as Prelude++-- | Provides the count of documents that match a particular attribute when+-- doing a faceted search.+--+-- /See:/ 'newDocumentAttributeValueCountPair' smart constructor.+data DocumentAttributeValueCountPair = DocumentAttributeValueCountPair'+  { -- | The number of documents in the response that have the attribute value+    -- for the key.+    count :: Prelude.Maybe Prelude.Int,+    -- | The value of the attribute. For example, \"HR\".+    documentAttributeValue :: Prelude.Maybe DocumentAttributeValue,+    -- | Contains the results of a document attribute that is a nested facet. A+    -- @FacetResult@ contains the counts for each facet nested within a facet.+    --+    -- For example, the document attribute or facet \"Department\" includes a+    -- value called \"Engineering\". In addition, the document attribute or+    -- facet \"SubDepartment\" includes the values \"Frontend\" and \"Backend\"+    -- for documents assigned to \"Engineering\". You can display nested facets+    -- in the search results so that documents can be searched not only by+    -- department but also by a sub department within a department. The counts+    -- for documents that belong to \"Frontend\" and \"Backend\" within+    -- \"Engineering\" are returned for a query.+    facetResults :: Prelude.Maybe [FacetResult]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DocumentAttributeValueCountPair' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'count', 'documentAttributeValueCountPair_count' - The number of documents in the response that have the attribute value+-- for the key.+--+-- 'documentAttributeValue', 'documentAttributeValueCountPair_documentAttributeValue' - The value of the attribute. For example, \"HR\".+--+-- 'facetResults', 'documentAttributeValueCountPair_facetResults' - Contains the results of a document attribute that is a nested facet. A+-- @FacetResult@ contains the counts for each facet nested within a facet.+--+-- For example, the document attribute or facet \"Department\" includes a+-- value called \"Engineering\". In addition, the document attribute or+-- facet \"SubDepartment\" includes the values \"Frontend\" and \"Backend\"+-- for documents assigned to \"Engineering\". You can display nested facets+-- in the search results so that documents can be searched not only by+-- department but also by a sub department within a department. The counts+-- for documents that belong to \"Frontend\" and \"Backend\" within+-- \"Engineering\" are returned for a query.+newDocumentAttributeValueCountPair ::+  DocumentAttributeValueCountPair+newDocumentAttributeValueCountPair =+  DocumentAttributeValueCountPair'+    { count =+        Prelude.Nothing,+      documentAttributeValue = Prelude.Nothing,+      facetResults = Prelude.Nothing+    }++-- | The number of documents in the response that have the attribute value+-- for the key.+documentAttributeValueCountPair_count :: Lens.Lens' DocumentAttributeValueCountPair (Prelude.Maybe Prelude.Int)+documentAttributeValueCountPair_count = Lens.lens (\DocumentAttributeValueCountPair' {count} -> count) (\s@DocumentAttributeValueCountPair' {} a -> s {count = a} :: DocumentAttributeValueCountPair)++-- | The value of the attribute. For example, \"HR\".+documentAttributeValueCountPair_documentAttributeValue :: Lens.Lens' DocumentAttributeValueCountPair (Prelude.Maybe DocumentAttributeValue)+documentAttributeValueCountPair_documentAttributeValue = Lens.lens (\DocumentAttributeValueCountPair' {documentAttributeValue} -> documentAttributeValue) (\s@DocumentAttributeValueCountPair' {} a -> s {documentAttributeValue = a} :: DocumentAttributeValueCountPair)++-- | Contains the results of a document attribute that is a nested facet. A+-- @FacetResult@ contains the counts for each facet nested within a facet.+--+-- For example, the document attribute or facet \"Department\" includes a+-- value called \"Engineering\". In addition, the document attribute or+-- facet \"SubDepartment\" includes the values \"Frontend\" and \"Backend\"+-- for documents assigned to \"Engineering\". You can display nested facets+-- in the search results so that documents can be searched not only by+-- department but also by a sub department within a department. The counts+-- for documents that belong to \"Frontend\" and \"Backend\" within+-- \"Engineering\" are returned for a query.+documentAttributeValueCountPair_facetResults :: Lens.Lens' DocumentAttributeValueCountPair (Prelude.Maybe [FacetResult])+documentAttributeValueCountPair_facetResults = Lens.lens (\DocumentAttributeValueCountPair' {facetResults} -> facetResults) (\s@DocumentAttributeValueCountPair' {} a -> s {facetResults = a} :: DocumentAttributeValueCountPair) Prelude.. Lens.mapping Lens.coerced++instance+  Data.FromJSON+    DocumentAttributeValueCountPair+  where+  parseJSON =+    Data.withObject+      "DocumentAttributeValueCountPair"+      ( \x ->+          DocumentAttributeValueCountPair'+            Prelude.<$> (x Data..:? "Count")+            Prelude.<*> (x Data..:? "DocumentAttributeValue")+            Prelude.<*> (x Data..:? "FacetResults" Data..!= Prelude.mempty)+      )++instance+  Prelude.Hashable+    DocumentAttributeValueCountPair+  where+  hashWithSalt+    _salt+    DocumentAttributeValueCountPair' {..} =+      _salt+        `Prelude.hashWithSalt` count+        `Prelude.hashWithSalt` documentAttributeValue+        `Prelude.hashWithSalt` facetResults++instance+  Prelude.NFData+    DocumentAttributeValueCountPair+  where+  rnf DocumentAttributeValueCountPair' {..} =+    Prelude.rnf count+      `Prelude.seq` Prelude.rnf documentAttributeValue+      `Prelude.seq` Prelude.rnf facetResults
+ gen/Amazonka/Kendra/Types/DocumentAttributeValueCountPair.hs-boot view
@@ -0,0 +1,31 @@+{-# OPTIONS_GHC -Wno-missing-methods #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.DocumentAttributeValueCountPair+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DocumentAttributeValueCountPair where++import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++data DocumentAttributeValueCountPair++instance Prelude.Eq DocumentAttributeValueCountPair++instance Prelude.Read DocumentAttributeValueCountPair++instance Prelude.Show DocumentAttributeValueCountPair++instance Prelude.Generic DocumentAttributeValueCountPair++instance Data.FromJSON DocumentAttributeValueCountPair++instance Prelude.NFData DocumentAttributeValueCountPair++instance Prelude.Hashable DocumentAttributeValueCountPair
+ gen/Amazonka/Kendra/Types/DocumentAttributeValueType.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.Kendra.Types.DocumentAttributeValueType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DocumentAttributeValueType+  ( DocumentAttributeValueType+      ( ..,+        DocumentAttributeValueType_DATE_VALUE,+        DocumentAttributeValueType_LONG_VALUE,+        DocumentAttributeValueType_STRING_LIST_VALUE,+        DocumentAttributeValueType_STRING_VALUE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DocumentAttributeValueType = DocumentAttributeValueType'+  { fromDocumentAttributeValueType ::+      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 DocumentAttributeValueType_DATE_VALUE :: DocumentAttributeValueType+pattern DocumentAttributeValueType_DATE_VALUE = DocumentAttributeValueType' "DATE_VALUE"++pattern DocumentAttributeValueType_LONG_VALUE :: DocumentAttributeValueType+pattern DocumentAttributeValueType_LONG_VALUE = DocumentAttributeValueType' "LONG_VALUE"++pattern DocumentAttributeValueType_STRING_LIST_VALUE :: DocumentAttributeValueType+pattern DocumentAttributeValueType_STRING_LIST_VALUE = DocumentAttributeValueType' "STRING_LIST_VALUE"++pattern DocumentAttributeValueType_STRING_VALUE :: DocumentAttributeValueType+pattern DocumentAttributeValueType_STRING_VALUE = DocumentAttributeValueType' "STRING_VALUE"++{-# COMPLETE+  DocumentAttributeValueType_DATE_VALUE,+  DocumentAttributeValueType_LONG_VALUE,+  DocumentAttributeValueType_STRING_LIST_VALUE,+  DocumentAttributeValueType_STRING_VALUE,+  DocumentAttributeValueType'+  #-}
+ gen/Amazonka/Kendra/Types/DocumentInfo.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.Kendra.Types.DocumentInfo+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DocumentInfo where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DocumentAttribute+import qualified Amazonka.Prelude as Prelude++-- | Identifies a document for which to retrieve status information+--+-- /See:/ 'newDocumentInfo' smart constructor.+data DocumentInfo = DocumentInfo'+  { -- | Attributes that identify a specific version of a document to check.+    --+    -- The only valid attributes are:+    --+    -- -   version+    --+    -- -   datasourceId+    --+    -- -   jobExecutionId+    --+    -- The attributes follow these rules:+    --+    -- -   @dataSourceId@ and @jobExecutionId@ must be used together.+    --+    -- -   @version@ is ignored if @dataSourceId@ and @jobExecutionId@ are not+    --     provided.+    --+    -- -   If @dataSourceId@ and @jobExecutionId@ are provided, but @version@+    --     is not, the version defaults to \"0\".+    attributes :: Prelude.Maybe [DocumentAttribute],+    -- | The identifier of the document.+    documentId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DocumentInfo' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributes', 'documentInfo_attributes' - Attributes that identify a specific version of a document to check.+--+-- The only valid attributes are:+--+-- -   version+--+-- -   datasourceId+--+-- -   jobExecutionId+--+-- The attributes follow these rules:+--+-- -   @dataSourceId@ and @jobExecutionId@ must be used together.+--+-- -   @version@ is ignored if @dataSourceId@ and @jobExecutionId@ are not+--     provided.+--+-- -   If @dataSourceId@ and @jobExecutionId@ are provided, but @version@+--     is not, the version defaults to \"0\".+--+-- 'documentId', 'documentInfo_documentId' - The identifier of the document.+newDocumentInfo ::+  -- | 'documentId'+  Prelude.Text ->+  DocumentInfo+newDocumentInfo pDocumentId_ =+  DocumentInfo'+    { attributes = Prelude.Nothing,+      documentId = pDocumentId_+    }++-- | Attributes that identify a specific version of a document to check.+--+-- The only valid attributes are:+--+-- -   version+--+-- -   datasourceId+--+-- -   jobExecutionId+--+-- The attributes follow these rules:+--+-- -   @dataSourceId@ and @jobExecutionId@ must be used together.+--+-- -   @version@ is ignored if @dataSourceId@ and @jobExecutionId@ are not+--     provided.+--+-- -   If @dataSourceId@ and @jobExecutionId@ are provided, but @version@+--     is not, the version defaults to \"0\".+documentInfo_attributes :: Lens.Lens' DocumentInfo (Prelude.Maybe [DocumentAttribute])+documentInfo_attributes = Lens.lens (\DocumentInfo' {attributes} -> attributes) (\s@DocumentInfo' {} a -> s {attributes = a} :: DocumentInfo) Prelude.. Lens.mapping Lens.coerced++-- | The identifier of the document.+documentInfo_documentId :: Lens.Lens' DocumentInfo Prelude.Text+documentInfo_documentId = Lens.lens (\DocumentInfo' {documentId} -> documentId) (\s@DocumentInfo' {} a -> s {documentId = a} :: DocumentInfo)++instance Prelude.Hashable DocumentInfo where+  hashWithSalt _salt DocumentInfo' {..} =+    _salt+      `Prelude.hashWithSalt` attributes+      `Prelude.hashWithSalt` documentId++instance Prelude.NFData DocumentInfo where+  rnf DocumentInfo' {..} =+    Prelude.rnf attributes+      `Prelude.seq` Prelude.rnf documentId++instance Data.ToJSON DocumentInfo where+  toJSON DocumentInfo' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Attributes" Data..=) Prelude.<$> attributes,+            Prelude.Just ("DocumentId" Data..= documentId)+          ]+      )
+ gen/Amazonka/Kendra/Types/DocumentMetadataConfiguration.hs view
@@ -0,0 +1,134 @@+{-# 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.Kendra.Types.DocumentMetadataConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DocumentMetadataConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DocumentAttributeValueType+import Amazonka.Kendra.Types.Relevance+import Amazonka.Kendra.Types.Search+import qualified Amazonka.Prelude as Prelude++-- | Specifies the properties, such as relevance tuning and searchability, of+-- an index field.+--+-- /See:/ 'newDocumentMetadataConfiguration' smart constructor.+data DocumentMetadataConfiguration = DocumentMetadataConfiguration'+  { -- | Provides tuning parameters to determine how the field affects the search+    -- results.+    relevance :: Prelude.Maybe Relevance,+    -- | Provides information about how the field is used during a search.+    search :: Prelude.Maybe Search,+    -- | The name of the index field.+    name :: Prelude.Text,+    -- | The data type of the index field.+    type' :: DocumentAttributeValueType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DocumentMetadataConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'relevance', 'documentMetadataConfiguration_relevance' - Provides tuning parameters to determine how the field affects the search+-- results.+--+-- 'search', 'documentMetadataConfiguration_search' - Provides information about how the field is used during a search.+--+-- 'name', 'documentMetadataConfiguration_name' - The name of the index field.+--+-- 'type'', 'documentMetadataConfiguration_type' - The data type of the index field.+newDocumentMetadataConfiguration ::+  -- | 'name'+  Prelude.Text ->+  -- | 'type''+  DocumentAttributeValueType ->+  DocumentMetadataConfiguration+newDocumentMetadataConfiguration pName_ pType_ =+  DocumentMetadataConfiguration'+    { relevance =+        Prelude.Nothing,+      search = Prelude.Nothing,+      name = pName_,+      type' = pType_+    }++-- | Provides tuning parameters to determine how the field affects the search+-- results.+documentMetadataConfiguration_relevance :: Lens.Lens' DocumentMetadataConfiguration (Prelude.Maybe Relevance)+documentMetadataConfiguration_relevance = Lens.lens (\DocumentMetadataConfiguration' {relevance} -> relevance) (\s@DocumentMetadataConfiguration' {} a -> s {relevance = a} :: DocumentMetadataConfiguration)++-- | Provides information about how the field is used during a search.+documentMetadataConfiguration_search :: Lens.Lens' DocumentMetadataConfiguration (Prelude.Maybe Search)+documentMetadataConfiguration_search = Lens.lens (\DocumentMetadataConfiguration' {search} -> search) (\s@DocumentMetadataConfiguration' {} a -> s {search = a} :: DocumentMetadataConfiguration)++-- | The name of the index field.+documentMetadataConfiguration_name :: Lens.Lens' DocumentMetadataConfiguration Prelude.Text+documentMetadataConfiguration_name = Lens.lens (\DocumentMetadataConfiguration' {name} -> name) (\s@DocumentMetadataConfiguration' {} a -> s {name = a} :: DocumentMetadataConfiguration)++-- | The data type of the index field.+documentMetadataConfiguration_type :: Lens.Lens' DocumentMetadataConfiguration DocumentAttributeValueType+documentMetadataConfiguration_type = Lens.lens (\DocumentMetadataConfiguration' {type'} -> type') (\s@DocumentMetadataConfiguration' {} a -> s {type' = a} :: DocumentMetadataConfiguration)++instance Data.FromJSON DocumentMetadataConfiguration where+  parseJSON =+    Data.withObject+      "DocumentMetadataConfiguration"+      ( \x ->+          DocumentMetadataConfiguration'+            Prelude.<$> (x Data..:? "Relevance")+            Prelude.<*> (x Data..:? "Search")+            Prelude.<*> (x Data..: "Name")+            Prelude.<*> (x Data..: "Type")+      )++instance+  Prelude.Hashable+    DocumentMetadataConfiguration+  where+  hashWithSalt _salt DocumentMetadataConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` relevance+      `Prelude.hashWithSalt` search+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` type'++instance Prelude.NFData DocumentMetadataConfiguration where+  rnf DocumentMetadataConfiguration' {..} =+    Prelude.rnf relevance+      `Prelude.seq` Prelude.rnf search+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON DocumentMetadataConfiguration where+  toJSON DocumentMetadataConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Relevance" Data..=) Prelude.<$> relevance,+            ("Search" Data..=) Prelude.<$> search,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("Type" Data..= type')+          ]+      )
+ gen/Amazonka/Kendra/Types/DocumentRelevanceConfiguration.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.Kendra.Types.DocumentRelevanceConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DocumentRelevanceConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.Relevance+import qualified Amazonka.Prelude as Prelude++-- | Overrides the document relevance properties of a custom index field.+--+-- /See:/ 'newDocumentRelevanceConfiguration' smart constructor.+data DocumentRelevanceConfiguration = DocumentRelevanceConfiguration'+  { -- | The name of the index field.+    name :: Prelude.Text,+    -- | Provides information for tuning the relevance of a field in a search.+    -- When a query includes terms that match the field, the results are given+    -- a boost in the response based on these tuning parameters.+    relevance :: Relevance+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DocumentRelevanceConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'documentRelevanceConfiguration_name' - The name of the index field.+--+-- 'relevance', 'documentRelevanceConfiguration_relevance' - Provides information for tuning the relevance of a field in a search.+-- When a query includes terms that match the field, the results are given+-- a boost in the response based on these tuning parameters.+newDocumentRelevanceConfiguration ::+  -- | 'name'+  Prelude.Text ->+  -- | 'relevance'+  Relevance ->+  DocumentRelevanceConfiguration+newDocumentRelevanceConfiguration pName_ pRelevance_ =+  DocumentRelevanceConfiguration'+    { name = pName_,+      relevance = pRelevance_+    }++-- | The name of the index field.+documentRelevanceConfiguration_name :: Lens.Lens' DocumentRelevanceConfiguration Prelude.Text+documentRelevanceConfiguration_name = Lens.lens (\DocumentRelevanceConfiguration' {name} -> name) (\s@DocumentRelevanceConfiguration' {} a -> s {name = a} :: DocumentRelevanceConfiguration)++-- | Provides information for tuning the relevance of a field in a search.+-- When a query includes terms that match the field, the results are given+-- a boost in the response based on these tuning parameters.+documentRelevanceConfiguration_relevance :: Lens.Lens' DocumentRelevanceConfiguration Relevance+documentRelevanceConfiguration_relevance = Lens.lens (\DocumentRelevanceConfiguration' {relevance} -> relevance) (\s@DocumentRelevanceConfiguration' {} a -> s {relevance = a} :: DocumentRelevanceConfiguration)++instance+  Prelude.Hashable+    DocumentRelevanceConfiguration+  where+  hashWithSalt+    _salt+    DocumentRelevanceConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` name+        `Prelude.hashWithSalt` relevance++instance+  Prelude.NFData+    DocumentRelevanceConfiguration+  where+  rnf DocumentRelevanceConfiguration' {..} =+    Prelude.rnf name+      `Prelude.seq` Prelude.rnf relevance++instance Data.ToJSON DocumentRelevanceConfiguration where+  toJSON DocumentRelevanceConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Name" Data..= name),+            Prelude.Just ("Relevance" Data..= relevance)+          ]+      )
+ gen/Amazonka/Kendra/Types/DocumentStatus.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.DocumentStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DocumentStatus+  ( DocumentStatus+      ( ..,+        DocumentStatus_FAILED,+        DocumentStatus_INDEXED,+        DocumentStatus_NOT_FOUND,+        DocumentStatus_PROCESSING,+        DocumentStatus_UPDATED,+        DocumentStatus_UPDATE_FAILED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype DocumentStatus = DocumentStatus'+  { fromDocumentStatus ::+      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 DocumentStatus_FAILED :: DocumentStatus+pattern DocumentStatus_FAILED = DocumentStatus' "FAILED"++pattern DocumentStatus_INDEXED :: DocumentStatus+pattern DocumentStatus_INDEXED = DocumentStatus' "INDEXED"++pattern DocumentStatus_NOT_FOUND :: DocumentStatus+pattern DocumentStatus_NOT_FOUND = DocumentStatus' "NOT_FOUND"++pattern DocumentStatus_PROCESSING :: DocumentStatus+pattern DocumentStatus_PROCESSING = DocumentStatus' "PROCESSING"++pattern DocumentStatus_UPDATED :: DocumentStatus+pattern DocumentStatus_UPDATED = DocumentStatus' "UPDATED"++pattern DocumentStatus_UPDATE_FAILED :: DocumentStatus+pattern DocumentStatus_UPDATE_FAILED = DocumentStatus' "UPDATE_FAILED"++{-# COMPLETE+  DocumentStatus_FAILED,+  DocumentStatus_INDEXED,+  DocumentStatus_NOT_FOUND,+  DocumentStatus_PROCESSING,+  DocumentStatus_UPDATED,+  DocumentStatus_UPDATE_FAILED,+  DocumentStatus'+  #-}
+ gen/Amazonka/Kendra/Types/DocumentsMetadataConfiguration.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.Kendra.Types.DocumentsMetadataConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.DocumentsMetadataConfiguration 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++-- | Document metadata files that contain information such as the document+-- access control information, source URI, document author, and custom+-- attributes. Each metadata file contains metadata about a single+-- document.+--+-- /See:/ 'newDocumentsMetadataConfiguration' smart constructor.+data DocumentsMetadataConfiguration = DocumentsMetadataConfiguration'+  { -- | A prefix used to filter metadata configuration files in the Amazon Web+    -- Services S3 bucket. The S3 bucket might contain multiple metadata files.+    -- Use @S3Prefix@ to include only the desired metadata files.+    s3Prefix :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DocumentsMetadataConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 's3Prefix', 'documentsMetadataConfiguration_s3Prefix' - A prefix used to filter metadata configuration files in the Amazon Web+-- Services S3 bucket. The S3 bucket might contain multiple metadata files.+-- Use @S3Prefix@ to include only the desired metadata files.+newDocumentsMetadataConfiguration ::+  DocumentsMetadataConfiguration+newDocumentsMetadataConfiguration =+  DocumentsMetadataConfiguration'+    { s3Prefix =+        Prelude.Nothing+    }++-- | A prefix used to filter metadata configuration files in the Amazon Web+-- Services S3 bucket. The S3 bucket might contain multiple metadata files.+-- Use @S3Prefix@ to include only the desired metadata files.+documentsMetadataConfiguration_s3Prefix :: Lens.Lens' DocumentsMetadataConfiguration (Prelude.Maybe Prelude.Text)+documentsMetadataConfiguration_s3Prefix = Lens.lens (\DocumentsMetadataConfiguration' {s3Prefix} -> s3Prefix) (\s@DocumentsMetadataConfiguration' {} a -> s {s3Prefix = a} :: DocumentsMetadataConfiguration)++instance Data.FromJSON DocumentsMetadataConfiguration where+  parseJSON =+    Data.withObject+      "DocumentsMetadataConfiguration"+      ( \x ->+          DocumentsMetadataConfiguration'+            Prelude.<$> (x Data..:? "S3Prefix")+      )++instance+  Prelude.Hashable+    DocumentsMetadataConfiguration+  where+  hashWithSalt+    _salt+    DocumentsMetadataConfiguration' {..} =+      _salt `Prelude.hashWithSalt` s3Prefix++instance+  Prelude.NFData+    DocumentsMetadataConfiguration+  where+  rnf DocumentsMetadataConfiguration' {..} =+    Prelude.rnf s3Prefix++instance Data.ToJSON DocumentsMetadataConfiguration where+  toJSON DocumentsMetadataConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [("S3Prefix" Data..=) Prelude.<$> s3Prefix]+      )
+ gen/Amazonka/Kendra/Types/EndpointType.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.Kendra.Types.EndpointType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.EndpointType+  ( EndpointType+      ( ..,+        EndpointType_HOME+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EndpointType = EndpointType'+  { fromEndpointType ::+      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 EndpointType_HOME :: EndpointType+pattern EndpointType_HOME = EndpointType' "HOME"++{-# COMPLETE+  EndpointType_HOME,+  EndpointType'+  #-}
+ gen/Amazonka/Kendra/Types/EntityConfiguration.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.Kendra.Types.EntityConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.EntityConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.EntityType+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for users or groups in your IAM+-- Identity Center identity source to grant access your Amazon Kendra+-- experience.+--+-- /See:/ 'newEntityConfiguration' smart constructor.+data EntityConfiguration = EntityConfiguration'+  { -- | The identifier of a user or group in your IAM Identity Center identity+    -- source. For example, a user ID could be an email.+    entityId :: Prelude.Text,+    -- | Specifies whether you are configuring a @User@ or a @Group@.+    entityType :: EntityType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EntityConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entityId', 'entityConfiguration_entityId' - The identifier of a user or group in your IAM Identity Center identity+-- source. For example, a user ID could be an email.+--+-- 'entityType', 'entityConfiguration_entityType' - Specifies whether you are configuring a @User@ or a @Group@.+newEntityConfiguration ::+  -- | 'entityId'+  Prelude.Text ->+  -- | 'entityType'+  EntityType ->+  EntityConfiguration+newEntityConfiguration pEntityId_ pEntityType_ =+  EntityConfiguration'+    { entityId = pEntityId_,+      entityType = pEntityType_+    }++-- | The identifier of a user or group in your IAM Identity Center identity+-- source. For example, a user ID could be an email.+entityConfiguration_entityId :: Lens.Lens' EntityConfiguration Prelude.Text+entityConfiguration_entityId = Lens.lens (\EntityConfiguration' {entityId} -> entityId) (\s@EntityConfiguration' {} a -> s {entityId = a} :: EntityConfiguration)++-- | Specifies whether you are configuring a @User@ or a @Group@.+entityConfiguration_entityType :: Lens.Lens' EntityConfiguration EntityType+entityConfiguration_entityType = Lens.lens (\EntityConfiguration' {entityType} -> entityType) (\s@EntityConfiguration' {} a -> s {entityType = a} :: EntityConfiguration)++instance Prelude.Hashable EntityConfiguration where+  hashWithSalt _salt EntityConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` entityId+      `Prelude.hashWithSalt` entityType++instance Prelude.NFData EntityConfiguration where+  rnf EntityConfiguration' {..} =+    Prelude.rnf entityId+      `Prelude.seq` Prelude.rnf entityType++instance Data.ToJSON EntityConfiguration where+  toJSON EntityConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("EntityId" Data..= entityId),+            Prelude.Just ("EntityType" Data..= entityType)+          ]+      )
+ gen/Amazonka/Kendra/Types/EntityDisplayData.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.Kendra.Types.EntityDisplayData+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.EntityDisplayData where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about the user entity.+--+-- /See:/ 'newEntityDisplayData' smart constructor.+data EntityDisplayData = EntityDisplayData'+  { -- | The first name of the user.+    firstName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The name of the group.+    groupName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The user name of the user.+    identifiedUserName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The last name of the user.+    lastName :: Prelude.Maybe (Data.Sensitive Prelude.Text),+    -- | The name of the user.+    userName :: Prelude.Maybe (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EntityDisplayData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'firstName', 'entityDisplayData_firstName' - The first name of the user.+--+-- 'groupName', 'entityDisplayData_groupName' - The name of the group.+--+-- 'identifiedUserName', 'entityDisplayData_identifiedUserName' - The user name of the user.+--+-- 'lastName', 'entityDisplayData_lastName' - The last name of the user.+--+-- 'userName', 'entityDisplayData_userName' - The name of the user.+newEntityDisplayData ::+  EntityDisplayData+newEntityDisplayData =+  EntityDisplayData'+    { firstName = Prelude.Nothing,+      groupName = Prelude.Nothing,+      identifiedUserName = Prelude.Nothing,+      lastName = Prelude.Nothing,+      userName = Prelude.Nothing+    }++-- | The first name of the user.+entityDisplayData_firstName :: Lens.Lens' EntityDisplayData (Prelude.Maybe Prelude.Text)+entityDisplayData_firstName = Lens.lens (\EntityDisplayData' {firstName} -> firstName) (\s@EntityDisplayData' {} a -> s {firstName = a} :: EntityDisplayData) Prelude.. Lens.mapping Data._Sensitive++-- | The name of the group.+entityDisplayData_groupName :: Lens.Lens' EntityDisplayData (Prelude.Maybe Prelude.Text)+entityDisplayData_groupName = Lens.lens (\EntityDisplayData' {groupName} -> groupName) (\s@EntityDisplayData' {} a -> s {groupName = a} :: EntityDisplayData) Prelude.. Lens.mapping Data._Sensitive++-- | The user name of the user.+entityDisplayData_identifiedUserName :: Lens.Lens' EntityDisplayData (Prelude.Maybe Prelude.Text)+entityDisplayData_identifiedUserName = Lens.lens (\EntityDisplayData' {identifiedUserName} -> identifiedUserName) (\s@EntityDisplayData' {} a -> s {identifiedUserName = a} :: EntityDisplayData) Prelude.. Lens.mapping Data._Sensitive++-- | The last name of the user.+entityDisplayData_lastName :: Lens.Lens' EntityDisplayData (Prelude.Maybe Prelude.Text)+entityDisplayData_lastName = Lens.lens (\EntityDisplayData' {lastName} -> lastName) (\s@EntityDisplayData' {} a -> s {lastName = a} :: EntityDisplayData) Prelude.. Lens.mapping Data._Sensitive++-- | The name of the user.+entityDisplayData_userName :: Lens.Lens' EntityDisplayData (Prelude.Maybe Prelude.Text)+entityDisplayData_userName = Lens.lens (\EntityDisplayData' {userName} -> userName) (\s@EntityDisplayData' {} a -> s {userName = a} :: EntityDisplayData) Prelude.. Lens.mapping Data._Sensitive++instance Data.FromJSON EntityDisplayData where+  parseJSON =+    Data.withObject+      "EntityDisplayData"+      ( \x ->+          EntityDisplayData'+            Prelude.<$> (x Data..:? "FirstName")+            Prelude.<*> (x Data..:? "GroupName")+            Prelude.<*> (x Data..:? "IdentifiedUserName")+            Prelude.<*> (x Data..:? "LastName")+            Prelude.<*> (x Data..:? "UserName")+      )++instance Prelude.Hashable EntityDisplayData where+  hashWithSalt _salt EntityDisplayData' {..} =+    _salt+      `Prelude.hashWithSalt` firstName+      `Prelude.hashWithSalt` groupName+      `Prelude.hashWithSalt` identifiedUserName+      `Prelude.hashWithSalt` lastName+      `Prelude.hashWithSalt` userName++instance Prelude.NFData EntityDisplayData where+  rnf EntityDisplayData' {..} =+    Prelude.rnf firstName+      `Prelude.seq` Prelude.rnf groupName+      `Prelude.seq` Prelude.rnf identifiedUserName+      `Prelude.seq` Prelude.rnf lastName+      `Prelude.seq` Prelude.rnf userName
+ gen/Amazonka/Kendra/Types/EntityPersonaConfiguration.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.Kendra.Types.EntityPersonaConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.EntityPersonaConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.Persona+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for users or groups in your IAM+-- Identity Center identity source for access to your Amazon Kendra+-- experience. Specific permissions are defined for each user or group once+-- they are granted access to your Amazon Kendra experience.+--+-- /See:/ 'newEntityPersonaConfiguration' smart constructor.+data EntityPersonaConfiguration = EntityPersonaConfiguration'+  { -- | The identifier of a user or group in your IAM Identity Center identity+    -- source. For example, a user ID could be an email.+    entityId :: Prelude.Text,+    -- | The persona that defines the specific permissions of the user or group+    -- in your IAM Identity Center identity source. The available personas or+    -- access roles are @Owner@ and @Viewer@. For more information on these+    -- personas, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html#access-search-experience Providing access to your search page>.+    persona :: Persona+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EntityPersonaConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entityId', 'entityPersonaConfiguration_entityId' - The identifier of a user or group in your IAM Identity Center identity+-- source. For example, a user ID could be an email.+--+-- 'persona', 'entityPersonaConfiguration_persona' - The persona that defines the specific permissions of the user or group+-- in your IAM Identity Center identity source. The available personas or+-- access roles are @Owner@ and @Viewer@. For more information on these+-- personas, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html#access-search-experience Providing access to your search page>.+newEntityPersonaConfiguration ::+  -- | 'entityId'+  Prelude.Text ->+  -- | 'persona'+  Persona ->+  EntityPersonaConfiguration+newEntityPersonaConfiguration pEntityId_ pPersona_ =+  EntityPersonaConfiguration'+    { entityId = pEntityId_,+      persona = pPersona_+    }++-- | The identifier of a user or group in your IAM Identity Center identity+-- source. For example, a user ID could be an email.+entityPersonaConfiguration_entityId :: Lens.Lens' EntityPersonaConfiguration Prelude.Text+entityPersonaConfiguration_entityId = Lens.lens (\EntityPersonaConfiguration' {entityId} -> entityId) (\s@EntityPersonaConfiguration' {} a -> s {entityId = a} :: EntityPersonaConfiguration)++-- | The persona that defines the specific permissions of the user or group+-- in your IAM Identity Center identity source. The available personas or+-- access roles are @Owner@ and @Viewer@. For more information on these+-- personas, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html#access-search-experience Providing access to your search page>.+entityPersonaConfiguration_persona :: Lens.Lens' EntityPersonaConfiguration Persona+entityPersonaConfiguration_persona = Lens.lens (\EntityPersonaConfiguration' {persona} -> persona) (\s@EntityPersonaConfiguration' {} a -> s {persona = a} :: EntityPersonaConfiguration)++instance Prelude.Hashable EntityPersonaConfiguration where+  hashWithSalt _salt EntityPersonaConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` entityId+      `Prelude.hashWithSalt` persona++instance Prelude.NFData EntityPersonaConfiguration where+  rnf EntityPersonaConfiguration' {..} =+    Prelude.rnf entityId+      `Prelude.seq` Prelude.rnf persona++instance Data.ToJSON EntityPersonaConfiguration where+  toJSON EntityPersonaConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("EntityId" Data..= entityId),+            Prelude.Just ("Persona" Data..= persona)+          ]+      )
+ gen/Amazonka/Kendra/Types/EntityType.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.Kendra.Types.EntityType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.EntityType+  ( EntityType+      ( ..,+        EntityType_GROUP,+        EntityType_USER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype EntityType = EntityType'+  { fromEntityType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern EntityType_GROUP :: EntityType+pattern EntityType_GROUP = EntityType' "GROUP"++pattern EntityType_USER :: EntityType+pattern EntityType_USER = EntityType' "USER"++{-# COMPLETE+  EntityType_GROUP,+  EntityType_USER,+  EntityType'+  #-}
+ gen/Amazonka/Kendra/Types/ErrorCode.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.Kendra.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.Kendra.Types.ErrorCode+  ( ErrorCode+      ( ..,+        ErrorCode_InternalError,+        ErrorCode_InvalidRequest+      ),+  )+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_InternalError :: ErrorCode+pattern ErrorCode_InternalError = ErrorCode' "InternalError"++pattern ErrorCode_InvalidRequest :: ErrorCode+pattern ErrorCode_InvalidRequest = ErrorCode' "InvalidRequest"++{-# COMPLETE+  ErrorCode_InternalError,+  ErrorCode_InvalidRequest,+  ErrorCode'+  #-}
+ gen/Amazonka/Kendra/Types/ExperienceConfiguration.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.ExperienceConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ExperienceConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ContentSourceConfiguration+import Amazonka.Kendra.Types.UserIdentityConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for your Amazon Kendra+-- experience. This includes the data source IDs and\/or FAQ IDs, and user+-- or group information to grant access to your Amazon Kendra experience.+--+-- /See:/ 'newExperienceConfiguration' smart constructor.+data ExperienceConfiguration = ExperienceConfiguration'+  { -- | The identifiers of your data sources and FAQs. Or, you can specify that+    -- you want to use documents indexed via the @BatchPutDocument@ API. This+    -- is the content you want to use for your Amazon Kendra experience.+    contentSourceConfiguration :: Prelude.Maybe ContentSourceConfiguration,+    -- | The IAM Identity Center field name that contains the identifiers of your+    -- users, such as their emails.+    userIdentityConfiguration :: Prelude.Maybe UserIdentityConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperienceConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'contentSourceConfiguration', 'experienceConfiguration_contentSourceConfiguration' - The identifiers of your data sources and FAQs. Or, you can specify that+-- you want to use documents indexed via the @BatchPutDocument@ API. This+-- is the content you want to use for your Amazon Kendra experience.+--+-- 'userIdentityConfiguration', 'experienceConfiguration_userIdentityConfiguration' - The IAM Identity Center field name that contains the identifiers of your+-- users, such as their emails.+newExperienceConfiguration ::+  ExperienceConfiguration+newExperienceConfiguration =+  ExperienceConfiguration'+    { contentSourceConfiguration =+        Prelude.Nothing,+      userIdentityConfiguration = Prelude.Nothing+    }++-- | The identifiers of your data sources and FAQs. Or, you can specify that+-- you want to use documents indexed via the @BatchPutDocument@ API. This+-- is the content you want to use for your Amazon Kendra experience.+experienceConfiguration_contentSourceConfiguration :: Lens.Lens' ExperienceConfiguration (Prelude.Maybe ContentSourceConfiguration)+experienceConfiguration_contentSourceConfiguration = Lens.lens (\ExperienceConfiguration' {contentSourceConfiguration} -> contentSourceConfiguration) (\s@ExperienceConfiguration' {} a -> s {contentSourceConfiguration = a} :: ExperienceConfiguration)++-- | The IAM Identity Center field name that contains the identifiers of your+-- users, such as their emails.+experienceConfiguration_userIdentityConfiguration :: Lens.Lens' ExperienceConfiguration (Prelude.Maybe UserIdentityConfiguration)+experienceConfiguration_userIdentityConfiguration = Lens.lens (\ExperienceConfiguration' {userIdentityConfiguration} -> userIdentityConfiguration) (\s@ExperienceConfiguration' {} a -> s {userIdentityConfiguration = a} :: ExperienceConfiguration)++instance Data.FromJSON ExperienceConfiguration where+  parseJSON =+    Data.withObject+      "ExperienceConfiguration"+      ( \x ->+          ExperienceConfiguration'+            Prelude.<$> (x Data..:? "ContentSourceConfiguration")+            Prelude.<*> (x Data..:? "UserIdentityConfiguration")+      )++instance Prelude.Hashable ExperienceConfiguration where+  hashWithSalt _salt ExperienceConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` contentSourceConfiguration+      `Prelude.hashWithSalt` userIdentityConfiguration++instance Prelude.NFData ExperienceConfiguration where+  rnf ExperienceConfiguration' {..} =+    Prelude.rnf contentSourceConfiguration+      `Prelude.seq` Prelude.rnf userIdentityConfiguration++instance Data.ToJSON ExperienceConfiguration where+  toJSON ExperienceConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ContentSourceConfiguration" Data..=)+              Prelude.<$> contentSourceConfiguration,+            ("UserIdentityConfiguration" Data..=)+              Prelude.<$> userIdentityConfiguration+          ]+      )
+ gen/Amazonka/Kendra/Types/ExperienceEndpoint.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.Kendra.Types.ExperienceEndpoint+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ExperienceEndpoint where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.EndpointType+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for the endpoint for your Amazon+-- Kendra experience.+--+-- /See:/ 'newExperienceEndpoint' smart constructor.+data ExperienceEndpoint = ExperienceEndpoint'+  { -- | The endpoint of your Amazon Kendra experience.+    endpoint :: Prelude.Maybe Prelude.Text,+    -- | The type of endpoint for your Amazon Kendra experience. The type+    -- currently available is @HOME@, which is a unique and fully hosted URL to+    -- the home page of your Amazon Kendra experience.+    endpointType :: Prelude.Maybe EndpointType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperienceEndpoint' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endpoint', 'experienceEndpoint_endpoint' - The endpoint of your Amazon Kendra experience.+--+-- 'endpointType', 'experienceEndpoint_endpointType' - The type of endpoint for your Amazon Kendra experience. The type+-- currently available is @HOME@, which is a unique and fully hosted URL to+-- the home page of your Amazon Kendra experience.+newExperienceEndpoint ::+  ExperienceEndpoint+newExperienceEndpoint =+  ExperienceEndpoint'+    { endpoint = Prelude.Nothing,+      endpointType = Prelude.Nothing+    }++-- | The endpoint of your Amazon Kendra experience.+experienceEndpoint_endpoint :: Lens.Lens' ExperienceEndpoint (Prelude.Maybe Prelude.Text)+experienceEndpoint_endpoint = Lens.lens (\ExperienceEndpoint' {endpoint} -> endpoint) (\s@ExperienceEndpoint' {} a -> s {endpoint = a} :: ExperienceEndpoint)++-- | The type of endpoint for your Amazon Kendra experience. The type+-- currently available is @HOME@, which is a unique and fully hosted URL to+-- the home page of your Amazon Kendra experience.+experienceEndpoint_endpointType :: Lens.Lens' ExperienceEndpoint (Prelude.Maybe EndpointType)+experienceEndpoint_endpointType = Lens.lens (\ExperienceEndpoint' {endpointType} -> endpointType) (\s@ExperienceEndpoint' {} a -> s {endpointType = a} :: ExperienceEndpoint)++instance Data.FromJSON ExperienceEndpoint where+  parseJSON =+    Data.withObject+      "ExperienceEndpoint"+      ( \x ->+          ExperienceEndpoint'+            Prelude.<$> (x Data..:? "Endpoint")+            Prelude.<*> (x Data..:? "EndpointType")+      )++instance Prelude.Hashable ExperienceEndpoint where+  hashWithSalt _salt ExperienceEndpoint' {..} =+    _salt+      `Prelude.hashWithSalt` endpoint+      `Prelude.hashWithSalt` endpointType++instance Prelude.NFData ExperienceEndpoint where+  rnf ExperienceEndpoint' {..} =+    Prelude.rnf endpoint+      `Prelude.seq` Prelude.rnf endpointType
+ gen/Amazonka/Kendra/Types/ExperienceEntitiesSummary.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.Kendra.Types.ExperienceEntitiesSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ExperienceEntitiesSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.EntityDisplayData+import Amazonka.Kendra.Types.EntityType+import qualified Amazonka.Prelude as Prelude++-- | Summary information for users or groups in your IAM Identity Center+-- identity source with granted access to your Amazon Kendra experience.+-- You can create an Amazon Kendra experience such as a search application.+-- For more information on creating a search application experience, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html Building a search experience with no code>.+--+-- /See:/ 'newExperienceEntitiesSummary' smart constructor.+data ExperienceEntitiesSummary = ExperienceEntitiesSummary'+  { -- | Information about the user entity.+    displayData :: Prelude.Maybe EntityDisplayData,+    -- | The identifier of a user or group in your IAM Identity Center identity+    -- source. For example, a user ID could be an email.+    entityId :: Prelude.Maybe Prelude.Text,+    -- | Shows the type as @User@ or @Group@.+    entityType :: Prelude.Maybe EntityType+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperienceEntitiesSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'displayData', 'experienceEntitiesSummary_displayData' - Information about the user entity.+--+-- 'entityId', 'experienceEntitiesSummary_entityId' - The identifier of a user or group in your IAM Identity Center identity+-- source. For example, a user ID could be an email.+--+-- 'entityType', 'experienceEntitiesSummary_entityType' - Shows the type as @User@ or @Group@.+newExperienceEntitiesSummary ::+  ExperienceEntitiesSummary+newExperienceEntitiesSummary =+  ExperienceEntitiesSummary'+    { displayData =+        Prelude.Nothing,+      entityId = Prelude.Nothing,+      entityType = Prelude.Nothing+    }++-- | Information about the user entity.+experienceEntitiesSummary_displayData :: Lens.Lens' ExperienceEntitiesSummary (Prelude.Maybe EntityDisplayData)+experienceEntitiesSummary_displayData = Lens.lens (\ExperienceEntitiesSummary' {displayData} -> displayData) (\s@ExperienceEntitiesSummary' {} a -> s {displayData = a} :: ExperienceEntitiesSummary)++-- | The identifier of a user or group in your IAM Identity Center identity+-- source. For example, a user ID could be an email.+experienceEntitiesSummary_entityId :: Lens.Lens' ExperienceEntitiesSummary (Prelude.Maybe Prelude.Text)+experienceEntitiesSummary_entityId = Lens.lens (\ExperienceEntitiesSummary' {entityId} -> entityId) (\s@ExperienceEntitiesSummary' {} a -> s {entityId = a} :: ExperienceEntitiesSummary)++-- | Shows the type as @User@ or @Group@.+experienceEntitiesSummary_entityType :: Lens.Lens' ExperienceEntitiesSummary (Prelude.Maybe EntityType)+experienceEntitiesSummary_entityType = Lens.lens (\ExperienceEntitiesSummary' {entityType} -> entityType) (\s@ExperienceEntitiesSummary' {} a -> s {entityType = a} :: ExperienceEntitiesSummary)++instance Data.FromJSON ExperienceEntitiesSummary where+  parseJSON =+    Data.withObject+      "ExperienceEntitiesSummary"+      ( \x ->+          ExperienceEntitiesSummary'+            Prelude.<$> (x Data..:? "DisplayData")+            Prelude.<*> (x Data..:? "EntityId")+            Prelude.<*> (x Data..:? "EntityType")+      )++instance Prelude.Hashable ExperienceEntitiesSummary where+  hashWithSalt _salt ExperienceEntitiesSummary' {..} =+    _salt+      `Prelude.hashWithSalt` displayData+      `Prelude.hashWithSalt` entityId+      `Prelude.hashWithSalt` entityType++instance Prelude.NFData ExperienceEntitiesSummary where+  rnf ExperienceEntitiesSummary' {..} =+    Prelude.rnf displayData+      `Prelude.seq` Prelude.rnf entityId+      `Prelude.seq` Prelude.rnf entityType
+ gen/Amazonka/Kendra/Types/ExperienceStatus.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.Kendra.Types.ExperienceStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ExperienceStatus+  ( ExperienceStatus+      ( ..,+        ExperienceStatus_ACTIVE,+        ExperienceStatus_CREATING,+        ExperienceStatus_DELETING,+        ExperienceStatus_FAILED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ExperienceStatus = ExperienceStatus'+  { fromExperienceStatus ::+      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 ExperienceStatus_ACTIVE :: ExperienceStatus+pattern ExperienceStatus_ACTIVE = ExperienceStatus' "ACTIVE"++pattern ExperienceStatus_CREATING :: ExperienceStatus+pattern ExperienceStatus_CREATING = ExperienceStatus' "CREATING"++pattern ExperienceStatus_DELETING :: ExperienceStatus+pattern ExperienceStatus_DELETING = ExperienceStatus' "DELETING"++pattern ExperienceStatus_FAILED :: ExperienceStatus+pattern ExperienceStatus_FAILED = ExperienceStatus' "FAILED"++{-# COMPLETE+  ExperienceStatus_ACTIVE,+  ExperienceStatus_CREATING,+  ExperienceStatus_DELETING,+  ExperienceStatus_FAILED,+  ExperienceStatus'+  #-}
+ gen/Amazonka/Kendra/Types/ExperiencesSummary.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.Kendra.Types.ExperiencesSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ExperiencesSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ExperienceEndpoint+import Amazonka.Kendra.Types.ExperienceStatus+import qualified Amazonka.Prelude as Prelude++-- | Summary information for your Amazon Kendra experience. You can create an+-- Amazon Kendra experience such as a search application. For more+-- information on creating a search application experience, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html Building a search experience with no code>.+--+-- /See:/ 'newExperiencesSummary' smart constructor.+data ExperiencesSummary = ExperiencesSummary'+  { -- | The date-time your Amazon Kendra experience was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The endpoint URLs for your Amazon Kendra experiences. The URLs are+    -- unique and fully hosted by Amazon Web Services.+    endpoints :: Prelude.Maybe (Prelude.NonEmpty ExperienceEndpoint),+    -- | The identifier of your Amazon Kendra experience.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of your Amazon Kendra experience.+    name :: Prelude.Maybe Prelude.Text,+    -- | The processing status of your Amazon Kendra experience.+    status :: Prelude.Maybe ExperienceStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ExperiencesSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdAt', 'experiencesSummary_createdAt' - The date-time your Amazon Kendra experience was created.+--+-- 'endpoints', 'experiencesSummary_endpoints' - The endpoint URLs for your Amazon Kendra experiences. The URLs are+-- unique and fully hosted by Amazon Web Services.+--+-- 'id', 'experiencesSummary_id' - The identifier of your Amazon Kendra experience.+--+-- 'name', 'experiencesSummary_name' - The name of your Amazon Kendra experience.+--+-- 'status', 'experiencesSummary_status' - The processing status of your Amazon Kendra experience.+newExperiencesSummary ::+  ExperiencesSummary+newExperiencesSummary =+  ExperiencesSummary'+    { createdAt = Prelude.Nothing,+      endpoints = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The date-time your Amazon Kendra experience was created.+experiencesSummary_createdAt :: Lens.Lens' ExperiencesSummary (Prelude.Maybe Prelude.UTCTime)+experiencesSummary_createdAt = Lens.lens (\ExperiencesSummary' {createdAt} -> createdAt) (\s@ExperiencesSummary' {} a -> s {createdAt = a} :: ExperiencesSummary) Prelude.. Lens.mapping Data._Time++-- | The endpoint URLs for your Amazon Kendra experiences. The URLs are+-- unique and fully hosted by Amazon Web Services.+experiencesSummary_endpoints :: Lens.Lens' ExperiencesSummary (Prelude.Maybe (Prelude.NonEmpty ExperienceEndpoint))+experiencesSummary_endpoints = Lens.lens (\ExperiencesSummary' {endpoints} -> endpoints) (\s@ExperiencesSummary' {} a -> s {endpoints = a} :: ExperiencesSummary) Prelude.. Lens.mapping Lens.coerced++-- | The identifier of your Amazon Kendra experience.+experiencesSummary_id :: Lens.Lens' ExperiencesSummary (Prelude.Maybe Prelude.Text)+experiencesSummary_id = Lens.lens (\ExperiencesSummary' {id} -> id) (\s@ExperiencesSummary' {} a -> s {id = a} :: ExperiencesSummary)++-- | The name of your Amazon Kendra experience.+experiencesSummary_name :: Lens.Lens' ExperiencesSummary (Prelude.Maybe Prelude.Text)+experiencesSummary_name = Lens.lens (\ExperiencesSummary' {name} -> name) (\s@ExperiencesSummary' {} a -> s {name = a} :: ExperiencesSummary)++-- | The processing status of your Amazon Kendra experience.+experiencesSummary_status :: Lens.Lens' ExperiencesSummary (Prelude.Maybe ExperienceStatus)+experiencesSummary_status = Lens.lens (\ExperiencesSummary' {status} -> status) (\s@ExperiencesSummary' {} a -> s {status = a} :: ExperiencesSummary)++instance Data.FromJSON ExperiencesSummary where+  parseJSON =+    Data.withObject+      "ExperiencesSummary"+      ( \x ->+          ExperiencesSummary'+            Prelude.<$> (x Data..:? "CreatedAt")+            Prelude.<*> (x Data..:? "Endpoints")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Status")+      )++instance Prelude.Hashable ExperiencesSummary where+  hashWithSalt _salt ExperiencesSummary' {..} =+    _salt+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` endpoints+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status++instance Prelude.NFData ExperiencesSummary where+  rnf ExperiencesSummary' {..} =+    Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf endpoints+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Kendra/Types/Facet.hs view
@@ -0,0 +1,151 @@+{-# 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.Kendra.Types.Facet+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.Facet where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about a document attribute. You can use document attributes+-- as facets.+--+-- For example, the document attribute or facet \"Department\" includes the+-- values \"HR\", \"Engineering\", and \"Accounting\". You can display+-- these values in the search results so that documents can be searched by+-- department.+--+-- You can display up to 10 facet values per facet for a query. If you want+-- to increase this limit, contact+-- <http://aws.amazon.com/contact-us/ Support>.+--+-- /See:/ 'newFacet' smart constructor.+data Facet = Facet'+  { -- | The unique key for the document attribute.+    documentAttributeKey :: Prelude.Maybe Prelude.Text,+    -- | An array of document attributes that are nested facets within a facet.+    --+    -- For example, the document attribute or facet \"Department\" includes a+    -- value called \"Engineering\". In addition, the document attribute or+    -- facet \"SubDepartment\" includes the values \"Frontend\" and \"Backend\"+    -- for documents assigned to \"Engineering\". You can display nested facets+    -- in the search results so that documents can be searched not only by+    -- department but also by a sub department within a department. This helps+    -- your users further narrow their search.+    --+    -- You can only have one nested facet within a facet. If you want to+    -- increase this limit, contact+    -- <http://aws.amazon.com/contact-us/ Support>.+    facets :: Prelude.Maybe [Facet],+    -- | Maximum number of facet values per facet. The default is 10. You can use+    -- this to limit the number of facet values to less than 10. If you want to+    -- increase the default, contact+    -- <http://aws.amazon.com/contact-us/ Support>.+    maxResults :: Prelude.Maybe Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Facet' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'documentAttributeKey', 'facet_documentAttributeKey' - The unique key for the document attribute.+--+-- 'facets', 'facet_facets' - An array of document attributes that are nested facets within a facet.+--+-- For example, the document attribute or facet \"Department\" includes a+-- value called \"Engineering\". In addition, the document attribute or+-- facet \"SubDepartment\" includes the values \"Frontend\" and \"Backend\"+-- for documents assigned to \"Engineering\". You can display nested facets+-- in the search results so that documents can be searched not only by+-- department but also by a sub department within a department. This helps+-- your users further narrow their search.+--+-- You can only have one nested facet within a facet. If you want to+-- increase this limit, contact+-- <http://aws.amazon.com/contact-us/ Support>.+--+-- 'maxResults', 'facet_maxResults' - Maximum number of facet values per facet. The default is 10. You can use+-- this to limit the number of facet values to less than 10. If you want to+-- increase the default, contact+-- <http://aws.amazon.com/contact-us/ Support>.+newFacet ::+  Facet+newFacet =+  Facet'+    { documentAttributeKey = Prelude.Nothing,+      facets = Prelude.Nothing,+      maxResults = Prelude.Nothing+    }++-- | The unique key for the document attribute.+facet_documentAttributeKey :: Lens.Lens' Facet (Prelude.Maybe Prelude.Text)+facet_documentAttributeKey = Lens.lens (\Facet' {documentAttributeKey} -> documentAttributeKey) (\s@Facet' {} a -> s {documentAttributeKey = a} :: Facet)++-- | An array of document attributes that are nested facets within a facet.+--+-- For example, the document attribute or facet \"Department\" includes a+-- value called \"Engineering\". In addition, the document attribute or+-- facet \"SubDepartment\" includes the values \"Frontend\" and \"Backend\"+-- for documents assigned to \"Engineering\". You can display nested facets+-- in the search results so that documents can be searched not only by+-- department but also by a sub department within a department. This helps+-- your users further narrow their search.+--+-- You can only have one nested facet within a facet. If you want to+-- increase this limit, contact+-- <http://aws.amazon.com/contact-us/ Support>.+facet_facets :: Lens.Lens' Facet (Prelude.Maybe [Facet])+facet_facets = Lens.lens (\Facet' {facets} -> facets) (\s@Facet' {} a -> s {facets = a} :: Facet) Prelude.. Lens.mapping Lens.coerced++-- | Maximum number of facet values per facet. The default is 10. You can use+-- this to limit the number of facet values to less than 10. If you want to+-- increase the default, contact+-- <http://aws.amazon.com/contact-us/ Support>.+facet_maxResults :: Lens.Lens' Facet (Prelude.Maybe Prelude.Natural)+facet_maxResults = Lens.lens (\Facet' {maxResults} -> maxResults) (\s@Facet' {} a -> s {maxResults = a} :: Facet)++instance Prelude.Hashable Facet where+  hashWithSalt _salt Facet' {..} =+    _salt+      `Prelude.hashWithSalt` documentAttributeKey+      `Prelude.hashWithSalt` facets+      `Prelude.hashWithSalt` maxResults++instance Prelude.NFData Facet where+  rnf Facet' {..} =+    Prelude.rnf documentAttributeKey+      `Prelude.seq` Prelude.rnf facets+      `Prelude.seq` Prelude.rnf maxResults++instance Data.ToJSON Facet where+  toJSON Facet' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DocumentAttributeKey" Data..=)+              Prelude.<$> documentAttributeKey,+            ("Facets" Data..=) Prelude.<$> facets,+            ("MaxResults" Data..=) Prelude.<$> maxResults+          ]+      )
+ gen/Amazonka/Kendra/Types/FacetResult.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.Kendra.Types.FacetResult+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.FacetResult where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import {-# SOURCE #-} Amazonka.Kendra.Types.DocumentAttributeValueCountPair+import Amazonka.Kendra.Types.DocumentAttributeValueType+import qualified Amazonka.Prelude as Prelude++-- | The facet values for the documents in the response.+--+-- /See:/ 'newFacetResult' smart constructor.+data FacetResult = FacetResult'+  { -- | The key for the facet values. This is the same as the+    -- @DocumentAttributeKey@ provided in the query.+    documentAttributeKey :: Prelude.Maybe Prelude.Text,+    -- | An array of key\/value pairs, where the key is the value of the+    -- attribute and the count is the number of documents that share the key+    -- value.+    documentAttributeValueCountPairs :: Prelude.Maybe [DocumentAttributeValueCountPair],+    -- | The data type of the facet value. This is the same as the type defined+    -- for the index field when it was created.+    documentAttributeValueType :: Prelude.Maybe DocumentAttributeValueType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FacetResult' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'documentAttributeKey', 'facetResult_documentAttributeKey' - The key for the facet values. This is the same as the+-- @DocumentAttributeKey@ provided in the query.+--+-- 'documentAttributeValueCountPairs', 'facetResult_documentAttributeValueCountPairs' - An array of key\/value pairs, where the key is the value of the+-- attribute and the count is the number of documents that share the key+-- value.+--+-- 'documentAttributeValueType', 'facetResult_documentAttributeValueType' - The data type of the facet value. This is the same as the type defined+-- for the index field when it was created.+newFacetResult ::+  FacetResult+newFacetResult =+  FacetResult'+    { documentAttributeKey =+        Prelude.Nothing,+      documentAttributeValueCountPairs = Prelude.Nothing,+      documentAttributeValueType = Prelude.Nothing+    }++-- | The key for the facet values. This is the same as the+-- @DocumentAttributeKey@ provided in the query.+facetResult_documentAttributeKey :: Lens.Lens' FacetResult (Prelude.Maybe Prelude.Text)+facetResult_documentAttributeKey = Lens.lens (\FacetResult' {documentAttributeKey} -> documentAttributeKey) (\s@FacetResult' {} a -> s {documentAttributeKey = a} :: FacetResult)++-- | An array of key\/value pairs, where the key is the value of the+-- attribute and the count is the number of documents that share the key+-- value.+facetResult_documentAttributeValueCountPairs :: Lens.Lens' FacetResult (Prelude.Maybe [DocumentAttributeValueCountPair])+facetResult_documentAttributeValueCountPairs = Lens.lens (\FacetResult' {documentAttributeValueCountPairs} -> documentAttributeValueCountPairs) (\s@FacetResult' {} a -> s {documentAttributeValueCountPairs = a} :: FacetResult) Prelude.. Lens.mapping Lens.coerced++-- | The data type of the facet value. This is the same as the type defined+-- for the index field when it was created.+facetResult_documentAttributeValueType :: Lens.Lens' FacetResult (Prelude.Maybe DocumentAttributeValueType)+facetResult_documentAttributeValueType = Lens.lens (\FacetResult' {documentAttributeValueType} -> documentAttributeValueType) (\s@FacetResult' {} a -> s {documentAttributeValueType = a} :: FacetResult)++instance Data.FromJSON FacetResult where+  parseJSON =+    Data.withObject+      "FacetResult"+      ( \x ->+          FacetResult'+            Prelude.<$> (x Data..:? "DocumentAttributeKey")+            Prelude.<*> ( x+                            Data..:? "DocumentAttributeValueCountPairs"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "DocumentAttributeValueType")+      )++instance Prelude.Hashable FacetResult where+  hashWithSalt _salt FacetResult' {..} =+    _salt+      `Prelude.hashWithSalt` documentAttributeKey+      `Prelude.hashWithSalt` documentAttributeValueCountPairs+      `Prelude.hashWithSalt` documentAttributeValueType++instance Prelude.NFData FacetResult where+  rnf FacetResult' {..} =+    Prelude.rnf documentAttributeKey+      `Prelude.seq` Prelude.rnf documentAttributeValueCountPairs+      `Prelude.seq` Prelude.rnf documentAttributeValueType
+ gen/Amazonka/Kendra/Types/FacetResult.hs-boot view
@@ -0,0 +1,31 @@+{-# OPTIONS_GHC -Wno-missing-methods #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.FacetResult+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.FacetResult where++import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++data FacetResult++instance Prelude.Eq FacetResult++instance Prelude.Read FacetResult++instance Prelude.Show FacetResult++instance Prelude.Generic FacetResult++instance Data.FromJSON FacetResult++instance Prelude.NFData FacetResult++instance Prelude.Hashable FacetResult
+ gen/Amazonka/Kendra/Types/FailedEntity.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.Kendra.Types.FailedEntity+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.FailedEntity where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information on the users or groups in your IAM Identity Center identity+-- source that failed to properly configure with your Amazon Kendra+-- experience.+--+-- /See:/ 'newFailedEntity' smart constructor.+data FailedEntity = FailedEntity'+  { -- | The identifier of the user or group in your IAM Identity Center identity+    -- source. For example, a user ID could be an email.+    entityId :: Prelude.Maybe Prelude.Text,+    -- | The reason the user or group in your IAM Identity Center identity source+    -- failed to properly configure with your Amazon Kendra experience.+    errorMessage :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FailedEntity' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'entityId', 'failedEntity_entityId' - The identifier of the user or group in your IAM Identity Center identity+-- source. For example, a user ID could be an email.+--+-- 'errorMessage', 'failedEntity_errorMessage' - The reason the user or group in your IAM Identity Center identity source+-- failed to properly configure with your Amazon Kendra experience.+newFailedEntity ::+  FailedEntity+newFailedEntity =+  FailedEntity'+    { entityId = Prelude.Nothing,+      errorMessage = Prelude.Nothing+    }++-- | The identifier of the user or group in your IAM Identity Center identity+-- source. For example, a user ID could be an email.+failedEntity_entityId :: Lens.Lens' FailedEntity (Prelude.Maybe Prelude.Text)+failedEntity_entityId = Lens.lens (\FailedEntity' {entityId} -> entityId) (\s@FailedEntity' {} a -> s {entityId = a} :: FailedEntity)++-- | The reason the user or group in your IAM Identity Center identity source+-- failed to properly configure with your Amazon Kendra experience.+failedEntity_errorMessage :: Lens.Lens' FailedEntity (Prelude.Maybe Prelude.Text)+failedEntity_errorMessage = Lens.lens (\FailedEntity' {errorMessage} -> errorMessage) (\s@FailedEntity' {} a -> s {errorMessage = a} :: FailedEntity)++instance Data.FromJSON FailedEntity where+  parseJSON =+    Data.withObject+      "FailedEntity"+      ( \x ->+          FailedEntity'+            Prelude.<$> (x Data..:? "EntityId")+            Prelude.<*> (x Data..:? "ErrorMessage")+      )++instance Prelude.Hashable FailedEntity where+  hashWithSalt _salt FailedEntity' {..} =+    _salt+      `Prelude.hashWithSalt` entityId+      `Prelude.hashWithSalt` errorMessage++instance Prelude.NFData FailedEntity where+  rnf FailedEntity' {..} =+    Prelude.rnf entityId+      `Prelude.seq` Prelude.rnf errorMessage
+ gen/Amazonka/Kendra/Types/FaqFileFormat.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.Kendra.Types.FaqFileFormat+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.FaqFileFormat+  ( FaqFileFormat+      ( ..,+        FaqFileFormat_CSV,+        FaqFileFormat_CSV_WITH_HEADER,+        FaqFileFormat_JSON+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FaqFileFormat = FaqFileFormat'+  { fromFaqFileFormat ::+      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 FaqFileFormat_CSV :: FaqFileFormat+pattern FaqFileFormat_CSV = FaqFileFormat' "CSV"++pattern FaqFileFormat_CSV_WITH_HEADER :: FaqFileFormat+pattern FaqFileFormat_CSV_WITH_HEADER = FaqFileFormat' "CSV_WITH_HEADER"++pattern FaqFileFormat_JSON :: FaqFileFormat+pattern FaqFileFormat_JSON = FaqFileFormat' "JSON"++{-# COMPLETE+  FaqFileFormat_CSV,+  FaqFileFormat_CSV_WITH_HEADER,+  FaqFileFormat_JSON,+  FaqFileFormat'+  #-}
+ gen/Amazonka/Kendra/Types/FaqStatistics.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.Kendra.Types.FaqStatistics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.FaqStatistics 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 statistical information about the FAQ questions and answers+-- contained in an index.+--+-- /See:/ 'newFaqStatistics' smart constructor.+data FaqStatistics = FaqStatistics'+  { -- | The total number of FAQ questions and answers contained in the index.+    indexedQuestionAnswersCount :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FaqStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'indexedQuestionAnswersCount', 'faqStatistics_indexedQuestionAnswersCount' - The total number of FAQ questions and answers contained in the index.+newFaqStatistics ::+  -- | 'indexedQuestionAnswersCount'+  Prelude.Natural ->+  FaqStatistics+newFaqStatistics pIndexedQuestionAnswersCount_ =+  FaqStatistics'+    { indexedQuestionAnswersCount =+        pIndexedQuestionAnswersCount_+    }++-- | The total number of FAQ questions and answers contained in the index.+faqStatistics_indexedQuestionAnswersCount :: Lens.Lens' FaqStatistics Prelude.Natural+faqStatistics_indexedQuestionAnswersCount = Lens.lens (\FaqStatistics' {indexedQuestionAnswersCount} -> indexedQuestionAnswersCount) (\s@FaqStatistics' {} a -> s {indexedQuestionAnswersCount = a} :: FaqStatistics)++instance Data.FromJSON FaqStatistics where+  parseJSON =+    Data.withObject+      "FaqStatistics"+      ( \x ->+          FaqStatistics'+            Prelude.<$> (x Data..: "IndexedQuestionAnswersCount")+      )++instance Prelude.Hashable FaqStatistics where+  hashWithSalt _salt FaqStatistics' {..} =+    _salt+      `Prelude.hashWithSalt` indexedQuestionAnswersCount++instance Prelude.NFData FaqStatistics where+  rnf FaqStatistics' {..} =+    Prelude.rnf indexedQuestionAnswersCount
+ gen/Amazonka/Kendra/Types/FaqStatus.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.Kendra.Types.FaqStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.FaqStatus+  ( FaqStatus+      ( ..,+        FaqStatus_ACTIVE,+        FaqStatus_CREATING,+        FaqStatus_DELETING,+        FaqStatus_FAILED,+        FaqStatus_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FaqStatus = FaqStatus'+  { fromFaqStatus ::+      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 FaqStatus_ACTIVE :: FaqStatus+pattern FaqStatus_ACTIVE = FaqStatus' "ACTIVE"++pattern FaqStatus_CREATING :: FaqStatus+pattern FaqStatus_CREATING = FaqStatus' "CREATING"++pattern FaqStatus_DELETING :: FaqStatus+pattern FaqStatus_DELETING = FaqStatus' "DELETING"++pattern FaqStatus_FAILED :: FaqStatus+pattern FaqStatus_FAILED = FaqStatus' "FAILED"++pattern FaqStatus_UPDATING :: FaqStatus+pattern FaqStatus_UPDATING = FaqStatus' "UPDATING"++{-# COMPLETE+  FaqStatus_ACTIVE,+  FaqStatus_CREATING,+  FaqStatus_DELETING,+  FaqStatus_FAILED,+  FaqStatus_UPDATING,+  FaqStatus'+  #-}
+ gen/Amazonka/Kendra/Types/FaqSummary.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.Kendra.Types.FaqSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.FaqSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.FaqFileFormat+import Amazonka.Kendra.Types.FaqStatus+import qualified Amazonka.Prelude as Prelude++-- | Summary information for frequently asked questions and answers included+-- in an index.+--+-- /See:/ 'newFaqSummary' smart constructor.+data FaqSummary = FaqSummary'+  { -- | The UNIX datetime that the FAQ was added to the index.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The file type used to create the FAQ.+    fileFormat :: Prelude.Maybe FaqFileFormat,+    -- | The identifier of the FAQ.+    id :: Prelude.Maybe Prelude.Text,+    -- | The code for a language. This shows a supported language for the FAQ+    -- document as part of the summary information for FAQs. English is+    -- supported by default. For more information on supported languages,+    -- including their codes, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+    languageCode :: Prelude.Maybe Prelude.Text,+    -- | The name that you assigned the FAQ when you created or updated the FAQ.+    name :: Prelude.Maybe Prelude.Text,+    -- | The current status of the FAQ. When the status is @ACTIVE@ the FAQ is+    -- ready for use.+    status :: Prelude.Maybe FaqStatus,+    -- | The UNIX datetime that the FAQ was last updated.+    updatedAt :: Prelude.Maybe Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FaqSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdAt', 'faqSummary_createdAt' - The UNIX datetime that the FAQ was added to the index.+--+-- 'fileFormat', 'faqSummary_fileFormat' - The file type used to create the FAQ.+--+-- 'id', 'faqSummary_id' - The identifier of the FAQ.+--+-- 'languageCode', 'faqSummary_languageCode' - The code for a language. This shows a supported language for the FAQ+-- document as part of the summary information for FAQs. English is+-- supported by default. For more information on supported languages,+-- including their codes, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+--+-- 'name', 'faqSummary_name' - The name that you assigned the FAQ when you created or updated the FAQ.+--+-- 'status', 'faqSummary_status' - The current status of the FAQ. When the status is @ACTIVE@ the FAQ is+-- ready for use.+--+-- 'updatedAt', 'faqSummary_updatedAt' - The UNIX datetime that the FAQ was last updated.+newFaqSummary ::+  FaqSummary+newFaqSummary =+  FaqSummary'+    { createdAt = Prelude.Nothing,+      fileFormat = Prelude.Nothing,+      id = Prelude.Nothing,+      languageCode = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing,+      updatedAt = Prelude.Nothing+    }++-- | The UNIX datetime that the FAQ was added to the index.+faqSummary_createdAt :: Lens.Lens' FaqSummary (Prelude.Maybe Prelude.UTCTime)+faqSummary_createdAt = Lens.lens (\FaqSummary' {createdAt} -> createdAt) (\s@FaqSummary' {} a -> s {createdAt = a} :: FaqSummary) Prelude.. Lens.mapping Data._Time++-- | The file type used to create the FAQ.+faqSummary_fileFormat :: Lens.Lens' FaqSummary (Prelude.Maybe FaqFileFormat)+faqSummary_fileFormat = Lens.lens (\FaqSummary' {fileFormat} -> fileFormat) (\s@FaqSummary' {} a -> s {fileFormat = a} :: FaqSummary)++-- | The identifier of the FAQ.+faqSummary_id :: Lens.Lens' FaqSummary (Prelude.Maybe Prelude.Text)+faqSummary_id = Lens.lens (\FaqSummary' {id} -> id) (\s@FaqSummary' {} a -> s {id = a} :: FaqSummary)++-- | The code for a language. This shows a supported language for the FAQ+-- document as part of the summary information for FAQs. English is+-- supported by default. For more information on supported languages,+-- including their codes, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+faqSummary_languageCode :: Lens.Lens' FaqSummary (Prelude.Maybe Prelude.Text)+faqSummary_languageCode = Lens.lens (\FaqSummary' {languageCode} -> languageCode) (\s@FaqSummary' {} a -> s {languageCode = a} :: FaqSummary)++-- | The name that you assigned the FAQ when you created or updated the FAQ.+faqSummary_name :: Lens.Lens' FaqSummary (Prelude.Maybe Prelude.Text)+faqSummary_name = Lens.lens (\FaqSummary' {name} -> name) (\s@FaqSummary' {} a -> s {name = a} :: FaqSummary)++-- | The current status of the FAQ. When the status is @ACTIVE@ the FAQ is+-- ready for use.+faqSummary_status :: Lens.Lens' FaqSummary (Prelude.Maybe FaqStatus)+faqSummary_status = Lens.lens (\FaqSummary' {status} -> status) (\s@FaqSummary' {} a -> s {status = a} :: FaqSummary)++-- | The UNIX datetime that the FAQ was last updated.+faqSummary_updatedAt :: Lens.Lens' FaqSummary (Prelude.Maybe Prelude.UTCTime)+faqSummary_updatedAt = Lens.lens (\FaqSummary' {updatedAt} -> updatedAt) (\s@FaqSummary' {} a -> s {updatedAt = a} :: FaqSummary) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON FaqSummary where+  parseJSON =+    Data.withObject+      "FaqSummary"+      ( \x ->+          FaqSummary'+            Prelude.<$> (x Data..:? "CreatedAt")+            Prelude.<*> (x Data..:? "FileFormat")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "LanguageCode")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "UpdatedAt")+      )++instance Prelude.Hashable FaqSummary where+  hashWithSalt _salt FaqSummary' {..} =+    _salt+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` fileFormat+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` languageCode+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` updatedAt++instance Prelude.NFData FaqSummary where+  rnf FaqSummary' {..} =+    Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf fileFormat+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf languageCode+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf updatedAt
+ gen/Amazonka/Kendra/Types/FsxConfiguration.hs view
@@ -0,0 +1,287 @@+{-# 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.Kendra.Types.FsxConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.FsxConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import Amazonka.Kendra.Types.DataSourceVpcConfiguration+import Amazonka.Kendra.Types.FsxFileSystemType+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to Amazon FSx as your+-- data source.+--+-- /See:/ 'newFsxConfiguration' smart constructor.+data FsxConfiguration = FsxConfiguration'+  { -- | A list of regular expression patterns to exclude certain files in your+    -- Amazon FSx file system. Files that match the patterns are excluded from+    -- the index. Files that don\'t match the patterns are included in the+    -- index. If a file matches both an inclusion and exclusion pattern, the+    -- exclusion pattern takes precedence and the file isn\'t included in the+    -- index.+    exclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map Amazon FSx+    -- data source attributes or field names to Amazon Kendra index field+    -- names. To create custom fields, use the @UpdateIndex@ API before you map+    -- to Amazon FSx fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Amazon FSx data source field names must exist in your Amazon FSx+    -- custom metadata.+    fieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of regular expression patterns to include certain files in your+    -- Amazon FSx file system. Files that match the patterns are included in+    -- the index. Files that don\'t match the patterns are excluded from the+    -- index. If a file matches both an inclusion and exclusion pattern, the+    -- exclusion pattern takes precedence and the file isn\'t included in the+    -- index.+    inclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | The Amazon Resource Name (ARN) of an Secrets Manager secret that+    -- contains the key-value pairs required to connect to your Amazon FSx file+    -- system. Windows is currently the only supported type. The secret must+    -- contain a JSON structure with the following keys:+    --+    -- -   username—The Active Directory user name, along with the Domain Name+    --     System (DNS) domain name. For example, /user\@corp.example.com/. The+    --     Active Directory user account must have read and mounting access to+    --     the Amazon FSx file system for Windows.+    --+    -- -   password—The password of the Active Directory user account with read+    --     and mounting access to the Amazon FSx Windows file system.+    secretArn :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the Amazon FSx file system.+    --+    -- You can find your file system ID on the file system dashboard in the+    -- Amazon FSx console. For information on how to create a file system in+    -- Amazon FSx console, using Windows File Server as an example, see+    -- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step1.html Amazon FSx Getting started guide>.+    fileSystemId :: Prelude.Text,+    -- | The Amazon FSx file system type. Windows is currently the only supported+    -- type.+    fileSystemType :: FsxFileSystemType,+    -- | Configuration information for an Amazon Virtual Private Cloud to connect+    -- to your Amazon FSx. Your Amazon FSx instance must reside inside your+    -- VPC.+    vpcConfiguration :: DataSourceVpcConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'FsxConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exclusionPatterns', 'fsxConfiguration_exclusionPatterns' - A list of regular expression patterns to exclude certain files in your+-- Amazon FSx file system. Files that match the patterns are excluded from+-- the index. Files that don\'t match the patterns are included in the+-- index. If a file matches both an inclusion and exclusion pattern, the+-- exclusion pattern takes precedence and the file isn\'t included in the+-- index.+--+-- 'fieldMappings', 'fsxConfiguration_fieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map Amazon FSx+-- data source attributes or field names to Amazon Kendra index field+-- names. To create custom fields, use the @UpdateIndex@ API before you map+-- to Amazon FSx fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Amazon FSx data source field names must exist in your Amazon FSx+-- custom metadata.+--+-- 'inclusionPatterns', 'fsxConfiguration_inclusionPatterns' - A list of regular expression patterns to include certain files in your+-- Amazon FSx file system. Files that match the patterns are included in+-- the index. Files that don\'t match the patterns are excluded from the+-- index. If a file matches both an inclusion and exclusion pattern, the+-- exclusion pattern takes precedence and the file isn\'t included in the+-- index.+--+-- 'secretArn', 'fsxConfiguration_secretArn' - The Amazon Resource Name (ARN) of an Secrets Manager secret that+-- contains the key-value pairs required to connect to your Amazon FSx file+-- system. Windows is currently the only supported type. The secret must+-- contain a JSON structure with the following keys:+--+-- -   username—The Active Directory user name, along with the Domain Name+--     System (DNS) domain name. For example, /user\@corp.example.com/. The+--     Active Directory user account must have read and mounting access to+--     the Amazon FSx file system for Windows.+--+-- -   password—The password of the Active Directory user account with read+--     and mounting access to the Amazon FSx Windows file system.+--+-- 'fileSystemId', 'fsxConfiguration_fileSystemId' - The identifier of the Amazon FSx file system.+--+-- You can find your file system ID on the file system dashboard in the+-- Amazon FSx console. For information on how to create a file system in+-- Amazon FSx console, using Windows File Server as an example, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step1.html Amazon FSx Getting started guide>.+--+-- 'fileSystemType', 'fsxConfiguration_fileSystemType' - The Amazon FSx file system type. Windows is currently the only supported+-- type.+--+-- 'vpcConfiguration', 'fsxConfiguration_vpcConfiguration' - Configuration information for an Amazon Virtual Private Cloud to connect+-- to your Amazon FSx. Your Amazon FSx instance must reside inside your+-- VPC.+newFsxConfiguration ::+  -- | 'fileSystemId'+  Prelude.Text ->+  -- | 'fileSystemType'+  FsxFileSystemType ->+  -- | 'vpcConfiguration'+  DataSourceVpcConfiguration ->+  FsxConfiguration+newFsxConfiguration+  pFileSystemId_+  pFileSystemType_+  pVpcConfiguration_ =+    FsxConfiguration'+      { exclusionPatterns =+          Prelude.Nothing,+        fieldMappings = Prelude.Nothing,+        inclusionPatterns = Prelude.Nothing,+        secretArn = Prelude.Nothing,+        fileSystemId = pFileSystemId_,+        fileSystemType = pFileSystemType_,+        vpcConfiguration = pVpcConfiguration_+      }++-- | A list of regular expression patterns to exclude certain files in your+-- Amazon FSx file system. Files that match the patterns are excluded from+-- the index. Files that don\'t match the patterns are included in the+-- index. If a file matches both an inclusion and exclusion pattern, the+-- exclusion pattern takes precedence and the file isn\'t included in the+-- index.+fsxConfiguration_exclusionPatterns :: Lens.Lens' FsxConfiguration (Prelude.Maybe [Prelude.Text])+fsxConfiguration_exclusionPatterns = Lens.lens (\FsxConfiguration' {exclusionPatterns} -> exclusionPatterns) (\s@FsxConfiguration' {} a -> s {exclusionPatterns = a} :: FsxConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of @DataSourceToIndexFieldMapping@ objects that map Amazon FSx+-- data source attributes or field names to Amazon Kendra index field+-- names. To create custom fields, use the @UpdateIndex@ API before you map+-- to Amazon FSx fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Amazon FSx data source field names must exist in your Amazon FSx+-- custom metadata.+fsxConfiguration_fieldMappings :: Lens.Lens' FsxConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+fsxConfiguration_fieldMappings = Lens.lens (\FsxConfiguration' {fieldMappings} -> fieldMappings) (\s@FsxConfiguration' {} a -> s {fieldMappings = a} :: FsxConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to include certain files in your+-- Amazon FSx file system. Files that match the patterns are included in+-- the index. Files that don\'t match the patterns are excluded from the+-- index. If a file matches both an inclusion and exclusion pattern, the+-- exclusion pattern takes precedence and the file isn\'t included in the+-- index.+fsxConfiguration_inclusionPatterns :: Lens.Lens' FsxConfiguration (Prelude.Maybe [Prelude.Text])+fsxConfiguration_inclusionPatterns = Lens.lens (\FsxConfiguration' {inclusionPatterns} -> inclusionPatterns) (\s@FsxConfiguration' {} a -> s {inclusionPatterns = a} :: FsxConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of an Secrets Manager secret that+-- contains the key-value pairs required to connect to your Amazon FSx file+-- system. Windows is currently the only supported type. The secret must+-- contain a JSON structure with the following keys:+--+-- -   username—The Active Directory user name, along with the Domain Name+--     System (DNS) domain name. For example, /user\@corp.example.com/. The+--     Active Directory user account must have read and mounting access to+--     the Amazon FSx file system for Windows.+--+-- -   password—The password of the Active Directory user account with read+--     and mounting access to the Amazon FSx Windows file system.+fsxConfiguration_secretArn :: Lens.Lens' FsxConfiguration (Prelude.Maybe Prelude.Text)+fsxConfiguration_secretArn = Lens.lens (\FsxConfiguration' {secretArn} -> secretArn) (\s@FsxConfiguration' {} a -> s {secretArn = a} :: FsxConfiguration)++-- | The identifier of the Amazon FSx file system.+--+-- You can find your file system ID on the file system dashboard in the+-- Amazon FSx console. For information on how to create a file system in+-- Amazon FSx console, using Windows File Server as an example, see+-- <https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step1.html Amazon FSx Getting started guide>.+fsxConfiguration_fileSystemId :: Lens.Lens' FsxConfiguration Prelude.Text+fsxConfiguration_fileSystemId = Lens.lens (\FsxConfiguration' {fileSystemId} -> fileSystemId) (\s@FsxConfiguration' {} a -> s {fileSystemId = a} :: FsxConfiguration)++-- | The Amazon FSx file system type. Windows is currently the only supported+-- type.+fsxConfiguration_fileSystemType :: Lens.Lens' FsxConfiguration FsxFileSystemType+fsxConfiguration_fileSystemType = Lens.lens (\FsxConfiguration' {fileSystemType} -> fileSystemType) (\s@FsxConfiguration' {} a -> s {fileSystemType = a} :: FsxConfiguration)++-- | Configuration information for an Amazon Virtual Private Cloud to connect+-- to your Amazon FSx. Your Amazon FSx instance must reside inside your+-- VPC.+fsxConfiguration_vpcConfiguration :: Lens.Lens' FsxConfiguration DataSourceVpcConfiguration+fsxConfiguration_vpcConfiguration = Lens.lens (\FsxConfiguration' {vpcConfiguration} -> vpcConfiguration) (\s@FsxConfiguration' {} a -> s {vpcConfiguration = a} :: FsxConfiguration)++instance Data.FromJSON FsxConfiguration where+  parseJSON =+    Data.withObject+      "FsxConfiguration"+      ( \x ->+          FsxConfiguration'+            Prelude.<$> ( x+                            Data..:? "ExclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "FieldMappings")+            Prelude.<*> ( x+                            Data..:? "InclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "SecretArn")+            Prelude.<*> (x Data..: "FileSystemId")+            Prelude.<*> (x Data..: "FileSystemType")+            Prelude.<*> (x Data..: "VpcConfiguration")+      )++instance Prelude.Hashable FsxConfiguration where+  hashWithSalt _salt FsxConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` exclusionPatterns+      `Prelude.hashWithSalt` fieldMappings+      `Prelude.hashWithSalt` inclusionPatterns+      `Prelude.hashWithSalt` secretArn+      `Prelude.hashWithSalt` fileSystemId+      `Prelude.hashWithSalt` fileSystemType+      `Prelude.hashWithSalt` vpcConfiguration++instance Prelude.NFData FsxConfiguration where+  rnf FsxConfiguration' {..} =+    Prelude.rnf exclusionPatterns+      `Prelude.seq` Prelude.rnf fieldMappings+      `Prelude.seq` Prelude.rnf inclusionPatterns+      `Prelude.seq` Prelude.rnf secretArn+      `Prelude.seq` Prelude.rnf fileSystemId+      `Prelude.seq` Prelude.rnf fileSystemType+      `Prelude.seq` Prelude.rnf vpcConfiguration++instance Data.ToJSON FsxConfiguration where+  toJSON FsxConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ExclusionPatterns" Data..=)+              Prelude.<$> exclusionPatterns,+            ("FieldMappings" Data..=) Prelude.<$> fieldMappings,+            ("InclusionPatterns" Data..=)+              Prelude.<$> inclusionPatterns,+            ("SecretArn" Data..=) Prelude.<$> secretArn,+            Prelude.Just ("FileSystemId" Data..= fileSystemId),+            Prelude.Just+              ("FileSystemType" Data..= fileSystemType),+            Prelude.Just+              ("VpcConfiguration" Data..= vpcConfiguration)+          ]+      )
+ gen/Amazonka/Kendra/Types/FsxFileSystemType.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.Kendra.Types.FsxFileSystemType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.FsxFileSystemType+  ( FsxFileSystemType+      ( ..,+        FsxFileSystemType_WINDOWS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FsxFileSystemType = FsxFileSystemType'+  { fromFsxFileSystemType ::+      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 FsxFileSystemType_WINDOWS :: FsxFileSystemType+pattern FsxFileSystemType_WINDOWS = FsxFileSystemType' "WINDOWS"++{-# COMPLETE+  FsxFileSystemType_WINDOWS,+  FsxFileSystemType'+  #-}
+ gen/Amazonka/Kendra/Types/GitHubConfiguration.hs view
@@ -0,0 +1,725 @@+{-# 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.Kendra.Types.GitHubConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.GitHubConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import Amazonka.Kendra.Types.DataSourceVpcConfiguration+import Amazonka.Kendra.Types.GitHubDocumentCrawlProperties+import Amazonka.Kendra.Types.OnPremiseConfiguration+import Amazonka.Kendra.Types.SaaSConfiguration+import Amazonka.Kendra.Types.Type+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to GitHub as your data+-- source.+--+-- /See:/ 'newGitHubConfiguration' smart constructor.+data GitHubConfiguration = GitHubConfiguration'+  { -- | A list of regular expression patterns to exclude certain file names in+    -- your GitHub repository or repositories. File names that match the+    -- patterns are excluded from the index. File names that don\'t match the+    -- patterns are included in the index. If a file matches both an exclusion+    -- and inclusion pattern, the exclusion pattern takes precedence and the+    -- file isn\'t included in the index.+    exclusionFileNamePatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of regular expression patterns to exclude certain file types in+    -- your GitHub repository or repositories. File types that match the+    -- patterns are excluded from the index. File types that don\'t match the+    -- patterns are included in the index. If a file matches both an exclusion+    -- and inclusion pattern, the exclusion pattern takes precedence and the+    -- file isn\'t included in the index.+    exclusionFileTypePatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of regular expression patterns to exclude certain folder names in+    -- your GitHub repository or repositories. Folder names that match the+    -- patterns are excluded from the index. Folder names that don\'t match the+    -- patterns are included in the index. If a folder matches both an+    -- exclusion and inclusion pattern, the exclusion pattern takes precedence+    -- and the folder isn\'t included in the index.+    exclusionFolderNamePatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+    -- field names of GitHub commits to Amazon Kendra index field names. To+    -- create custom fields, use the @UpdateIndex@ API before you map to GitHub+    -- fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The GitHub data source field names must exist in your GitHub custom+    -- metadata.+    gitHubCommitConfigurationFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | Configuration information to include certain types of GitHub content.+    -- You can configure to index repository files only, or also include issues+    -- and pull requests, comments, and comment attachments.+    gitHubDocumentCrawlProperties :: Prelude.Maybe GitHubDocumentCrawlProperties,+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+    -- field names of GitHub issue attachments to Amazon Kendra index field+    -- names. To create custom fields, use the @UpdateIndex@ API before you map+    -- to GitHub fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The GitHub data source field names must exist in your GitHub custom+    -- metadata.+    gitHubIssueAttachmentConfigurationFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+    -- field names of GitHub issue comments to Amazon Kendra index field names.+    -- To create custom fields, use the @UpdateIndex@ API before you map to+    -- GitHub fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The GitHub data source field names must exist in your GitHub custom+    -- metadata.+    gitHubIssueCommentConfigurationFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+    -- field names of GitHub issues to Amazon Kendra index field names. To+    -- create custom fields, use the @UpdateIndex@ API before you map to GitHub+    -- fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The GitHub data source field names must exist in your GitHub custom+    -- metadata.+    gitHubIssueDocumentConfigurationFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+    -- field names of GitHub pull request comments to Amazon Kendra index field+    -- names. To create custom fields, use the @UpdateIndex@ API before you map+    -- to GitHub fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The GitHub data source field names must exist in your GitHub custom+    -- metadata.+    gitHubPullRequestCommentConfigurationFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+    -- field names of GitHub pull request attachments to Amazon Kendra index+    -- field names. To create custom fields, use the @UpdateIndex@ API before+    -- you map to GitHub fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The GitHub data source field names must exist in your GitHub custom+    -- metadata.+    gitHubPullRequestDocumentAttachmentConfigurationFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+    -- field names of GitHub pull requests to Amazon Kendra index field names.+    -- To create custom fields, use the @UpdateIndex@ API before you map to+    -- GitHub fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The GitHub data source field names must exist in your GitHub custom+    -- metadata.+    gitHubPullRequestDocumentConfigurationFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map GitHub+    -- repository attributes or field names to Amazon Kendra index field names.+    -- To create custom fields, use the @UpdateIndex@ API before you map to+    -- GitHub fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The GitHub data source field names must exist in your GitHub custom+    -- metadata.+    gitHubRepositoryConfigurationFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of regular expression patterns to include certain file names in+    -- your GitHub repository or repositories. File names that match the+    -- patterns are included in the index. File names that don\'t match the+    -- patterns are excluded from the index. If a file matches both an+    -- inclusion and exclusion pattern, the exclusion pattern takes precedence+    -- and the file isn\'t included in the index.+    inclusionFileNamePatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of regular expression patterns to include certain file types in+    -- your GitHub repository or repositories. File types that match the+    -- patterns are included in the index. File types that don\'t match the+    -- patterns are excluded from the index. If a file matches both an+    -- inclusion and exclusion pattern, the exclusion pattern takes precedence+    -- and the file isn\'t included in the index.+    inclusionFileTypePatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of regular expression patterns to include certain folder names in+    -- your GitHub repository or repositories. Folder names that match the+    -- patterns are included in the index. Folder names that don\'t match the+    -- patterns are excluded from the index. If a folder matches both an+    -- inclusion and exclusion pattern, the exclusion pattern takes precedence+    -- and the folder isn\'t included in the index.+    inclusionFolderNamePatterns :: Prelude.Maybe [Prelude.Text],+    -- | Configuration information to connect to GitHub Enterprise Server (on+    -- premises).+    onPremiseConfiguration :: Prelude.Maybe OnPremiseConfiguration,+    -- | A list of names of the specific repositories you want to index.+    repositoryFilter :: Prelude.Maybe [Prelude.Text],+    -- | Configuration information to connect to GitHub Enterprise Cloud (SaaS).+    saaSConfiguration :: Prelude.Maybe SaaSConfiguration,+    -- | The type of GitHub service you want to connect to—GitHub Enterprise+    -- Cloud (SaaS) or GitHub Enterprise Server (on premises).+    type' :: Prelude.Maybe Type,+    -- | @TRUE@ to use the GitHub change log to determine which documents require+    -- updating in the index. Depending on the GitHub change log\'s size, it+    -- may take longer for Amazon Kendra to use the change log than to scan all+    -- of your documents in GitHub.+    useChangeLog :: Prelude.Maybe Prelude.Bool,+    -- | Configuration information of an Amazon Virtual Private Cloud to connect+    -- to your GitHub. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+    vpcConfiguration :: Prelude.Maybe DataSourceVpcConfiguration,+    -- | The Amazon Resource Name (ARN) of an Secrets Manager secret that+    -- contains the key-value pairs required to connect to your GitHub. The+    -- secret must contain a JSON structure with the following keys:+    --+    -- -   personalToken—The access token created in GitHub. For more+    --     information on creating a token in GitHub, see+    --     <https://docs.aws.amazon.com/kendra/latest/dg/data-source-github.html Using a GitHub data source>.+    secretArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GitHubConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'exclusionFileNamePatterns', 'gitHubConfiguration_exclusionFileNamePatterns' - A list of regular expression patterns to exclude certain file names in+-- your GitHub repository or repositories. File names that match the+-- patterns are excluded from the index. File names that don\'t match the+-- patterns are included in the index. If a file matches both an exclusion+-- and inclusion pattern, the exclusion pattern takes precedence and the+-- file isn\'t included in the index.+--+-- 'exclusionFileTypePatterns', 'gitHubConfiguration_exclusionFileTypePatterns' - A list of regular expression patterns to exclude certain file types in+-- your GitHub repository or repositories. File types that match the+-- patterns are excluded from the index. File types that don\'t match the+-- patterns are included in the index. If a file matches both an exclusion+-- and inclusion pattern, the exclusion pattern takes precedence and the+-- file isn\'t included in the index.+--+-- 'exclusionFolderNamePatterns', 'gitHubConfiguration_exclusionFolderNamePatterns' - A list of regular expression patterns to exclude certain folder names in+-- your GitHub repository or repositories. Folder names that match the+-- patterns are excluded from the index. Folder names that don\'t match the+-- patterns are included in the index. If a folder matches both an+-- exclusion and inclusion pattern, the exclusion pattern takes precedence+-- and the folder isn\'t included in the index.+--+-- 'gitHubCommitConfigurationFieldMappings', 'gitHubConfiguration_gitHubCommitConfigurationFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of GitHub commits to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to GitHub+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The GitHub data source field names must exist in your GitHub custom+-- metadata.+--+-- 'gitHubDocumentCrawlProperties', 'gitHubConfiguration_gitHubDocumentCrawlProperties' - Configuration information to include certain types of GitHub content.+-- You can configure to index repository files only, or also include issues+-- and pull requests, comments, and comment attachments.+--+-- 'gitHubIssueAttachmentConfigurationFieldMappings', 'gitHubConfiguration_gitHubIssueAttachmentConfigurationFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of GitHub issue attachments to Amazon Kendra index field+-- names. To create custom fields, use the @UpdateIndex@ API before you map+-- to GitHub fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The GitHub data source field names must exist in your GitHub custom+-- metadata.+--+-- 'gitHubIssueCommentConfigurationFieldMappings', 'gitHubConfiguration_gitHubIssueCommentConfigurationFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of GitHub issue comments to Amazon Kendra index field names.+-- To create custom fields, use the @UpdateIndex@ API before you map to+-- GitHub fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The GitHub data source field names must exist in your GitHub custom+-- metadata.+--+-- 'gitHubIssueDocumentConfigurationFieldMappings', 'gitHubConfiguration_gitHubIssueDocumentConfigurationFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of GitHub issues to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to GitHub+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The GitHub data source field names must exist in your GitHub custom+-- metadata.+--+-- 'gitHubPullRequestCommentConfigurationFieldMappings', 'gitHubConfiguration_gitHubPullRequestCommentConfigurationFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of GitHub pull request comments to Amazon Kendra index field+-- names. To create custom fields, use the @UpdateIndex@ API before you map+-- to GitHub fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The GitHub data source field names must exist in your GitHub custom+-- metadata.+--+-- 'gitHubPullRequestDocumentAttachmentConfigurationFieldMappings', 'gitHubConfiguration_gitHubPullRequestDocumentAttachmentConfigurationFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of GitHub pull request attachments to Amazon Kendra index+-- field names. To create custom fields, use the @UpdateIndex@ API before+-- you map to GitHub fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The GitHub data source field names must exist in your GitHub custom+-- metadata.+--+-- 'gitHubPullRequestDocumentConfigurationFieldMappings', 'gitHubConfiguration_gitHubPullRequestDocumentConfigurationFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of GitHub pull requests to Amazon Kendra index field names.+-- To create custom fields, use the @UpdateIndex@ API before you map to+-- GitHub fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The GitHub data source field names must exist in your GitHub custom+-- metadata.+--+-- 'gitHubRepositoryConfigurationFieldMappings', 'gitHubConfiguration_gitHubRepositoryConfigurationFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map GitHub+-- repository attributes or field names to Amazon Kendra index field names.+-- To create custom fields, use the @UpdateIndex@ API before you map to+-- GitHub fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The GitHub data source field names must exist in your GitHub custom+-- metadata.+--+-- 'inclusionFileNamePatterns', 'gitHubConfiguration_inclusionFileNamePatterns' - A list of regular expression patterns to include certain file names in+-- your GitHub repository or repositories. File names that match the+-- patterns are included in the index. File names that don\'t match the+-- patterns are excluded from the index. If a file matches both an+-- inclusion and exclusion pattern, the exclusion pattern takes precedence+-- and the file isn\'t included in the index.+--+-- 'inclusionFileTypePatterns', 'gitHubConfiguration_inclusionFileTypePatterns' - A list of regular expression patterns to include certain file types in+-- your GitHub repository or repositories. File types that match the+-- patterns are included in the index. File types that don\'t match the+-- patterns are excluded from the index. If a file matches both an+-- inclusion and exclusion pattern, the exclusion pattern takes precedence+-- and the file isn\'t included in the index.+--+-- 'inclusionFolderNamePatterns', 'gitHubConfiguration_inclusionFolderNamePatterns' - A list of regular expression patterns to include certain folder names in+-- your GitHub repository or repositories. Folder names that match the+-- patterns are included in the index. Folder names that don\'t match the+-- patterns are excluded from the index. If a folder matches both an+-- inclusion and exclusion pattern, the exclusion pattern takes precedence+-- and the folder isn\'t included in the index.+--+-- 'onPremiseConfiguration', 'gitHubConfiguration_onPremiseConfiguration' - Configuration information to connect to GitHub Enterprise Server (on+-- premises).+--+-- 'repositoryFilter', 'gitHubConfiguration_repositoryFilter' - A list of names of the specific repositories you want to index.+--+-- 'saaSConfiguration', 'gitHubConfiguration_saaSConfiguration' - Configuration information to connect to GitHub Enterprise Cloud (SaaS).+--+-- 'type'', 'gitHubConfiguration_type' - The type of GitHub service you want to connect to—GitHub Enterprise+-- Cloud (SaaS) or GitHub Enterprise Server (on premises).+--+-- 'useChangeLog', 'gitHubConfiguration_useChangeLog' - @TRUE@ to use the GitHub change log to determine which documents require+-- updating in the index. Depending on the GitHub change log\'s size, it+-- may take longer for Amazon Kendra to use the change log than to scan all+-- of your documents in GitHub.+--+-- 'vpcConfiguration', 'gitHubConfiguration_vpcConfiguration' - Configuration information of an Amazon Virtual Private Cloud to connect+-- to your GitHub. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+--+-- 'secretArn', 'gitHubConfiguration_secretArn' - The Amazon Resource Name (ARN) of an Secrets Manager secret that+-- contains the key-value pairs required to connect to your GitHub. The+-- secret must contain a JSON structure with the following keys:+--+-- -   personalToken—The access token created in GitHub. For more+--     information on creating a token in GitHub, see+--     <https://docs.aws.amazon.com/kendra/latest/dg/data-source-github.html Using a GitHub data source>.+newGitHubConfiguration ::+  -- | 'secretArn'+  Prelude.Text ->+  GitHubConfiguration+newGitHubConfiguration pSecretArn_ =+  GitHubConfiguration'+    { exclusionFileNamePatterns =+        Prelude.Nothing,+      exclusionFileTypePatterns = Prelude.Nothing,+      exclusionFolderNamePatterns = Prelude.Nothing,+      gitHubCommitConfigurationFieldMappings =+        Prelude.Nothing,+      gitHubDocumentCrawlProperties = Prelude.Nothing,+      gitHubIssueAttachmentConfigurationFieldMappings =+        Prelude.Nothing,+      gitHubIssueCommentConfigurationFieldMappings =+        Prelude.Nothing,+      gitHubIssueDocumentConfigurationFieldMappings =+        Prelude.Nothing,+      gitHubPullRequestCommentConfigurationFieldMappings =+        Prelude.Nothing,+      gitHubPullRequestDocumentAttachmentConfigurationFieldMappings =+        Prelude.Nothing,+      gitHubPullRequestDocumentConfigurationFieldMappings =+        Prelude.Nothing,+      gitHubRepositoryConfigurationFieldMappings =+        Prelude.Nothing,+      inclusionFileNamePatterns = Prelude.Nothing,+      inclusionFileTypePatterns = Prelude.Nothing,+      inclusionFolderNamePatterns = Prelude.Nothing,+      onPremiseConfiguration = Prelude.Nothing,+      repositoryFilter = Prelude.Nothing,+      saaSConfiguration = Prelude.Nothing,+      type' = Prelude.Nothing,+      useChangeLog = Prelude.Nothing,+      vpcConfiguration = Prelude.Nothing,+      secretArn = pSecretArn_+    }++-- | A list of regular expression patterns to exclude certain file names in+-- your GitHub repository or repositories. File names that match the+-- patterns are excluded from the index. File names that don\'t match the+-- patterns are included in the index. If a file matches both an exclusion+-- and inclusion pattern, the exclusion pattern takes precedence and the+-- file isn\'t included in the index.+gitHubConfiguration_exclusionFileNamePatterns :: Lens.Lens' GitHubConfiguration (Prelude.Maybe [Prelude.Text])+gitHubConfiguration_exclusionFileNamePatterns = Lens.lens (\GitHubConfiguration' {exclusionFileNamePatterns} -> exclusionFileNamePatterns) (\s@GitHubConfiguration' {} a -> s {exclusionFileNamePatterns = a} :: GitHubConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to exclude certain file types in+-- your GitHub repository or repositories. File types that match the+-- patterns are excluded from the index. File types that don\'t match the+-- patterns are included in the index. If a file matches both an exclusion+-- and inclusion pattern, the exclusion pattern takes precedence and the+-- file isn\'t included in the index.+gitHubConfiguration_exclusionFileTypePatterns :: Lens.Lens' GitHubConfiguration (Prelude.Maybe [Prelude.Text])+gitHubConfiguration_exclusionFileTypePatterns = Lens.lens (\GitHubConfiguration' {exclusionFileTypePatterns} -> exclusionFileTypePatterns) (\s@GitHubConfiguration' {} a -> s {exclusionFileTypePatterns = a} :: GitHubConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to exclude certain folder names in+-- your GitHub repository or repositories. Folder names that match the+-- patterns are excluded from the index. Folder names that don\'t match the+-- patterns are included in the index. If a folder matches both an+-- exclusion and inclusion pattern, the exclusion pattern takes precedence+-- and the folder isn\'t included in the index.+gitHubConfiguration_exclusionFolderNamePatterns :: Lens.Lens' GitHubConfiguration (Prelude.Maybe [Prelude.Text])+gitHubConfiguration_exclusionFolderNamePatterns = Lens.lens (\GitHubConfiguration' {exclusionFolderNamePatterns} -> exclusionFolderNamePatterns) (\s@GitHubConfiguration' {} a -> s {exclusionFolderNamePatterns = a} :: GitHubConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of GitHub commits to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to GitHub+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The GitHub data source field names must exist in your GitHub custom+-- metadata.+gitHubConfiguration_gitHubCommitConfigurationFieldMappings :: Lens.Lens' GitHubConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+gitHubConfiguration_gitHubCommitConfigurationFieldMappings = Lens.lens (\GitHubConfiguration' {gitHubCommitConfigurationFieldMappings} -> gitHubCommitConfigurationFieldMappings) (\s@GitHubConfiguration' {} a -> s {gitHubCommitConfigurationFieldMappings = a} :: GitHubConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Configuration information to include certain types of GitHub content.+-- You can configure to index repository files only, or also include issues+-- and pull requests, comments, and comment attachments.+gitHubConfiguration_gitHubDocumentCrawlProperties :: Lens.Lens' GitHubConfiguration (Prelude.Maybe GitHubDocumentCrawlProperties)+gitHubConfiguration_gitHubDocumentCrawlProperties = Lens.lens (\GitHubConfiguration' {gitHubDocumentCrawlProperties} -> gitHubDocumentCrawlProperties) (\s@GitHubConfiguration' {} a -> s {gitHubDocumentCrawlProperties = a} :: GitHubConfiguration)++-- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of GitHub issue attachments to Amazon Kendra index field+-- names. To create custom fields, use the @UpdateIndex@ API before you map+-- to GitHub fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The GitHub data source field names must exist in your GitHub custom+-- metadata.+gitHubConfiguration_gitHubIssueAttachmentConfigurationFieldMappings :: Lens.Lens' GitHubConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+gitHubConfiguration_gitHubIssueAttachmentConfigurationFieldMappings = Lens.lens (\GitHubConfiguration' {gitHubIssueAttachmentConfigurationFieldMappings} -> gitHubIssueAttachmentConfigurationFieldMappings) (\s@GitHubConfiguration' {} a -> s {gitHubIssueAttachmentConfigurationFieldMappings = a} :: GitHubConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of GitHub issue comments to Amazon Kendra index field names.+-- To create custom fields, use the @UpdateIndex@ API before you map to+-- GitHub fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The GitHub data source field names must exist in your GitHub custom+-- metadata.+gitHubConfiguration_gitHubIssueCommentConfigurationFieldMappings :: Lens.Lens' GitHubConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+gitHubConfiguration_gitHubIssueCommentConfigurationFieldMappings = Lens.lens (\GitHubConfiguration' {gitHubIssueCommentConfigurationFieldMappings} -> gitHubIssueCommentConfigurationFieldMappings) (\s@GitHubConfiguration' {} a -> s {gitHubIssueCommentConfigurationFieldMappings = a} :: GitHubConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of GitHub issues to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to GitHub+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The GitHub data source field names must exist in your GitHub custom+-- metadata.+gitHubConfiguration_gitHubIssueDocumentConfigurationFieldMappings :: Lens.Lens' GitHubConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+gitHubConfiguration_gitHubIssueDocumentConfigurationFieldMappings = Lens.lens (\GitHubConfiguration' {gitHubIssueDocumentConfigurationFieldMappings} -> gitHubIssueDocumentConfigurationFieldMappings) (\s@GitHubConfiguration' {} a -> s {gitHubIssueDocumentConfigurationFieldMappings = a} :: GitHubConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of GitHub pull request comments to Amazon Kendra index field+-- names. To create custom fields, use the @UpdateIndex@ API before you map+-- to GitHub fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The GitHub data source field names must exist in your GitHub custom+-- metadata.+gitHubConfiguration_gitHubPullRequestCommentConfigurationFieldMappings :: Lens.Lens' GitHubConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+gitHubConfiguration_gitHubPullRequestCommentConfigurationFieldMappings = Lens.lens (\GitHubConfiguration' {gitHubPullRequestCommentConfigurationFieldMappings} -> gitHubPullRequestCommentConfigurationFieldMappings) (\s@GitHubConfiguration' {} a -> s {gitHubPullRequestCommentConfigurationFieldMappings = a} :: GitHubConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of GitHub pull request attachments to Amazon Kendra index+-- field names. To create custom fields, use the @UpdateIndex@ API before+-- you map to GitHub fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The GitHub data source field names must exist in your GitHub custom+-- metadata.+gitHubConfiguration_gitHubPullRequestDocumentAttachmentConfigurationFieldMappings :: Lens.Lens' GitHubConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+gitHubConfiguration_gitHubPullRequestDocumentAttachmentConfigurationFieldMappings = Lens.lens (\GitHubConfiguration' {gitHubPullRequestDocumentAttachmentConfigurationFieldMappings} -> gitHubPullRequestDocumentAttachmentConfigurationFieldMappings) (\s@GitHubConfiguration' {} a -> s {gitHubPullRequestDocumentAttachmentConfigurationFieldMappings = a} :: GitHubConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of GitHub pull requests to Amazon Kendra index field names.+-- To create custom fields, use the @UpdateIndex@ API before you map to+-- GitHub fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The GitHub data source field names must exist in your GitHub custom+-- metadata.+gitHubConfiguration_gitHubPullRequestDocumentConfigurationFieldMappings :: Lens.Lens' GitHubConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+gitHubConfiguration_gitHubPullRequestDocumentConfigurationFieldMappings = Lens.lens (\GitHubConfiguration' {gitHubPullRequestDocumentConfigurationFieldMappings} -> gitHubPullRequestDocumentConfigurationFieldMappings) (\s@GitHubConfiguration' {} a -> s {gitHubPullRequestDocumentConfigurationFieldMappings = a} :: GitHubConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of @DataSourceToIndexFieldMapping@ objects that map GitHub+-- repository attributes or field names to Amazon Kendra index field names.+-- To create custom fields, use the @UpdateIndex@ API before you map to+-- GitHub fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The GitHub data source field names must exist in your GitHub custom+-- metadata.+gitHubConfiguration_gitHubRepositoryConfigurationFieldMappings :: Lens.Lens' GitHubConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+gitHubConfiguration_gitHubRepositoryConfigurationFieldMappings = Lens.lens (\GitHubConfiguration' {gitHubRepositoryConfigurationFieldMappings} -> gitHubRepositoryConfigurationFieldMappings) (\s@GitHubConfiguration' {} a -> s {gitHubRepositoryConfigurationFieldMappings = a} :: GitHubConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to include certain file names in+-- your GitHub repository or repositories. File names that match the+-- patterns are included in the index. File names that don\'t match the+-- patterns are excluded from the index. If a file matches both an+-- inclusion and exclusion pattern, the exclusion pattern takes precedence+-- and the file isn\'t included in the index.+gitHubConfiguration_inclusionFileNamePatterns :: Lens.Lens' GitHubConfiguration (Prelude.Maybe [Prelude.Text])+gitHubConfiguration_inclusionFileNamePatterns = Lens.lens (\GitHubConfiguration' {inclusionFileNamePatterns} -> inclusionFileNamePatterns) (\s@GitHubConfiguration' {} a -> s {inclusionFileNamePatterns = a} :: GitHubConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to include certain file types in+-- your GitHub repository or repositories. File types that match the+-- patterns are included in the index. File types that don\'t match the+-- patterns are excluded from the index. If a file matches both an+-- inclusion and exclusion pattern, the exclusion pattern takes precedence+-- and the file isn\'t included in the index.+gitHubConfiguration_inclusionFileTypePatterns :: Lens.Lens' GitHubConfiguration (Prelude.Maybe [Prelude.Text])+gitHubConfiguration_inclusionFileTypePatterns = Lens.lens (\GitHubConfiguration' {inclusionFileTypePatterns} -> inclusionFileTypePatterns) (\s@GitHubConfiguration' {} a -> s {inclusionFileTypePatterns = a} :: GitHubConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to include certain folder names in+-- your GitHub repository or repositories. Folder names that match the+-- patterns are included in the index. Folder names that don\'t match the+-- patterns are excluded from the index. If a folder matches both an+-- inclusion and exclusion pattern, the exclusion pattern takes precedence+-- and the folder isn\'t included in the index.+gitHubConfiguration_inclusionFolderNamePatterns :: Lens.Lens' GitHubConfiguration (Prelude.Maybe [Prelude.Text])+gitHubConfiguration_inclusionFolderNamePatterns = Lens.lens (\GitHubConfiguration' {inclusionFolderNamePatterns} -> inclusionFolderNamePatterns) (\s@GitHubConfiguration' {} a -> s {inclusionFolderNamePatterns = a} :: GitHubConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Configuration information to connect to GitHub Enterprise Server (on+-- premises).+gitHubConfiguration_onPremiseConfiguration :: Lens.Lens' GitHubConfiguration (Prelude.Maybe OnPremiseConfiguration)+gitHubConfiguration_onPremiseConfiguration = Lens.lens (\GitHubConfiguration' {onPremiseConfiguration} -> onPremiseConfiguration) (\s@GitHubConfiguration' {} a -> s {onPremiseConfiguration = a} :: GitHubConfiguration)++-- | A list of names of the specific repositories you want to index.+gitHubConfiguration_repositoryFilter :: Lens.Lens' GitHubConfiguration (Prelude.Maybe [Prelude.Text])+gitHubConfiguration_repositoryFilter = Lens.lens (\GitHubConfiguration' {repositoryFilter} -> repositoryFilter) (\s@GitHubConfiguration' {} a -> s {repositoryFilter = a} :: GitHubConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Configuration information to connect to GitHub Enterprise Cloud (SaaS).+gitHubConfiguration_saaSConfiguration :: Lens.Lens' GitHubConfiguration (Prelude.Maybe SaaSConfiguration)+gitHubConfiguration_saaSConfiguration = Lens.lens (\GitHubConfiguration' {saaSConfiguration} -> saaSConfiguration) (\s@GitHubConfiguration' {} a -> s {saaSConfiguration = a} :: GitHubConfiguration)++-- | The type of GitHub service you want to connect to—GitHub Enterprise+-- Cloud (SaaS) or GitHub Enterprise Server (on premises).+gitHubConfiguration_type :: Lens.Lens' GitHubConfiguration (Prelude.Maybe Type)+gitHubConfiguration_type = Lens.lens (\GitHubConfiguration' {type'} -> type') (\s@GitHubConfiguration' {} a -> s {type' = a} :: GitHubConfiguration)++-- | @TRUE@ to use the GitHub change log to determine which documents require+-- updating in the index. Depending on the GitHub change log\'s size, it+-- may take longer for Amazon Kendra to use the change log than to scan all+-- of your documents in GitHub.+gitHubConfiguration_useChangeLog :: Lens.Lens' GitHubConfiguration (Prelude.Maybe Prelude.Bool)+gitHubConfiguration_useChangeLog = Lens.lens (\GitHubConfiguration' {useChangeLog} -> useChangeLog) (\s@GitHubConfiguration' {} a -> s {useChangeLog = a} :: GitHubConfiguration)++-- | Configuration information of an Amazon Virtual Private Cloud to connect+-- to your GitHub. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+gitHubConfiguration_vpcConfiguration :: Lens.Lens' GitHubConfiguration (Prelude.Maybe DataSourceVpcConfiguration)+gitHubConfiguration_vpcConfiguration = Lens.lens (\GitHubConfiguration' {vpcConfiguration} -> vpcConfiguration) (\s@GitHubConfiguration' {} a -> s {vpcConfiguration = a} :: GitHubConfiguration)++-- | The Amazon Resource Name (ARN) of an Secrets Manager secret that+-- contains the key-value pairs required to connect to your GitHub. The+-- secret must contain a JSON structure with the following keys:+--+-- -   personalToken—The access token created in GitHub. For more+--     information on creating a token in GitHub, see+--     <https://docs.aws.amazon.com/kendra/latest/dg/data-source-github.html Using a GitHub data source>.+gitHubConfiguration_secretArn :: Lens.Lens' GitHubConfiguration Prelude.Text+gitHubConfiguration_secretArn = Lens.lens (\GitHubConfiguration' {secretArn} -> secretArn) (\s@GitHubConfiguration' {} a -> s {secretArn = a} :: GitHubConfiguration)++instance Data.FromJSON GitHubConfiguration where+  parseJSON =+    Data.withObject+      "GitHubConfiguration"+      ( \x ->+          GitHubConfiguration'+            Prelude.<$> ( x+                            Data..:? "ExclusionFileNamePatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "ExclusionFileTypePatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "ExclusionFolderNamePatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "GitHubCommitConfigurationFieldMappings")+            Prelude.<*> (x Data..:? "GitHubDocumentCrawlProperties")+            Prelude.<*> ( x+                            Data..:? "GitHubIssueAttachmentConfigurationFieldMappings"+                        )+            Prelude.<*> ( x+                            Data..:? "GitHubIssueCommentConfigurationFieldMappings"+                        )+            Prelude.<*> ( x+                            Data..:? "GitHubIssueDocumentConfigurationFieldMappings"+                        )+            Prelude.<*> ( x+                            Data..:? "GitHubPullRequestCommentConfigurationFieldMappings"+                        )+            Prelude.<*> ( x+                            Data..:? "GitHubPullRequestDocumentAttachmentConfigurationFieldMappings"+                        )+            Prelude.<*> ( x+                            Data..:? "GitHubPullRequestDocumentConfigurationFieldMappings"+                        )+            Prelude.<*> ( x+                            Data..:? "GitHubRepositoryConfigurationFieldMappings"+                        )+            Prelude.<*> ( x+                            Data..:? "InclusionFileNamePatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "InclusionFileTypePatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "InclusionFolderNamePatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "OnPremiseConfiguration")+            Prelude.<*> ( x+                            Data..:? "RepositoryFilter"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "SaaSConfiguration")+            Prelude.<*> (x Data..:? "Type")+            Prelude.<*> (x Data..:? "UseChangeLog")+            Prelude.<*> (x Data..:? "VpcConfiguration")+            Prelude.<*> (x Data..: "SecretArn")+      )++instance Prelude.Hashable GitHubConfiguration where+  hashWithSalt _salt GitHubConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` exclusionFileNamePatterns+      `Prelude.hashWithSalt` exclusionFileTypePatterns+      `Prelude.hashWithSalt` exclusionFolderNamePatterns+      `Prelude.hashWithSalt` gitHubCommitConfigurationFieldMappings+      `Prelude.hashWithSalt` gitHubDocumentCrawlProperties+      `Prelude.hashWithSalt` gitHubIssueAttachmentConfigurationFieldMappings+      `Prelude.hashWithSalt` gitHubIssueCommentConfigurationFieldMappings+      `Prelude.hashWithSalt` gitHubIssueDocumentConfigurationFieldMappings+      `Prelude.hashWithSalt` gitHubPullRequestCommentConfigurationFieldMappings+      `Prelude.hashWithSalt` gitHubPullRequestDocumentAttachmentConfigurationFieldMappings+      `Prelude.hashWithSalt` gitHubPullRequestDocumentConfigurationFieldMappings+      `Prelude.hashWithSalt` gitHubRepositoryConfigurationFieldMappings+      `Prelude.hashWithSalt` inclusionFileNamePatterns+      `Prelude.hashWithSalt` inclusionFileTypePatterns+      `Prelude.hashWithSalt` inclusionFolderNamePatterns+      `Prelude.hashWithSalt` onPremiseConfiguration+      `Prelude.hashWithSalt` repositoryFilter+      `Prelude.hashWithSalt` saaSConfiguration+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` useChangeLog+      `Prelude.hashWithSalt` vpcConfiguration+      `Prelude.hashWithSalt` secretArn++instance Prelude.NFData GitHubConfiguration where+  rnf GitHubConfiguration' {..} =+    Prelude.rnf exclusionFileNamePatterns+      `Prelude.seq` Prelude.rnf exclusionFileTypePatterns+      `Prelude.seq` Prelude.rnf exclusionFolderNamePatterns+      `Prelude.seq` Prelude.rnf gitHubCommitConfigurationFieldMappings+      `Prelude.seq` Prelude.rnf gitHubDocumentCrawlProperties+      `Prelude.seq` Prelude.rnf+        gitHubIssueAttachmentConfigurationFieldMappings+      `Prelude.seq` Prelude.rnf+        gitHubIssueCommentConfigurationFieldMappings+      `Prelude.seq` Prelude.rnf+        gitHubIssueDocumentConfigurationFieldMappings+      `Prelude.seq` Prelude.rnf+        gitHubPullRequestCommentConfigurationFieldMappings+      `Prelude.seq` Prelude.rnf+        gitHubPullRequestDocumentAttachmentConfigurationFieldMappings+      `Prelude.seq` Prelude.rnf+        gitHubPullRequestDocumentConfigurationFieldMappings+      `Prelude.seq` Prelude.rnf+        gitHubRepositoryConfigurationFieldMappings+      `Prelude.seq` Prelude.rnf inclusionFileNamePatterns+      `Prelude.seq` Prelude.rnf inclusionFileTypePatterns+      `Prelude.seq` Prelude.rnf inclusionFolderNamePatterns+      `Prelude.seq` Prelude.rnf onPremiseConfiguration+      `Prelude.seq` Prelude.rnf repositoryFilter+      `Prelude.seq` Prelude.rnf saaSConfiguration+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf useChangeLog+      `Prelude.seq` Prelude.rnf vpcConfiguration+      `Prelude.seq` Prelude.rnf secretArn++instance Data.ToJSON GitHubConfiguration where+  toJSON GitHubConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ExclusionFileNamePatterns" Data..=)+              Prelude.<$> exclusionFileNamePatterns,+            ("ExclusionFileTypePatterns" Data..=)+              Prelude.<$> exclusionFileTypePatterns,+            ("ExclusionFolderNamePatterns" Data..=)+              Prelude.<$> exclusionFolderNamePatterns,+            ("GitHubCommitConfigurationFieldMappings" Data..=)+              Prelude.<$> gitHubCommitConfigurationFieldMappings,+            ("GitHubDocumentCrawlProperties" Data..=)+              Prelude.<$> gitHubDocumentCrawlProperties,+            ( "GitHubIssueAttachmentConfigurationFieldMappings"+                Data..=+            )+              Prelude.<$> gitHubIssueAttachmentConfigurationFieldMappings,+            ( "GitHubIssueCommentConfigurationFieldMappings"+                Data..=+            )+              Prelude.<$> gitHubIssueCommentConfigurationFieldMappings,+            ( "GitHubIssueDocumentConfigurationFieldMappings"+                Data..=+            )+              Prelude.<$> gitHubIssueDocumentConfigurationFieldMappings,+            ( "GitHubPullRequestCommentConfigurationFieldMappings"+                Data..=+            )+              Prelude.<$> gitHubPullRequestCommentConfigurationFieldMappings,+            ( "GitHubPullRequestDocumentAttachmentConfigurationFieldMappings"+                Data..=+            )+              Prelude.<$> gitHubPullRequestDocumentAttachmentConfigurationFieldMappings,+            ( "GitHubPullRequestDocumentConfigurationFieldMappings"+                Data..=+            )+              Prelude.<$> gitHubPullRequestDocumentConfigurationFieldMappings,+            ( "GitHubRepositoryConfigurationFieldMappings"+                Data..=+            )+              Prelude.<$> gitHubRepositoryConfigurationFieldMappings,+            ("InclusionFileNamePatterns" Data..=)+              Prelude.<$> inclusionFileNamePatterns,+            ("InclusionFileTypePatterns" Data..=)+              Prelude.<$> inclusionFileTypePatterns,+            ("InclusionFolderNamePatterns" Data..=)+              Prelude.<$> inclusionFolderNamePatterns,+            ("OnPremiseConfiguration" Data..=)+              Prelude.<$> onPremiseConfiguration,+            ("RepositoryFilter" Data..=)+              Prelude.<$> repositoryFilter,+            ("SaaSConfiguration" Data..=)+              Prelude.<$> saaSConfiguration,+            ("Type" Data..=) Prelude.<$> type',+            ("UseChangeLog" Data..=) Prelude.<$> useChangeLog,+            ("VpcConfiguration" Data..=)+              Prelude.<$> vpcConfiguration,+            Prelude.Just ("SecretArn" Data..= secretArn)+          ]+      )
+ gen/Amazonka/Kendra/Types/GitHubDocumentCrawlProperties.hs view
@@ -0,0 +1,173 @@+{-# 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.Kendra.Types.GitHubDocumentCrawlProperties+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.GitHubDocumentCrawlProperties 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 configuration information to include certain types of+-- GitHub content. You can configure to index repository files only, or+-- also include issues and pull requests, comments, and comment+-- attachments.+--+-- /See:/ 'newGitHubDocumentCrawlProperties' smart constructor.+data GitHubDocumentCrawlProperties = GitHubDocumentCrawlProperties'+  { -- | @TRUE@ to index all issues within a repository.+    crawlIssue :: Prelude.Maybe Prelude.Bool,+    -- | @TRUE@ to index all comments on issues.+    crawlIssueComment :: Prelude.Maybe Prelude.Bool,+    -- | @TRUE@ to include all comment attachments for issues.+    crawlIssueCommentAttachment :: Prelude.Maybe Prelude.Bool,+    -- | @TRUE@ to index all pull requests within a repository.+    crawlPullRequest :: Prelude.Maybe Prelude.Bool,+    -- | @TRUE@ to index all comments on pull requests.+    crawlPullRequestComment :: Prelude.Maybe Prelude.Bool,+    -- | @TRUE@ to include all comment attachments for pull requests.+    crawlPullRequestCommentAttachment :: Prelude.Maybe Prelude.Bool,+    -- | @TRUE@ to index all files with a repository.+    crawlRepositoryDocuments :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GitHubDocumentCrawlProperties' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'crawlIssue', 'gitHubDocumentCrawlProperties_crawlIssue' - @TRUE@ to index all issues within a repository.+--+-- 'crawlIssueComment', 'gitHubDocumentCrawlProperties_crawlIssueComment' - @TRUE@ to index all comments on issues.+--+-- 'crawlIssueCommentAttachment', 'gitHubDocumentCrawlProperties_crawlIssueCommentAttachment' - @TRUE@ to include all comment attachments for issues.+--+-- 'crawlPullRequest', 'gitHubDocumentCrawlProperties_crawlPullRequest' - @TRUE@ to index all pull requests within a repository.+--+-- 'crawlPullRequestComment', 'gitHubDocumentCrawlProperties_crawlPullRequestComment' - @TRUE@ to index all comments on pull requests.+--+-- 'crawlPullRequestCommentAttachment', 'gitHubDocumentCrawlProperties_crawlPullRequestCommentAttachment' - @TRUE@ to include all comment attachments for pull requests.+--+-- 'crawlRepositoryDocuments', 'gitHubDocumentCrawlProperties_crawlRepositoryDocuments' - @TRUE@ to index all files with a repository.+newGitHubDocumentCrawlProperties ::+  GitHubDocumentCrawlProperties+newGitHubDocumentCrawlProperties =+  GitHubDocumentCrawlProperties'+    { crawlIssue =+        Prelude.Nothing,+      crawlIssueComment = Prelude.Nothing,+      crawlIssueCommentAttachment =+        Prelude.Nothing,+      crawlPullRequest = Prelude.Nothing,+      crawlPullRequestComment = Prelude.Nothing,+      crawlPullRequestCommentAttachment =+        Prelude.Nothing,+      crawlRepositoryDocuments = Prelude.Nothing+    }++-- | @TRUE@ to index all issues within a repository.+gitHubDocumentCrawlProperties_crawlIssue :: Lens.Lens' GitHubDocumentCrawlProperties (Prelude.Maybe Prelude.Bool)+gitHubDocumentCrawlProperties_crawlIssue = Lens.lens (\GitHubDocumentCrawlProperties' {crawlIssue} -> crawlIssue) (\s@GitHubDocumentCrawlProperties' {} a -> s {crawlIssue = a} :: GitHubDocumentCrawlProperties)++-- | @TRUE@ to index all comments on issues.+gitHubDocumentCrawlProperties_crawlIssueComment :: Lens.Lens' GitHubDocumentCrawlProperties (Prelude.Maybe Prelude.Bool)+gitHubDocumentCrawlProperties_crawlIssueComment = Lens.lens (\GitHubDocumentCrawlProperties' {crawlIssueComment} -> crawlIssueComment) (\s@GitHubDocumentCrawlProperties' {} a -> s {crawlIssueComment = a} :: GitHubDocumentCrawlProperties)++-- | @TRUE@ to include all comment attachments for issues.+gitHubDocumentCrawlProperties_crawlIssueCommentAttachment :: Lens.Lens' GitHubDocumentCrawlProperties (Prelude.Maybe Prelude.Bool)+gitHubDocumentCrawlProperties_crawlIssueCommentAttachment = Lens.lens (\GitHubDocumentCrawlProperties' {crawlIssueCommentAttachment} -> crawlIssueCommentAttachment) (\s@GitHubDocumentCrawlProperties' {} a -> s {crawlIssueCommentAttachment = a} :: GitHubDocumentCrawlProperties)++-- | @TRUE@ to index all pull requests within a repository.+gitHubDocumentCrawlProperties_crawlPullRequest :: Lens.Lens' GitHubDocumentCrawlProperties (Prelude.Maybe Prelude.Bool)+gitHubDocumentCrawlProperties_crawlPullRequest = Lens.lens (\GitHubDocumentCrawlProperties' {crawlPullRequest} -> crawlPullRequest) (\s@GitHubDocumentCrawlProperties' {} a -> s {crawlPullRequest = a} :: GitHubDocumentCrawlProperties)++-- | @TRUE@ to index all comments on pull requests.+gitHubDocumentCrawlProperties_crawlPullRequestComment :: Lens.Lens' GitHubDocumentCrawlProperties (Prelude.Maybe Prelude.Bool)+gitHubDocumentCrawlProperties_crawlPullRequestComment = Lens.lens (\GitHubDocumentCrawlProperties' {crawlPullRequestComment} -> crawlPullRequestComment) (\s@GitHubDocumentCrawlProperties' {} a -> s {crawlPullRequestComment = a} :: GitHubDocumentCrawlProperties)++-- | @TRUE@ to include all comment attachments for pull requests.+gitHubDocumentCrawlProperties_crawlPullRequestCommentAttachment :: Lens.Lens' GitHubDocumentCrawlProperties (Prelude.Maybe Prelude.Bool)+gitHubDocumentCrawlProperties_crawlPullRequestCommentAttachment = Lens.lens (\GitHubDocumentCrawlProperties' {crawlPullRequestCommentAttachment} -> crawlPullRequestCommentAttachment) (\s@GitHubDocumentCrawlProperties' {} a -> s {crawlPullRequestCommentAttachment = a} :: GitHubDocumentCrawlProperties)++-- | @TRUE@ to index all files with a repository.+gitHubDocumentCrawlProperties_crawlRepositoryDocuments :: Lens.Lens' GitHubDocumentCrawlProperties (Prelude.Maybe Prelude.Bool)+gitHubDocumentCrawlProperties_crawlRepositoryDocuments = Lens.lens (\GitHubDocumentCrawlProperties' {crawlRepositoryDocuments} -> crawlRepositoryDocuments) (\s@GitHubDocumentCrawlProperties' {} a -> s {crawlRepositoryDocuments = a} :: GitHubDocumentCrawlProperties)++instance Data.FromJSON GitHubDocumentCrawlProperties where+  parseJSON =+    Data.withObject+      "GitHubDocumentCrawlProperties"+      ( \x ->+          GitHubDocumentCrawlProperties'+            Prelude.<$> (x Data..:? "CrawlIssue")+            Prelude.<*> (x Data..:? "CrawlIssueComment")+            Prelude.<*> (x Data..:? "CrawlIssueCommentAttachment")+            Prelude.<*> (x Data..:? "CrawlPullRequest")+            Prelude.<*> (x Data..:? "CrawlPullRequestComment")+            Prelude.<*> (x Data..:? "CrawlPullRequestCommentAttachment")+            Prelude.<*> (x Data..:? "CrawlRepositoryDocuments")+      )++instance+  Prelude.Hashable+    GitHubDocumentCrawlProperties+  where+  hashWithSalt _salt GitHubDocumentCrawlProperties' {..} =+    _salt+      `Prelude.hashWithSalt` crawlIssue+      `Prelude.hashWithSalt` crawlIssueComment+      `Prelude.hashWithSalt` crawlIssueCommentAttachment+      `Prelude.hashWithSalt` crawlPullRequest+      `Prelude.hashWithSalt` crawlPullRequestComment+      `Prelude.hashWithSalt` crawlPullRequestCommentAttachment+      `Prelude.hashWithSalt` crawlRepositoryDocuments++instance Prelude.NFData GitHubDocumentCrawlProperties where+  rnf GitHubDocumentCrawlProperties' {..} =+    Prelude.rnf crawlIssue+      `Prelude.seq` Prelude.rnf crawlIssueComment+      `Prelude.seq` Prelude.rnf crawlIssueCommentAttachment+      `Prelude.seq` Prelude.rnf crawlPullRequest+      `Prelude.seq` Prelude.rnf crawlPullRequestComment+      `Prelude.seq` Prelude.rnf crawlPullRequestCommentAttachment+      `Prelude.seq` Prelude.rnf crawlRepositoryDocuments++instance Data.ToJSON GitHubDocumentCrawlProperties where+  toJSON GitHubDocumentCrawlProperties' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CrawlIssue" Data..=) Prelude.<$> crawlIssue,+            ("CrawlIssueComment" Data..=)+              Prelude.<$> crawlIssueComment,+            ("CrawlIssueCommentAttachment" Data..=)+              Prelude.<$> crawlIssueCommentAttachment,+            ("CrawlPullRequest" Data..=)+              Prelude.<$> crawlPullRequest,+            ("CrawlPullRequestComment" Data..=)+              Prelude.<$> crawlPullRequestComment,+            ("CrawlPullRequestCommentAttachment" Data..=)+              Prelude.<$> crawlPullRequestCommentAttachment,+            ("CrawlRepositoryDocuments" Data..=)+              Prelude.<$> crawlRepositoryDocuments+          ]+      )
+ gen/Amazonka/Kendra/Types/GoogleDriveConfiguration.hs view
@@ -0,0 +1,258 @@+{-# 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.Kendra.Types.GoogleDriveConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.GoogleDriveConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to Google Drive as+-- your data source.+--+-- /See:/ 'newGoogleDriveConfiguration' smart constructor.+data GoogleDriveConfiguration = GoogleDriveConfiguration'+  { -- | A list of MIME types to exclude from the index. All documents matching+    -- the specified MIME type are excluded.+    --+    -- For a list of MIME types, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html Using a Google Workspace Drive data source>.+    excludeMimeTypes :: Prelude.Maybe [Prelude.Text],+    -- | A list of identifiers or shared drives to exclude from the index. All+    -- files and folders stored on the shared drive are excluded.+    excludeSharedDrives :: Prelude.Maybe [Prelude.Text],+    -- | A list of email addresses of the users. Documents owned by these users+    -- are excluded from the index. Documents shared with excluded users are+    -- indexed unless they are excluded in another way.+    excludeUserAccounts :: Prelude.Maybe [Prelude.Text],+    -- | A list of regular expression patterns to exclude certain items in your+    -- Google Drive, including shared drives and users\' My Drives. Items that+    -- match the patterns are excluded from the index. Items that don\'t match+    -- the patterns are included in the index. If an item matches both an+    -- inclusion and exclusion pattern, the exclusion pattern takes precedence+    -- and the item isn\'t included in the index.+    exclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | Maps Google Drive data source attributes or field names to Amazon Kendra+    -- index field names. To create custom fields, use the @UpdateIndex@ API+    -- before you map to Google Drive fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Google Drive data source field names must exist in your Google Drive+    -- custom metadata.+    fieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of regular expression patterns to include certain items in your+    -- Google Drive, including shared drives and users\' My Drives. Items that+    -- match the patterns are included in the index. Items that don\'t match+    -- the patterns are excluded from the index. If an item matches both an+    -- inclusion and exclusion pattern, the exclusion pattern takes precedence+    -- and the item isn\'t included in the index.+    inclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | The Amazon Resource Name (ARN) of a Secrets Managersecret that contains+    -- the credentials required to connect to Google Drive. For more+    -- information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html Using a Google Workspace Drive data source>.+    secretArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GoogleDriveConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'excludeMimeTypes', 'googleDriveConfiguration_excludeMimeTypes' - A list of MIME types to exclude from the index. All documents matching+-- the specified MIME type are excluded.+--+-- For a list of MIME types, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html Using a Google Workspace Drive data source>.+--+-- 'excludeSharedDrives', 'googleDriveConfiguration_excludeSharedDrives' - A list of identifiers or shared drives to exclude from the index. All+-- files and folders stored on the shared drive are excluded.+--+-- 'excludeUserAccounts', 'googleDriveConfiguration_excludeUserAccounts' - A list of email addresses of the users. Documents owned by these users+-- are excluded from the index. Documents shared with excluded users are+-- indexed unless they are excluded in another way.+--+-- 'exclusionPatterns', 'googleDriveConfiguration_exclusionPatterns' - A list of regular expression patterns to exclude certain items in your+-- Google Drive, including shared drives and users\' My Drives. Items that+-- match the patterns are excluded from the index. Items that don\'t match+-- the patterns are included in the index. If an item matches both an+-- inclusion and exclusion pattern, the exclusion pattern takes precedence+-- and the item isn\'t included in the index.+--+-- 'fieldMappings', 'googleDriveConfiguration_fieldMappings' - Maps Google Drive data source attributes or field names to Amazon Kendra+-- index field names. To create custom fields, use the @UpdateIndex@ API+-- before you map to Google Drive fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Google Drive data source field names must exist in your Google Drive+-- custom metadata.+--+-- 'inclusionPatterns', 'googleDriveConfiguration_inclusionPatterns' - A list of regular expression patterns to include certain items in your+-- Google Drive, including shared drives and users\' My Drives. Items that+-- match the patterns are included in the index. Items that don\'t match+-- the patterns are excluded from the index. If an item matches both an+-- inclusion and exclusion pattern, the exclusion pattern takes precedence+-- and the item isn\'t included in the index.+--+-- 'secretArn', 'googleDriveConfiguration_secretArn' - The Amazon Resource Name (ARN) of a Secrets Managersecret that contains+-- the credentials required to connect to Google Drive. For more+-- information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html Using a Google Workspace Drive data source>.+newGoogleDriveConfiguration ::+  -- | 'secretArn'+  Prelude.Text ->+  GoogleDriveConfiguration+newGoogleDriveConfiguration pSecretArn_ =+  GoogleDriveConfiguration'+    { excludeMimeTypes =+        Prelude.Nothing,+      excludeSharedDrives = Prelude.Nothing,+      excludeUserAccounts = Prelude.Nothing,+      exclusionPatterns = Prelude.Nothing,+      fieldMappings = Prelude.Nothing,+      inclusionPatterns = Prelude.Nothing,+      secretArn = pSecretArn_+    }++-- | A list of MIME types to exclude from the index. All documents matching+-- the specified MIME type are excluded.+--+-- For a list of MIME types, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html Using a Google Workspace Drive data source>.+googleDriveConfiguration_excludeMimeTypes :: Lens.Lens' GoogleDriveConfiguration (Prelude.Maybe [Prelude.Text])+googleDriveConfiguration_excludeMimeTypes = Lens.lens (\GoogleDriveConfiguration' {excludeMimeTypes} -> excludeMimeTypes) (\s@GoogleDriveConfiguration' {} a -> s {excludeMimeTypes = a} :: GoogleDriveConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of identifiers or shared drives to exclude from the index. All+-- files and folders stored on the shared drive are excluded.+googleDriveConfiguration_excludeSharedDrives :: Lens.Lens' GoogleDriveConfiguration (Prelude.Maybe [Prelude.Text])+googleDriveConfiguration_excludeSharedDrives = Lens.lens (\GoogleDriveConfiguration' {excludeSharedDrives} -> excludeSharedDrives) (\s@GoogleDriveConfiguration' {} a -> s {excludeSharedDrives = a} :: GoogleDriveConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of email addresses of the users. Documents owned by these users+-- are excluded from the index. Documents shared with excluded users are+-- indexed unless they are excluded in another way.+googleDriveConfiguration_excludeUserAccounts :: Lens.Lens' GoogleDriveConfiguration (Prelude.Maybe [Prelude.Text])+googleDriveConfiguration_excludeUserAccounts = Lens.lens (\GoogleDriveConfiguration' {excludeUserAccounts} -> excludeUserAccounts) (\s@GoogleDriveConfiguration' {} a -> s {excludeUserAccounts = a} :: GoogleDriveConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to exclude certain items in your+-- Google Drive, including shared drives and users\' My Drives. Items that+-- match the patterns are excluded from the index. Items that don\'t match+-- the patterns are included in the index. If an item matches both an+-- inclusion and exclusion pattern, the exclusion pattern takes precedence+-- and the item isn\'t included in the index.+googleDriveConfiguration_exclusionPatterns :: Lens.Lens' GoogleDriveConfiguration (Prelude.Maybe [Prelude.Text])+googleDriveConfiguration_exclusionPatterns = Lens.lens (\GoogleDriveConfiguration' {exclusionPatterns} -> exclusionPatterns) (\s@GoogleDriveConfiguration' {} a -> s {exclusionPatterns = a} :: GoogleDriveConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Maps Google Drive data source attributes or field names to Amazon Kendra+-- index field names. To create custom fields, use the @UpdateIndex@ API+-- before you map to Google Drive fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Google Drive data source field names must exist in your Google Drive+-- custom metadata.+googleDriveConfiguration_fieldMappings :: Lens.Lens' GoogleDriveConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+googleDriveConfiguration_fieldMappings = Lens.lens (\GoogleDriveConfiguration' {fieldMappings} -> fieldMappings) (\s@GoogleDriveConfiguration' {} a -> s {fieldMappings = a} :: GoogleDriveConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to include certain items in your+-- Google Drive, including shared drives and users\' My Drives. Items that+-- match the patterns are included in the index. Items that don\'t match+-- the patterns are excluded from the index. If an item matches both an+-- inclusion and exclusion pattern, the exclusion pattern takes precedence+-- and the item isn\'t included in the index.+googleDriveConfiguration_inclusionPatterns :: Lens.Lens' GoogleDriveConfiguration (Prelude.Maybe [Prelude.Text])+googleDriveConfiguration_inclusionPatterns = Lens.lens (\GoogleDriveConfiguration' {inclusionPatterns} -> inclusionPatterns) (\s@GoogleDriveConfiguration' {} a -> s {inclusionPatterns = a} :: GoogleDriveConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The Amazon Resource Name (ARN) of a Secrets Managersecret that contains+-- the credentials required to connect to Google Drive. For more+-- information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-google-drive.html Using a Google Workspace Drive data source>.+googleDriveConfiguration_secretArn :: Lens.Lens' GoogleDriveConfiguration Prelude.Text+googleDriveConfiguration_secretArn = Lens.lens (\GoogleDriveConfiguration' {secretArn} -> secretArn) (\s@GoogleDriveConfiguration' {} a -> s {secretArn = a} :: GoogleDriveConfiguration)++instance Data.FromJSON GoogleDriveConfiguration where+  parseJSON =+    Data.withObject+      "GoogleDriveConfiguration"+      ( \x ->+          GoogleDriveConfiguration'+            Prelude.<$> ( x+                            Data..:? "ExcludeMimeTypes"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "ExcludeSharedDrives"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "ExcludeUserAccounts"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "ExclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "FieldMappings")+            Prelude.<*> ( x+                            Data..:? "InclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "SecretArn")+      )++instance Prelude.Hashable GoogleDriveConfiguration where+  hashWithSalt _salt GoogleDriveConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` excludeMimeTypes+      `Prelude.hashWithSalt` excludeSharedDrives+      `Prelude.hashWithSalt` excludeUserAccounts+      `Prelude.hashWithSalt` exclusionPatterns+      `Prelude.hashWithSalt` fieldMappings+      `Prelude.hashWithSalt` inclusionPatterns+      `Prelude.hashWithSalt` secretArn++instance Prelude.NFData GoogleDriveConfiguration where+  rnf GoogleDriveConfiguration' {..} =+    Prelude.rnf excludeMimeTypes+      `Prelude.seq` Prelude.rnf excludeSharedDrives+      `Prelude.seq` Prelude.rnf excludeUserAccounts+      `Prelude.seq` Prelude.rnf exclusionPatterns+      `Prelude.seq` Prelude.rnf fieldMappings+      `Prelude.seq` Prelude.rnf inclusionPatterns+      `Prelude.seq` Prelude.rnf secretArn++instance Data.ToJSON GoogleDriveConfiguration where+  toJSON GoogleDriveConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ExcludeMimeTypes" Data..=)+              Prelude.<$> excludeMimeTypes,+            ("ExcludeSharedDrives" Data..=)+              Prelude.<$> excludeSharedDrives,+            ("ExcludeUserAccounts" Data..=)+              Prelude.<$> excludeUserAccounts,+            ("ExclusionPatterns" Data..=)+              Prelude.<$> exclusionPatterns,+            ("FieldMappings" Data..=) Prelude.<$> fieldMappings,+            ("InclusionPatterns" Data..=)+              Prelude.<$> inclusionPatterns,+            Prelude.Just ("SecretArn" Data..= secretArn)+          ]+      )
+ gen/Amazonka/Kendra/Types/GroupMembers.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.Kendra.Types.GroupMembers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.GroupMembers where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.MemberGroup+import Amazonka.Kendra.Types.MemberUser+import Amazonka.Kendra.Types.S3Path+import qualified Amazonka.Prelude as Prelude++-- | A list of users or sub groups that belong to a group. This is useful for+-- user context filtering, where search results are filtered based on the+-- user or their group access to documents.+--+-- /See:/ 'newGroupMembers' smart constructor.+data GroupMembers = GroupMembers'+  { -- | A list of sub groups that belong to a group. For example, the sub groups+    -- \"Research\", \"Engineering\", and \"Sales and Marketing\" all belong to+    -- the group \"Company\".+    memberGroups :: Prelude.Maybe (Prelude.NonEmpty MemberGroup),+    -- | A list of users that belong to a group. For example, a list of interns+    -- all belong to the \"Interns\" group.+    memberUsers :: Prelude.Maybe (Prelude.NonEmpty MemberUser),+    -- | If you have more than 1000 users and\/or sub groups for a single group,+    -- you need to provide the path to the S3 file that lists your users and+    -- sub groups for a group. Your sub groups can contain more than 1000+    -- users, but the list of sub groups that belong to a group (and\/or users)+    -- must be no more than 1000.+    --+    -- You can download this+    -- <https://docs.aws.amazon.com/kendra/latest/dg/samples/group_members.zip example S3 file>+    -- that uses the correct format for listing group members. Note,+    -- @dataSourceId@ is optional. The value of @type@ for a group is always+    -- @GROUP@ and for a user it is always @USER@.+    s3PathforGroupMembers :: Prelude.Maybe S3Path+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GroupMembers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'memberGroups', 'groupMembers_memberGroups' - A list of sub groups that belong to a group. For example, the sub groups+-- \"Research\", \"Engineering\", and \"Sales and Marketing\" all belong to+-- the group \"Company\".+--+-- 'memberUsers', 'groupMembers_memberUsers' - A list of users that belong to a group. For example, a list of interns+-- all belong to the \"Interns\" group.+--+-- 's3PathforGroupMembers', 'groupMembers_s3PathforGroupMembers' - If you have more than 1000 users and\/or sub groups for a single group,+-- you need to provide the path to the S3 file that lists your users and+-- sub groups for a group. Your sub groups can contain more than 1000+-- users, but the list of sub groups that belong to a group (and\/or users)+-- must be no more than 1000.+--+-- You can download this+-- <https://docs.aws.amazon.com/kendra/latest/dg/samples/group_members.zip example S3 file>+-- that uses the correct format for listing group members. Note,+-- @dataSourceId@ is optional. The value of @type@ for a group is always+-- @GROUP@ and for a user it is always @USER@.+newGroupMembers ::+  GroupMembers+newGroupMembers =+  GroupMembers'+    { memberGroups = Prelude.Nothing,+      memberUsers = Prelude.Nothing,+      s3PathforGroupMembers = Prelude.Nothing+    }++-- | A list of sub groups that belong to a group. For example, the sub groups+-- \"Research\", \"Engineering\", and \"Sales and Marketing\" all belong to+-- the group \"Company\".+groupMembers_memberGroups :: Lens.Lens' GroupMembers (Prelude.Maybe (Prelude.NonEmpty MemberGroup))+groupMembers_memberGroups = Lens.lens (\GroupMembers' {memberGroups} -> memberGroups) (\s@GroupMembers' {} a -> s {memberGroups = a} :: GroupMembers) Prelude.. Lens.mapping Lens.coerced++-- | A list of users that belong to a group. For example, a list of interns+-- all belong to the \"Interns\" group.+groupMembers_memberUsers :: Lens.Lens' GroupMembers (Prelude.Maybe (Prelude.NonEmpty MemberUser))+groupMembers_memberUsers = Lens.lens (\GroupMembers' {memberUsers} -> memberUsers) (\s@GroupMembers' {} a -> s {memberUsers = a} :: GroupMembers) Prelude.. Lens.mapping Lens.coerced++-- | If you have more than 1000 users and\/or sub groups for a single group,+-- you need to provide the path to the S3 file that lists your users and+-- sub groups for a group. Your sub groups can contain more than 1000+-- users, but the list of sub groups that belong to a group (and\/or users)+-- must be no more than 1000.+--+-- You can download this+-- <https://docs.aws.amazon.com/kendra/latest/dg/samples/group_members.zip example S3 file>+-- that uses the correct format for listing group members. Note,+-- @dataSourceId@ is optional. The value of @type@ for a group is always+-- @GROUP@ and for a user it is always @USER@.+groupMembers_s3PathforGroupMembers :: Lens.Lens' GroupMembers (Prelude.Maybe S3Path)+groupMembers_s3PathforGroupMembers = Lens.lens (\GroupMembers' {s3PathforGroupMembers} -> s3PathforGroupMembers) (\s@GroupMembers' {} a -> s {s3PathforGroupMembers = a} :: GroupMembers)++instance Prelude.Hashable GroupMembers where+  hashWithSalt _salt GroupMembers' {..} =+    _salt+      `Prelude.hashWithSalt` memberGroups+      `Prelude.hashWithSalt` memberUsers+      `Prelude.hashWithSalt` s3PathforGroupMembers++instance Prelude.NFData GroupMembers where+  rnf GroupMembers' {..} =+    Prelude.rnf memberGroups+      `Prelude.seq` Prelude.rnf memberUsers+      `Prelude.seq` Prelude.rnf s3PathforGroupMembers++instance Data.ToJSON GroupMembers where+  toJSON GroupMembers' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MemberGroups" Data..=) Prelude.<$> memberGroups,+            ("MemberUsers" Data..=) Prelude.<$> memberUsers,+            ("S3PathforGroupMembers" Data..=)+              Prelude.<$> s3PathforGroupMembers+          ]+      )
+ gen/Amazonka/Kendra/Types/GroupOrderingIdSummary.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.Kendra.Types.GroupOrderingIdSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.GroupOrderingIdSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.PrincipalMappingStatus+import qualified Amazonka.Prelude as Prelude++-- | Summary information on the processing of @PUT@ and @DELETE@ actions for+-- mapping users to their groups.+--+-- /See:/ 'newGroupOrderingIdSummary' smart constructor.+data GroupOrderingIdSummary = GroupOrderingIdSummary'+  { -- | The reason an action could not be processed. An action can be a @PUT@ or+    -- @DELETE@ action for mapping users to their groups.+    failureReason :: Prelude.Maybe Prelude.Text,+    -- | The last date-time an action was updated. An action can be a @PUT@ or+    -- @DELETE@ action for mapping users to their groups.+    lastUpdatedAt :: Prelude.Maybe Data.POSIX,+    -- | The order in which actions should complete processing. An action can be+    -- a @PUT@ or @DELETE@ action for mapping users to their groups.+    orderingId :: Prelude.Maybe Prelude.Natural,+    -- | The date-time an action was received by Amazon Kendra. An action can be+    -- a @PUT@ or @DELETE@ action for mapping users to their groups.+    receivedAt :: Prelude.Maybe Data.POSIX,+    -- | The current processing status of actions for mapping users to their+    -- groups. The status can be either @PROCESSING@, @SUCCEEDED@, @DELETING@,+    -- @DELETED@, or @FAILED@.+    status :: Prelude.Maybe PrincipalMappingStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GroupOrderingIdSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'failureReason', 'groupOrderingIdSummary_failureReason' - The reason an action could not be processed. An action can be a @PUT@ or+-- @DELETE@ action for mapping users to their groups.+--+-- 'lastUpdatedAt', 'groupOrderingIdSummary_lastUpdatedAt' - The last date-time an action was updated. An action can be a @PUT@ or+-- @DELETE@ action for mapping users to their groups.+--+-- 'orderingId', 'groupOrderingIdSummary_orderingId' - The order in which actions should complete processing. An action can be+-- a @PUT@ or @DELETE@ action for mapping users to their groups.+--+-- 'receivedAt', 'groupOrderingIdSummary_receivedAt' - The date-time an action was received by Amazon Kendra. An action can be+-- a @PUT@ or @DELETE@ action for mapping users to their groups.+--+-- 'status', 'groupOrderingIdSummary_status' - The current processing status of actions for mapping users to their+-- groups. The status can be either @PROCESSING@, @SUCCEEDED@, @DELETING@,+-- @DELETED@, or @FAILED@.+newGroupOrderingIdSummary ::+  GroupOrderingIdSummary+newGroupOrderingIdSummary =+  GroupOrderingIdSummary'+    { failureReason =+        Prelude.Nothing,+      lastUpdatedAt = Prelude.Nothing,+      orderingId = Prelude.Nothing,+      receivedAt = Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The reason an action could not be processed. An action can be a @PUT@ or+-- @DELETE@ action for mapping users to their groups.+groupOrderingIdSummary_failureReason :: Lens.Lens' GroupOrderingIdSummary (Prelude.Maybe Prelude.Text)+groupOrderingIdSummary_failureReason = Lens.lens (\GroupOrderingIdSummary' {failureReason} -> failureReason) (\s@GroupOrderingIdSummary' {} a -> s {failureReason = a} :: GroupOrderingIdSummary)++-- | The last date-time an action was updated. An action can be a @PUT@ or+-- @DELETE@ action for mapping users to their groups.+groupOrderingIdSummary_lastUpdatedAt :: Lens.Lens' GroupOrderingIdSummary (Prelude.Maybe Prelude.UTCTime)+groupOrderingIdSummary_lastUpdatedAt = Lens.lens (\GroupOrderingIdSummary' {lastUpdatedAt} -> lastUpdatedAt) (\s@GroupOrderingIdSummary' {} a -> s {lastUpdatedAt = a} :: GroupOrderingIdSummary) Prelude.. Lens.mapping Data._Time++-- | The order in which actions should complete processing. An action can be+-- a @PUT@ or @DELETE@ action for mapping users to their groups.+groupOrderingIdSummary_orderingId :: Lens.Lens' GroupOrderingIdSummary (Prelude.Maybe Prelude.Natural)+groupOrderingIdSummary_orderingId = Lens.lens (\GroupOrderingIdSummary' {orderingId} -> orderingId) (\s@GroupOrderingIdSummary' {} a -> s {orderingId = a} :: GroupOrderingIdSummary)++-- | The date-time an action was received by Amazon Kendra. An action can be+-- a @PUT@ or @DELETE@ action for mapping users to their groups.+groupOrderingIdSummary_receivedAt :: Lens.Lens' GroupOrderingIdSummary (Prelude.Maybe Prelude.UTCTime)+groupOrderingIdSummary_receivedAt = Lens.lens (\GroupOrderingIdSummary' {receivedAt} -> receivedAt) (\s@GroupOrderingIdSummary' {} a -> s {receivedAt = a} :: GroupOrderingIdSummary) Prelude.. Lens.mapping Data._Time++-- | The current processing status of actions for mapping users to their+-- groups. The status can be either @PROCESSING@, @SUCCEEDED@, @DELETING@,+-- @DELETED@, or @FAILED@.+groupOrderingIdSummary_status :: Lens.Lens' GroupOrderingIdSummary (Prelude.Maybe PrincipalMappingStatus)+groupOrderingIdSummary_status = Lens.lens (\GroupOrderingIdSummary' {status} -> status) (\s@GroupOrderingIdSummary' {} a -> s {status = a} :: GroupOrderingIdSummary)++instance Data.FromJSON GroupOrderingIdSummary where+  parseJSON =+    Data.withObject+      "GroupOrderingIdSummary"+      ( \x ->+          GroupOrderingIdSummary'+            Prelude.<$> (x Data..:? "FailureReason")+            Prelude.<*> (x Data..:? "LastUpdatedAt")+            Prelude.<*> (x Data..:? "OrderingId")+            Prelude.<*> (x Data..:? "ReceivedAt")+            Prelude.<*> (x Data..:? "Status")+      )++instance Prelude.Hashable GroupOrderingIdSummary where+  hashWithSalt _salt GroupOrderingIdSummary' {..} =+    _salt+      `Prelude.hashWithSalt` failureReason+      `Prelude.hashWithSalt` lastUpdatedAt+      `Prelude.hashWithSalt` orderingId+      `Prelude.hashWithSalt` receivedAt+      `Prelude.hashWithSalt` status++instance Prelude.NFData GroupOrderingIdSummary where+  rnf GroupOrderingIdSummary' {..} =+    Prelude.rnf failureReason+      `Prelude.seq` Prelude.rnf lastUpdatedAt+      `Prelude.seq` Prelude.rnf orderingId+      `Prelude.seq` Prelude.rnf receivedAt+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Kendra/Types/GroupSummary.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.Kendra.Types.GroupSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.GroupSummary 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++-- | Summary information for groups.+--+-- /See:/ 'newGroupSummary' smart constructor.+data GroupSummary = GroupSummary'+  { -- | The identifier of the group you want group summary information on.+    groupId :: Prelude.Maybe Prelude.Text,+    -- | The timestamp identifier used for the latest @PUT@ or @DELETE@ action.+    orderingId :: Prelude.Maybe Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GroupSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'groupId', 'groupSummary_groupId' - The identifier of the group you want group summary information on.+--+-- 'orderingId', 'groupSummary_orderingId' - The timestamp identifier used for the latest @PUT@ or @DELETE@ action.+newGroupSummary ::+  GroupSummary+newGroupSummary =+  GroupSummary'+    { groupId = Prelude.Nothing,+      orderingId = Prelude.Nothing+    }++-- | The identifier of the group you want group summary information on.+groupSummary_groupId :: Lens.Lens' GroupSummary (Prelude.Maybe Prelude.Text)+groupSummary_groupId = Lens.lens (\GroupSummary' {groupId} -> groupId) (\s@GroupSummary' {} a -> s {groupId = a} :: GroupSummary)++-- | The timestamp identifier used for the latest @PUT@ or @DELETE@ action.+groupSummary_orderingId :: Lens.Lens' GroupSummary (Prelude.Maybe Prelude.Natural)+groupSummary_orderingId = Lens.lens (\GroupSummary' {orderingId} -> orderingId) (\s@GroupSummary' {} a -> s {orderingId = a} :: GroupSummary)++instance Data.FromJSON GroupSummary where+  parseJSON =+    Data.withObject+      "GroupSummary"+      ( \x ->+          GroupSummary'+            Prelude.<$> (x Data..:? "GroupId")+            Prelude.<*> (x Data..:? "OrderingId")+      )++instance Prelude.Hashable GroupSummary where+  hashWithSalt _salt GroupSummary' {..} =+    _salt+      `Prelude.hashWithSalt` groupId+      `Prelude.hashWithSalt` orderingId++instance Prelude.NFData GroupSummary where+  rnf GroupSummary' {..} =+    Prelude.rnf groupId+      `Prelude.seq` Prelude.rnf orderingId
+ gen/Amazonka/Kendra/Types/HierarchicalPrincipal.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.Kendra.Types.HierarchicalPrincipal+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.HierarchicalPrincipal where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.Principal+import qualified Amazonka.Prelude as Prelude++-- | Information to define the hierarchy for which documents users should+-- have access to.+--+-- /See:/ 'newHierarchicalPrincipal' smart constructor.+data HierarchicalPrincipal = HierarchicalPrincipal'+  { -- | A list of+    -- <https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html principal>+    -- lists that define the hierarchy for which documents users should have+    -- access to. Each hierarchical list specifies which user or group has+    -- allow or deny access for each document.+    principalList :: [Principal]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HierarchicalPrincipal' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'principalList', 'hierarchicalPrincipal_principalList' - A list of+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html principal>+-- lists that define the hierarchy for which documents users should have+-- access to. Each hierarchical list specifies which user or group has+-- allow or deny access for each document.+newHierarchicalPrincipal ::+  HierarchicalPrincipal+newHierarchicalPrincipal =+  HierarchicalPrincipal'+    { principalList =+        Prelude.mempty+    }++-- | A list of+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html principal>+-- lists that define the hierarchy for which documents users should have+-- access to. Each hierarchical list specifies which user or group has+-- allow or deny access for each document.+hierarchicalPrincipal_principalList :: Lens.Lens' HierarchicalPrincipal [Principal]+hierarchicalPrincipal_principalList = Lens.lens (\HierarchicalPrincipal' {principalList} -> principalList) (\s@HierarchicalPrincipal' {} a -> s {principalList = a} :: HierarchicalPrincipal) Prelude.. Lens.coerced++instance Data.FromJSON HierarchicalPrincipal where+  parseJSON =+    Data.withObject+      "HierarchicalPrincipal"+      ( \x ->+          HierarchicalPrincipal'+            Prelude.<$> (x Data..:? "PrincipalList" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable HierarchicalPrincipal where+  hashWithSalt _salt HierarchicalPrincipal' {..} =+    _salt `Prelude.hashWithSalt` principalList++instance Prelude.NFData HierarchicalPrincipal where+  rnf HierarchicalPrincipal' {..} =+    Prelude.rnf principalList++instance Data.ToJSON HierarchicalPrincipal where+  toJSON HierarchicalPrincipal' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("PrincipalList" Data..= principalList)+          ]+      )
+ gen/Amazonka/Kendra/Types/Highlight.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.Kendra.Types.Highlight+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.Highlight where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.HighlightType+import qualified Amazonka.Prelude as Prelude++-- | Provides information that you can use to highlight a search result so+-- that your users can quickly identify terms in the response.+--+-- /See:/ 'newHighlight' smart constructor.+data Highlight = Highlight'+  { -- | Indicates whether the response is the best response. True if this is the+    -- best response; otherwise, false.+    topAnswer :: Prelude.Maybe Prelude.Bool,+    -- | The highlight type.+    type' :: Prelude.Maybe HighlightType,+    -- | The zero-based location in the response string where the highlight+    -- starts.+    beginOffset :: Prelude.Int,+    -- | The zero-based location in the response string where the highlight ends.+    endOffset :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Highlight' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'topAnswer', 'highlight_topAnswer' - Indicates whether the response is the best response. True if this is the+-- best response; otherwise, false.+--+-- 'type'', 'highlight_type' - The highlight type.+--+-- 'beginOffset', 'highlight_beginOffset' - The zero-based location in the response string where the highlight+-- starts.+--+-- 'endOffset', 'highlight_endOffset' - The zero-based location in the response string where the highlight ends.+newHighlight ::+  -- | 'beginOffset'+  Prelude.Int ->+  -- | 'endOffset'+  Prelude.Int ->+  Highlight+newHighlight pBeginOffset_ pEndOffset_ =+  Highlight'+    { topAnswer = Prelude.Nothing,+      type' = Prelude.Nothing,+      beginOffset = pBeginOffset_,+      endOffset = pEndOffset_+    }++-- | Indicates whether the response is the best response. True if this is the+-- best response; otherwise, false.+highlight_topAnswer :: Lens.Lens' Highlight (Prelude.Maybe Prelude.Bool)+highlight_topAnswer = Lens.lens (\Highlight' {topAnswer} -> topAnswer) (\s@Highlight' {} a -> s {topAnswer = a} :: Highlight)++-- | The highlight type.+highlight_type :: Lens.Lens' Highlight (Prelude.Maybe HighlightType)+highlight_type = Lens.lens (\Highlight' {type'} -> type') (\s@Highlight' {} a -> s {type' = a} :: Highlight)++-- | The zero-based location in the response string where the highlight+-- starts.+highlight_beginOffset :: Lens.Lens' Highlight Prelude.Int+highlight_beginOffset = Lens.lens (\Highlight' {beginOffset} -> beginOffset) (\s@Highlight' {} a -> s {beginOffset = a} :: Highlight)++-- | The zero-based location in the response string where the highlight ends.+highlight_endOffset :: Lens.Lens' Highlight Prelude.Int+highlight_endOffset = Lens.lens (\Highlight' {endOffset} -> endOffset) (\s@Highlight' {} a -> s {endOffset = a} :: Highlight)++instance Data.FromJSON Highlight where+  parseJSON =+    Data.withObject+      "Highlight"+      ( \x ->+          Highlight'+            Prelude.<$> (x Data..:? "TopAnswer")+            Prelude.<*> (x Data..:? "Type")+            Prelude.<*> (x Data..: "BeginOffset")+            Prelude.<*> (x Data..: "EndOffset")+      )++instance Prelude.Hashable Highlight where+  hashWithSalt _salt Highlight' {..} =+    _salt+      `Prelude.hashWithSalt` topAnswer+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` beginOffset+      `Prelude.hashWithSalt` endOffset++instance Prelude.NFData Highlight where+  rnf Highlight' {..} =+    Prelude.rnf topAnswer+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf beginOffset+      `Prelude.seq` Prelude.rnf endOffset
+ gen/Amazonka/Kendra/Types/HighlightType.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.Kendra.Types.HighlightType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.HighlightType+  ( HighlightType+      ( ..,+        HighlightType_STANDARD,+        HighlightType_THESAURUS_SYNONYM+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype HighlightType = HighlightType'+  { fromHighlightType ::+      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 HighlightType_STANDARD :: HighlightType+pattern HighlightType_STANDARD = HighlightType' "STANDARD"++pattern HighlightType_THESAURUS_SYNONYM :: HighlightType+pattern HighlightType_THESAURUS_SYNONYM = HighlightType' "THESAURUS_SYNONYM"++{-# COMPLETE+  HighlightType_STANDARD,+  HighlightType_THESAURUS_SYNONYM,+  HighlightType'+  #-}
+ gen/Amazonka/Kendra/Types/HookConfiguration.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.Kendra.Types.HookConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.HookConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DocumentAttributeCondition+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for invoking a Lambda function in+-- Lambda to alter document metadata and content when ingesting documents+-- into Amazon Kendra. You can configure your Lambda function using+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_CustomDocumentEnrichmentConfiguration.html PreExtractionHookConfiguration>+-- if you want to apply advanced alterations on the original or raw+-- documents. If you want to apply advanced alterations on the Amazon+-- Kendra structured documents, you must configure your Lambda function+-- using+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_CustomDocumentEnrichmentConfiguration.html PostExtractionHookConfiguration>.+-- You can only invoke one Lambda function. However, this function can+-- invoke other functions it requires.+--+-- For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html Customizing document metadata during the ingestion process>.+--+-- /See:/ 'newHookConfiguration' smart constructor.+data HookConfiguration = HookConfiguration'+  { -- | The condition used for when a Lambda function should be invoked.+    --+    -- For example, you can specify a condition that if there are empty+    -- date-time values, then Amazon Kendra should invoke a function that+    -- inserts the current date-time.+    invocationCondition :: Prelude.Maybe DocumentAttributeCondition,+    -- | The Amazon Resource Name (ARN) of a role with permission to run a Lambda+    -- function during ingestion. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+    lambdaArn :: Prelude.Text,+    -- | Stores the original, raw documents or the structured, parsed documents+    -- before and after altering them. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#cde-data-contracts-lambda Data contracts for Lambda functions>.+    s3Bucket :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'HookConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'invocationCondition', 'hookConfiguration_invocationCondition' - The condition used for when a Lambda function should be invoked.+--+-- For example, you can specify a condition that if there are empty+-- date-time values, then Amazon Kendra should invoke a function that+-- inserts the current date-time.+--+-- 'lambdaArn', 'hookConfiguration_lambdaArn' - The Amazon Resource Name (ARN) of a role with permission to run a Lambda+-- function during ingestion. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+--+-- 's3Bucket', 'hookConfiguration_s3Bucket' - Stores the original, raw documents or the structured, parsed documents+-- before and after altering them. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#cde-data-contracts-lambda Data contracts for Lambda functions>.+newHookConfiguration ::+  -- | 'lambdaArn'+  Prelude.Text ->+  -- | 's3Bucket'+  Prelude.Text ->+  HookConfiguration+newHookConfiguration pLambdaArn_ pS3Bucket_ =+  HookConfiguration'+    { invocationCondition =+        Prelude.Nothing,+      lambdaArn = pLambdaArn_,+      s3Bucket = pS3Bucket_+    }++-- | The condition used for when a Lambda function should be invoked.+--+-- For example, you can specify a condition that if there are empty+-- date-time values, then Amazon Kendra should invoke a function that+-- inserts the current date-time.+hookConfiguration_invocationCondition :: Lens.Lens' HookConfiguration (Prelude.Maybe DocumentAttributeCondition)+hookConfiguration_invocationCondition = Lens.lens (\HookConfiguration' {invocationCondition} -> invocationCondition) (\s@HookConfiguration' {} a -> s {invocationCondition = a} :: HookConfiguration)++-- | The Amazon Resource Name (ARN) of a role with permission to run a Lambda+-- function during ingestion. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+hookConfiguration_lambdaArn :: Lens.Lens' HookConfiguration Prelude.Text+hookConfiguration_lambdaArn = Lens.lens (\HookConfiguration' {lambdaArn} -> lambdaArn) (\s@HookConfiguration' {} a -> s {lambdaArn = a} :: HookConfiguration)++-- | Stores the original, raw documents or the structured, parsed documents+-- before and after altering them. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html#cde-data-contracts-lambda Data contracts for Lambda functions>.+hookConfiguration_s3Bucket :: Lens.Lens' HookConfiguration Prelude.Text+hookConfiguration_s3Bucket = Lens.lens (\HookConfiguration' {s3Bucket} -> s3Bucket) (\s@HookConfiguration' {} a -> s {s3Bucket = a} :: HookConfiguration)++instance Data.FromJSON HookConfiguration where+  parseJSON =+    Data.withObject+      "HookConfiguration"+      ( \x ->+          HookConfiguration'+            Prelude.<$> (x Data..:? "InvocationCondition")+            Prelude.<*> (x Data..: "LambdaArn")+            Prelude.<*> (x Data..: "S3Bucket")+      )++instance Prelude.Hashable HookConfiguration where+  hashWithSalt _salt HookConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` invocationCondition+      `Prelude.hashWithSalt` lambdaArn+      `Prelude.hashWithSalt` s3Bucket++instance Prelude.NFData HookConfiguration where+  rnf HookConfiguration' {..} =+    Prelude.rnf invocationCondition+      `Prelude.seq` Prelude.rnf lambdaArn+      `Prelude.seq` Prelude.rnf s3Bucket++instance Data.ToJSON HookConfiguration where+  toJSON HookConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("InvocationCondition" Data..=)+              Prelude.<$> invocationCondition,+            Prelude.Just ("LambdaArn" Data..= lambdaArn),+            Prelude.Just ("S3Bucket" Data..= s3Bucket)+          ]+      )
+ gen/Amazonka/Kendra/Types/IndexConfigurationSummary.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.Kendra.Types.IndexConfigurationSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.IndexConfigurationSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.IndexEdition+import Amazonka.Kendra.Types.IndexStatus+import qualified Amazonka.Prelude as Prelude++-- | Summary information on the configuration of an index.+--+-- /See:/ 'newIndexConfigurationSummary' smart constructor.+data IndexConfigurationSummary = IndexConfigurationSummary'+  { -- | Indicates whether the index is a Enterprise Edition index or a Developer+    -- Edition index.+    edition :: Prelude.Maybe IndexEdition,+    -- | A identifier for the index. Use this to identify the index when you are+    -- using APIs such as @Query@, @DescribeIndex@, @UpdateIndex@, and+    -- @DeleteIndex@.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the index.+    name :: Prelude.Maybe Prelude.Text,+    -- | The Unix timestamp when the index was created.+    createdAt :: Data.POSIX,+    -- | The Unix timestamp when the index was last updated by the @UpdateIndex@+    -- API.+    updatedAt :: Data.POSIX,+    -- | The current status of the index. When the status is @ACTIVE@, the index+    -- is ready to search.+    status :: IndexStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IndexConfigurationSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'edition', 'indexConfigurationSummary_edition' - Indicates whether the index is a Enterprise Edition index or a Developer+-- Edition index.+--+-- 'id', 'indexConfigurationSummary_id' - A identifier for the index. Use this to identify the index when you are+-- using APIs such as @Query@, @DescribeIndex@, @UpdateIndex@, and+-- @DeleteIndex@.+--+-- 'name', 'indexConfigurationSummary_name' - The name of the index.+--+-- 'createdAt', 'indexConfigurationSummary_createdAt' - The Unix timestamp when the index was created.+--+-- 'updatedAt', 'indexConfigurationSummary_updatedAt' - The Unix timestamp when the index was last updated by the @UpdateIndex@+-- API.+--+-- 'status', 'indexConfigurationSummary_status' - The current status of the index. When the status is @ACTIVE@, the index+-- is ready to search.+newIndexConfigurationSummary ::+  -- | 'createdAt'+  Prelude.UTCTime ->+  -- | 'updatedAt'+  Prelude.UTCTime ->+  -- | 'status'+  IndexStatus ->+  IndexConfigurationSummary+newIndexConfigurationSummary+  pCreatedAt_+  pUpdatedAt_+  pStatus_ =+    IndexConfigurationSummary'+      { edition =+          Prelude.Nothing,+        id = Prelude.Nothing,+        name = Prelude.Nothing,+        createdAt = Data._Time Lens.# pCreatedAt_,+        updatedAt = Data._Time Lens.# pUpdatedAt_,+        status = pStatus_+      }++-- | Indicates whether the index is a Enterprise Edition index or a Developer+-- Edition index.+indexConfigurationSummary_edition :: Lens.Lens' IndexConfigurationSummary (Prelude.Maybe IndexEdition)+indexConfigurationSummary_edition = Lens.lens (\IndexConfigurationSummary' {edition} -> edition) (\s@IndexConfigurationSummary' {} a -> s {edition = a} :: IndexConfigurationSummary)++-- | A identifier for the index. Use this to identify the index when you are+-- using APIs such as @Query@, @DescribeIndex@, @UpdateIndex@, and+-- @DeleteIndex@.+indexConfigurationSummary_id :: Lens.Lens' IndexConfigurationSummary (Prelude.Maybe Prelude.Text)+indexConfigurationSummary_id = Lens.lens (\IndexConfigurationSummary' {id} -> id) (\s@IndexConfigurationSummary' {} a -> s {id = a} :: IndexConfigurationSummary)++-- | The name of the index.+indexConfigurationSummary_name :: Lens.Lens' IndexConfigurationSummary (Prelude.Maybe Prelude.Text)+indexConfigurationSummary_name = Lens.lens (\IndexConfigurationSummary' {name} -> name) (\s@IndexConfigurationSummary' {} a -> s {name = a} :: IndexConfigurationSummary)++-- | The Unix timestamp when the index was created.+indexConfigurationSummary_createdAt :: Lens.Lens' IndexConfigurationSummary Prelude.UTCTime+indexConfigurationSummary_createdAt = Lens.lens (\IndexConfigurationSummary' {createdAt} -> createdAt) (\s@IndexConfigurationSummary' {} a -> s {createdAt = a} :: IndexConfigurationSummary) Prelude.. Data._Time++-- | The Unix timestamp when the index was last updated by the @UpdateIndex@+-- API.+indexConfigurationSummary_updatedAt :: Lens.Lens' IndexConfigurationSummary Prelude.UTCTime+indexConfigurationSummary_updatedAt = Lens.lens (\IndexConfigurationSummary' {updatedAt} -> updatedAt) (\s@IndexConfigurationSummary' {} a -> s {updatedAt = a} :: IndexConfigurationSummary) Prelude.. Data._Time++-- | The current status of the index. When the status is @ACTIVE@, the index+-- is ready to search.+indexConfigurationSummary_status :: Lens.Lens' IndexConfigurationSummary IndexStatus+indexConfigurationSummary_status = Lens.lens (\IndexConfigurationSummary' {status} -> status) (\s@IndexConfigurationSummary' {} a -> s {status = a} :: IndexConfigurationSummary)++instance Data.FromJSON IndexConfigurationSummary where+  parseJSON =+    Data.withObject+      "IndexConfigurationSummary"+      ( \x ->+          IndexConfigurationSummary'+            Prelude.<$> (x Data..:? "Edition")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..: "CreatedAt")+            Prelude.<*> (x Data..: "UpdatedAt")+            Prelude.<*> (x Data..: "Status")+      )++instance Prelude.Hashable IndexConfigurationSummary where+  hashWithSalt _salt IndexConfigurationSummary' {..} =+    _salt+      `Prelude.hashWithSalt` edition+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` updatedAt+      `Prelude.hashWithSalt` status++instance Prelude.NFData IndexConfigurationSummary where+  rnf IndexConfigurationSummary' {..} =+    Prelude.rnf edition+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf updatedAt+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/Kendra/Types/IndexEdition.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.Kendra.Types.IndexEdition+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.IndexEdition+  ( IndexEdition+      ( ..,+        IndexEdition_DEVELOPER_EDITION,+        IndexEdition_ENTERPRISE_EDITION+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IndexEdition = IndexEdition'+  { fromIndexEdition ::+      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 IndexEdition_DEVELOPER_EDITION :: IndexEdition+pattern IndexEdition_DEVELOPER_EDITION = IndexEdition' "DEVELOPER_EDITION"++pattern IndexEdition_ENTERPRISE_EDITION :: IndexEdition+pattern IndexEdition_ENTERPRISE_EDITION = IndexEdition' "ENTERPRISE_EDITION"++{-# COMPLETE+  IndexEdition_DEVELOPER_EDITION,+  IndexEdition_ENTERPRISE_EDITION,+  IndexEdition'+  #-}
+ gen/Amazonka/Kendra/Types/IndexStatistics.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.Kendra.Types.IndexStatistics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.IndexStatistics where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.FaqStatistics+import Amazonka.Kendra.Types.TextDocumentStatistics+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the number of documents and the number of+-- questions and answers in an index.+--+-- /See:/ 'newIndexStatistics' smart constructor.+data IndexStatistics = IndexStatistics'+  { -- | The number of question and answer topics in the index.+    faqStatistics :: FaqStatistics,+    -- | The number of text documents indexed.+    textDocumentStatistics :: TextDocumentStatistics+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'IndexStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'faqStatistics', 'indexStatistics_faqStatistics' - The number of question and answer topics in the index.+--+-- 'textDocumentStatistics', 'indexStatistics_textDocumentStatistics' - The number of text documents indexed.+newIndexStatistics ::+  -- | 'faqStatistics'+  FaqStatistics ->+  -- | 'textDocumentStatistics'+  TextDocumentStatistics ->+  IndexStatistics+newIndexStatistics+  pFaqStatistics_+  pTextDocumentStatistics_ =+    IndexStatistics'+      { faqStatistics = pFaqStatistics_,+        textDocumentStatistics = pTextDocumentStatistics_+      }++-- | The number of question and answer topics in the index.+indexStatistics_faqStatistics :: Lens.Lens' IndexStatistics FaqStatistics+indexStatistics_faqStatistics = Lens.lens (\IndexStatistics' {faqStatistics} -> faqStatistics) (\s@IndexStatistics' {} a -> s {faqStatistics = a} :: IndexStatistics)++-- | The number of text documents indexed.+indexStatistics_textDocumentStatistics :: Lens.Lens' IndexStatistics TextDocumentStatistics+indexStatistics_textDocumentStatistics = Lens.lens (\IndexStatistics' {textDocumentStatistics} -> textDocumentStatistics) (\s@IndexStatistics' {} a -> s {textDocumentStatistics = a} :: IndexStatistics)++instance Data.FromJSON IndexStatistics where+  parseJSON =+    Data.withObject+      "IndexStatistics"+      ( \x ->+          IndexStatistics'+            Prelude.<$> (x Data..: "FaqStatistics")+            Prelude.<*> (x Data..: "TextDocumentStatistics")+      )++instance Prelude.Hashable IndexStatistics where+  hashWithSalt _salt IndexStatistics' {..} =+    _salt+      `Prelude.hashWithSalt` faqStatistics+      `Prelude.hashWithSalt` textDocumentStatistics++instance Prelude.NFData IndexStatistics where+  rnf IndexStatistics' {..} =+    Prelude.rnf faqStatistics+      `Prelude.seq` Prelude.rnf textDocumentStatistics
+ gen/Amazonka/Kendra/Types/IndexStatus.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.IndexStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.IndexStatus+  ( IndexStatus+      ( ..,+        IndexStatus_ACTIVE,+        IndexStatus_CREATING,+        IndexStatus_DELETING,+        IndexStatus_FAILED,+        IndexStatus_SYSTEM_UPDATING,+        IndexStatus_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IndexStatus = IndexStatus'+  { fromIndexStatus ::+      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 IndexStatus_ACTIVE :: IndexStatus+pattern IndexStatus_ACTIVE = IndexStatus' "ACTIVE"++pattern IndexStatus_CREATING :: IndexStatus+pattern IndexStatus_CREATING = IndexStatus' "CREATING"++pattern IndexStatus_DELETING :: IndexStatus+pattern IndexStatus_DELETING = IndexStatus' "DELETING"++pattern IndexStatus_FAILED :: IndexStatus+pattern IndexStatus_FAILED = IndexStatus' "FAILED"++pattern IndexStatus_SYSTEM_UPDATING :: IndexStatus+pattern IndexStatus_SYSTEM_UPDATING = IndexStatus' "SYSTEM_UPDATING"++pattern IndexStatus_UPDATING :: IndexStatus+pattern IndexStatus_UPDATING = IndexStatus' "UPDATING"++{-# COMPLETE+  IndexStatus_ACTIVE,+  IndexStatus_CREATING,+  IndexStatus_DELETING,+  IndexStatus_FAILED,+  IndexStatus_SYSTEM_UPDATING,+  IndexStatus_UPDATING,+  IndexStatus'+  #-}
+ gen/Amazonka/Kendra/Types/InlineCustomDocumentEnrichmentConfiguration.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.Kendra.Types.InlineCustomDocumentEnrichmentConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.InlineCustomDocumentEnrichmentConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DocumentAttributeCondition+import Amazonka.Kendra.Types.DocumentAttributeTarget+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for applying basic logic to alter+-- document metadata and content when ingesting documents into Amazon+-- Kendra. To apply advanced logic, to go beyond what you can do with basic+-- logic, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_HookConfiguration.html HookConfiguration>.+--+-- For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html Customizing document metadata during the ingestion process>.+--+-- /See:/ 'newInlineCustomDocumentEnrichmentConfiguration' smart constructor.+data InlineCustomDocumentEnrichmentConfiguration = InlineCustomDocumentEnrichmentConfiguration'+  { -- | Configuration of the condition used for the target document attribute or+    -- metadata field when ingesting documents into Amazon Kendra.+    condition :: Prelude.Maybe DocumentAttributeCondition,+    -- | @TRUE@ to delete content if the condition used for the target attribute+    -- is met.+    documentContentDeletion :: Prelude.Maybe Prelude.Bool,+    -- | Configuration of the target document attribute or metadata field when+    -- ingesting documents into Amazon Kendra. You can also include a value.+    target :: Prelude.Maybe DocumentAttributeTarget+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InlineCustomDocumentEnrichmentConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'inlineCustomDocumentEnrichmentConfiguration_condition' - Configuration of the condition used for the target document attribute or+-- metadata field when ingesting documents into Amazon Kendra.+--+-- 'documentContentDeletion', 'inlineCustomDocumentEnrichmentConfiguration_documentContentDeletion' - @TRUE@ to delete content if the condition used for the target attribute+-- is met.+--+-- 'target', 'inlineCustomDocumentEnrichmentConfiguration_target' - Configuration of the target document attribute or metadata field when+-- ingesting documents into Amazon Kendra. You can also include a value.+newInlineCustomDocumentEnrichmentConfiguration ::+  InlineCustomDocumentEnrichmentConfiguration+newInlineCustomDocumentEnrichmentConfiguration =+  InlineCustomDocumentEnrichmentConfiguration'+    { condition =+        Prelude.Nothing,+      documentContentDeletion =+        Prelude.Nothing,+      target = Prelude.Nothing+    }++-- | Configuration of the condition used for the target document attribute or+-- metadata field when ingesting documents into Amazon Kendra.+inlineCustomDocumentEnrichmentConfiguration_condition :: Lens.Lens' InlineCustomDocumentEnrichmentConfiguration (Prelude.Maybe DocumentAttributeCondition)+inlineCustomDocumentEnrichmentConfiguration_condition = Lens.lens (\InlineCustomDocumentEnrichmentConfiguration' {condition} -> condition) (\s@InlineCustomDocumentEnrichmentConfiguration' {} a -> s {condition = a} :: InlineCustomDocumentEnrichmentConfiguration)++-- | @TRUE@ to delete content if the condition used for the target attribute+-- is met.+inlineCustomDocumentEnrichmentConfiguration_documentContentDeletion :: Lens.Lens' InlineCustomDocumentEnrichmentConfiguration (Prelude.Maybe Prelude.Bool)+inlineCustomDocumentEnrichmentConfiguration_documentContentDeletion = Lens.lens (\InlineCustomDocumentEnrichmentConfiguration' {documentContentDeletion} -> documentContentDeletion) (\s@InlineCustomDocumentEnrichmentConfiguration' {} a -> s {documentContentDeletion = a} :: InlineCustomDocumentEnrichmentConfiguration)++-- | Configuration of the target document attribute or metadata field when+-- ingesting documents into Amazon Kendra. You can also include a value.+inlineCustomDocumentEnrichmentConfiguration_target :: Lens.Lens' InlineCustomDocumentEnrichmentConfiguration (Prelude.Maybe DocumentAttributeTarget)+inlineCustomDocumentEnrichmentConfiguration_target = Lens.lens (\InlineCustomDocumentEnrichmentConfiguration' {target} -> target) (\s@InlineCustomDocumentEnrichmentConfiguration' {} a -> s {target = a} :: InlineCustomDocumentEnrichmentConfiguration)++instance+  Data.FromJSON+    InlineCustomDocumentEnrichmentConfiguration+  where+  parseJSON =+    Data.withObject+      "InlineCustomDocumentEnrichmentConfiguration"+      ( \x ->+          InlineCustomDocumentEnrichmentConfiguration'+            Prelude.<$> (x Data..:? "Condition")+            Prelude.<*> (x Data..:? "DocumentContentDeletion")+            Prelude.<*> (x Data..:? "Target")+      )++instance+  Prelude.Hashable+    InlineCustomDocumentEnrichmentConfiguration+  where+  hashWithSalt+    _salt+    InlineCustomDocumentEnrichmentConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` condition+        `Prelude.hashWithSalt` documentContentDeletion+        `Prelude.hashWithSalt` target++instance+  Prelude.NFData+    InlineCustomDocumentEnrichmentConfiguration+  where+  rnf InlineCustomDocumentEnrichmentConfiguration' {..} =+    Prelude.rnf condition+      `Prelude.seq` Prelude.rnf documentContentDeletion+      `Prelude.seq` Prelude.rnf target++instance+  Data.ToJSON+    InlineCustomDocumentEnrichmentConfiguration+  where+  toJSON+    InlineCustomDocumentEnrichmentConfiguration' {..} =+      Data.object+        ( Prelude.catMaybes+            [ ("Condition" Data..=) Prelude.<$> condition,+              ("DocumentContentDeletion" Data..=)+                Prelude.<$> documentContentDeletion,+              ("Target" Data..=) Prelude.<$> target+            ]+        )
+ gen/Amazonka/Kendra/Types/Interval.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.Interval+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.Interval+  ( Interval+      ( ..,+        Interval_ONE_MONTH_AGO,+        Interval_ONE_WEEK_AGO,+        Interval_THIS_MONTH,+        Interval_THIS_WEEK,+        Interval_TWO_MONTHS_AGO,+        Interval_TWO_WEEKS_AGO+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Interval = Interval'+  { fromInterval ::+      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 Interval_ONE_MONTH_AGO :: Interval+pattern Interval_ONE_MONTH_AGO = Interval' "ONE_MONTH_AGO"++pattern Interval_ONE_WEEK_AGO :: Interval+pattern Interval_ONE_WEEK_AGO = Interval' "ONE_WEEK_AGO"++pattern Interval_THIS_MONTH :: Interval+pattern Interval_THIS_MONTH = Interval' "THIS_MONTH"++pattern Interval_THIS_WEEK :: Interval+pattern Interval_THIS_WEEK = Interval' "THIS_WEEK"++pattern Interval_TWO_MONTHS_AGO :: Interval+pattern Interval_TWO_MONTHS_AGO = Interval' "TWO_MONTHS_AGO"++pattern Interval_TWO_WEEKS_AGO :: Interval+pattern Interval_TWO_WEEKS_AGO = Interval' "TWO_WEEKS_AGO"++{-# COMPLETE+  Interval_ONE_MONTH_AGO,+  Interval_ONE_WEEK_AGO,+  Interval_THIS_MONTH,+  Interval_THIS_WEEK,+  Interval_TWO_MONTHS_AGO,+  Interval_TWO_WEEKS_AGO,+  Interval'+  #-}
+ gen/Amazonka/Kendra/Types/IssueSubEntity.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.Kendra.Types.IssueSubEntity+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.IssueSubEntity+  ( IssueSubEntity+      ( ..,+        IssueSubEntity_ATTACHMENTS,+        IssueSubEntity_COMMENTS,+        IssueSubEntity_WORKLOGS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype IssueSubEntity = IssueSubEntity'+  { fromIssueSubEntity ::+      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 IssueSubEntity_ATTACHMENTS :: IssueSubEntity+pattern IssueSubEntity_ATTACHMENTS = IssueSubEntity' "ATTACHMENTS"++pattern IssueSubEntity_COMMENTS :: IssueSubEntity+pattern IssueSubEntity_COMMENTS = IssueSubEntity' "COMMENTS"++pattern IssueSubEntity_WORKLOGS :: IssueSubEntity+pattern IssueSubEntity_WORKLOGS = IssueSubEntity' "WORKLOGS"++{-# COMPLETE+  IssueSubEntity_ATTACHMENTS,+  IssueSubEntity_COMMENTS,+  IssueSubEntity_WORKLOGS,+  IssueSubEntity'+  #-}
+ gen/Amazonka/Kendra/Types/JiraConfiguration.hs view
@@ -0,0 +1,464 @@+{-# 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.Kendra.Types.JiraConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.JiraConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import Amazonka.Kendra.Types.DataSourceVpcConfiguration+import Amazonka.Kendra.Types.IssueSubEntity+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to Jira as your data+-- source.+--+-- /See:/ 'newJiraConfiguration' smart constructor.+data JiraConfiguration = JiraConfiguration'+  { -- | A list of DataSourceToIndexFieldMapping objects that map attributes or+    -- field names of Jira attachments to Amazon Kendra index field names. To+    -- create custom fields, use the UpdateIndex API before you map to Jira+    -- fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Jira data source field names must exist in your Jira custom+    -- metadata.+    attachmentFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of DataSourceToIndexFieldMapping objects that map attributes or+    -- field names of Jira comments to Amazon Kendra index field names. To+    -- create custom fields, use the UpdateIndex API before you map to Jira+    -- fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Jira data source field names must exist in your Jira custom+    -- metadata.+    commentFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of regular expression patterns to exclude certain file paths,+    -- file names, and file types in your Jira data source. Files that match+    -- the patterns are excluded from the index. Files that don’t match the+    -- patterns are included in the index. If a file matches both an inclusion+    -- pattern and an exclusion pattern, the exclusion pattern takes precedence+    -- and the file isn\'t included in the index.+    exclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of regular expression patterns to include certain file paths,+    -- file names, and file types in your Jira data source. Files that match+    -- the patterns are included in the index. Files that don\'t match the+    -- patterns are excluded from the index. If a file matches both an+    -- inclusion pattern and an exclusion pattern, the exclusion pattern takes+    -- precedence and the file isn\'t included in the index.+    inclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of DataSourceToIndexFieldMapping objects that map attributes or+    -- field names of Jira issues to Amazon Kendra index field names. To create+    -- custom fields, use the UpdateIndex API before you map to Jira fields.+    -- For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Jira data source field names must exist in your Jira custom+    -- metadata.+    issueFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | Specify whether to crawl comments, attachments, and work logs. You can+    -- specify one or more of these options.+    issueSubEntityFilter :: Prelude.Maybe [IssueSubEntity],+    -- | Specify which issue types to crawl in your Jira data source. You can+    -- specify one or more of these options to crawl.+    issueType :: Prelude.Maybe [Prelude.Text],+    -- | Specify which projects to crawl in your Jira data source. You can+    -- specify one or more Jira project IDs.+    project :: Prelude.Maybe [Prelude.Text],+    -- | A list of DataSourceToIndexFieldMapping objects that map attributes or+    -- field names of Jira projects to Amazon Kendra index field names. To+    -- create custom fields, use the UpdateIndex API before you map to Jira+    -- fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Jira data source field names must exist in your Jira custom+    -- metadata.+    projectFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | Specify which statuses to crawl in your Jira data source. You can+    -- specify one or more of these options to crawl.+    status :: Prelude.Maybe [Prelude.Text],+    -- | @TRUE@ to use the Jira change log to determine which documents require+    -- updating in the index. Depending on the change log\'s size, it may take+    -- longer for Amazon Kendra to use the change log than to scan all of your+    -- documents in Jira.+    useChangeLog :: Prelude.Maybe Prelude.Bool,+    -- | Configuration information for an Amazon Virtual Private Cloud to connect+    -- to your Jira. Your Jira account must reside inside your VPC.+    vpcConfiguration :: Prelude.Maybe DataSourceVpcConfiguration,+    -- | A list of DataSourceToIndexFieldMapping objects that map attributes or+    -- field names of Jira work logs to Amazon Kendra index field names. To+    -- create custom fields, use the UpdateIndex API before you map to Jira+    -- fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Jira data source field names must exist in your Jira custom+    -- metadata.+    workLogFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | The URL of the Jira account. For example, /company.atlassian.net/ or+    -- /https:\/\/jira.company.com/. You can find your Jira account URL in the+    -- URL of your profile page for Jira desktop.+    jiraAccountUrl :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of a secret in Secrets Manager contains+    -- the key-value pairs required to connect to your Jira data source. The+    -- secret must contain a JSON structure with the following keys:+    --+    -- -   jiraId—The Jira username.+    --+    -- -   jiraCredentials—The Jira API token. For more information on creating+    --     an API token in Jira, see+    --     <https://docs.aws.amazon.com/kendra/latest/dg/data-source-jira.html Using a Jira data source>.+    secretArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JiraConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attachmentFieldMappings', 'jiraConfiguration_attachmentFieldMappings' - A list of DataSourceToIndexFieldMapping objects that map attributes or+-- field names of Jira attachments to Amazon Kendra index field names. To+-- create custom fields, use the UpdateIndex API before you map to Jira+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Jira data source field names must exist in your Jira custom+-- metadata.+--+-- 'commentFieldMappings', 'jiraConfiguration_commentFieldMappings' - A list of DataSourceToIndexFieldMapping objects that map attributes or+-- field names of Jira comments to Amazon Kendra index field names. To+-- create custom fields, use the UpdateIndex API before you map to Jira+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Jira data source field names must exist in your Jira custom+-- metadata.+--+-- 'exclusionPatterns', 'jiraConfiguration_exclusionPatterns' - A list of regular expression patterns to exclude certain file paths,+-- file names, and file types in your Jira data source. Files that match+-- the patterns are excluded from the index. Files that don’t match the+-- patterns are included in the index. If a file matches both an inclusion+-- pattern and an exclusion pattern, the exclusion pattern takes precedence+-- and the file isn\'t included in the index.+--+-- 'inclusionPatterns', 'jiraConfiguration_inclusionPatterns' - A list of regular expression patterns to include certain file paths,+-- file names, and file types in your Jira data source. Files that match+-- the patterns are included in the index. Files that don\'t match the+-- patterns are excluded from the index. If a file matches both an+-- inclusion pattern and an exclusion pattern, the exclusion pattern takes+-- precedence and the file isn\'t included in the index.+--+-- 'issueFieldMappings', 'jiraConfiguration_issueFieldMappings' - A list of DataSourceToIndexFieldMapping objects that map attributes or+-- field names of Jira issues to Amazon Kendra index field names. To create+-- custom fields, use the UpdateIndex API before you map to Jira fields.+-- For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Jira data source field names must exist in your Jira custom+-- metadata.+--+-- 'issueSubEntityFilter', 'jiraConfiguration_issueSubEntityFilter' - Specify whether to crawl comments, attachments, and work logs. You can+-- specify one or more of these options.+--+-- 'issueType', 'jiraConfiguration_issueType' - Specify which issue types to crawl in your Jira data source. You can+-- specify one or more of these options to crawl.+--+-- 'project', 'jiraConfiguration_project' - Specify which projects to crawl in your Jira data source. You can+-- specify one or more Jira project IDs.+--+-- 'projectFieldMappings', 'jiraConfiguration_projectFieldMappings' - A list of DataSourceToIndexFieldMapping objects that map attributes or+-- field names of Jira projects to Amazon Kendra index field names. To+-- create custom fields, use the UpdateIndex API before you map to Jira+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Jira data source field names must exist in your Jira custom+-- metadata.+--+-- 'status', 'jiraConfiguration_status' - Specify which statuses to crawl in your Jira data source. You can+-- specify one or more of these options to crawl.+--+-- 'useChangeLog', 'jiraConfiguration_useChangeLog' - @TRUE@ to use the Jira change log to determine which documents require+-- updating in the index. Depending on the change log\'s size, it may take+-- longer for Amazon Kendra to use the change log than to scan all of your+-- documents in Jira.+--+-- 'vpcConfiguration', 'jiraConfiguration_vpcConfiguration' - Configuration information for an Amazon Virtual Private Cloud to connect+-- to your Jira. Your Jira account must reside inside your VPC.+--+-- 'workLogFieldMappings', 'jiraConfiguration_workLogFieldMappings' - A list of DataSourceToIndexFieldMapping objects that map attributes or+-- field names of Jira work logs to Amazon Kendra index field names. To+-- create custom fields, use the UpdateIndex API before you map to Jira+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Jira data source field names must exist in your Jira custom+-- metadata.+--+-- 'jiraAccountUrl', 'jiraConfiguration_jiraAccountUrl' - The URL of the Jira account. For example, /company.atlassian.net/ or+-- /https:\/\/jira.company.com/. You can find your Jira account URL in the+-- URL of your profile page for Jira desktop.+--+-- 'secretArn', 'jiraConfiguration_secretArn' - The Amazon Resource Name (ARN) of a secret in Secrets Manager contains+-- the key-value pairs required to connect to your Jira data source. The+-- secret must contain a JSON structure with the following keys:+--+-- -   jiraId—The Jira username.+--+-- -   jiraCredentials—The Jira API token. For more information on creating+--     an API token in Jira, see+--     <https://docs.aws.amazon.com/kendra/latest/dg/data-source-jira.html Using a Jira data source>.+newJiraConfiguration ::+  -- | 'jiraAccountUrl'+  Prelude.Text ->+  -- | 'secretArn'+  Prelude.Text ->+  JiraConfiguration+newJiraConfiguration pJiraAccountUrl_ pSecretArn_ =+  JiraConfiguration'+    { attachmentFieldMappings =+        Prelude.Nothing,+      commentFieldMappings = Prelude.Nothing,+      exclusionPatterns = Prelude.Nothing,+      inclusionPatterns = Prelude.Nothing,+      issueFieldMappings = Prelude.Nothing,+      issueSubEntityFilter = Prelude.Nothing,+      issueType = Prelude.Nothing,+      project = Prelude.Nothing,+      projectFieldMappings = Prelude.Nothing,+      status = Prelude.Nothing,+      useChangeLog = Prelude.Nothing,+      vpcConfiguration = Prelude.Nothing,+      workLogFieldMappings = Prelude.Nothing,+      jiraAccountUrl = pJiraAccountUrl_,+      secretArn = pSecretArn_+    }++-- | A list of DataSourceToIndexFieldMapping objects that map attributes or+-- field names of Jira attachments to Amazon Kendra index field names. To+-- create custom fields, use the UpdateIndex API before you map to Jira+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Jira data source field names must exist in your Jira custom+-- metadata.+jiraConfiguration_attachmentFieldMappings :: Lens.Lens' JiraConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+jiraConfiguration_attachmentFieldMappings = Lens.lens (\JiraConfiguration' {attachmentFieldMappings} -> attachmentFieldMappings) (\s@JiraConfiguration' {} a -> s {attachmentFieldMappings = a} :: JiraConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of DataSourceToIndexFieldMapping objects that map attributes or+-- field names of Jira comments to Amazon Kendra index field names. To+-- create custom fields, use the UpdateIndex API before you map to Jira+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Jira data source field names must exist in your Jira custom+-- metadata.+jiraConfiguration_commentFieldMappings :: Lens.Lens' JiraConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+jiraConfiguration_commentFieldMappings = Lens.lens (\JiraConfiguration' {commentFieldMappings} -> commentFieldMappings) (\s@JiraConfiguration' {} a -> s {commentFieldMappings = a} :: JiraConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to exclude certain file paths,+-- file names, and file types in your Jira data source. Files that match+-- the patterns are excluded from the index. Files that don’t match the+-- patterns are included in the index. If a file matches both an inclusion+-- pattern and an exclusion pattern, the exclusion pattern takes precedence+-- and the file isn\'t included in the index.+jiraConfiguration_exclusionPatterns :: Lens.Lens' JiraConfiguration (Prelude.Maybe [Prelude.Text])+jiraConfiguration_exclusionPatterns = Lens.lens (\JiraConfiguration' {exclusionPatterns} -> exclusionPatterns) (\s@JiraConfiguration' {} a -> s {exclusionPatterns = a} :: JiraConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to include certain file paths,+-- file names, and file types in your Jira data source. Files that match+-- the patterns are included in the index. Files that don\'t match the+-- patterns are excluded from the index. If a file matches both an+-- inclusion pattern and an exclusion pattern, the exclusion pattern takes+-- precedence and the file isn\'t included in the index.+jiraConfiguration_inclusionPatterns :: Lens.Lens' JiraConfiguration (Prelude.Maybe [Prelude.Text])+jiraConfiguration_inclusionPatterns = Lens.lens (\JiraConfiguration' {inclusionPatterns} -> inclusionPatterns) (\s@JiraConfiguration' {} a -> s {inclusionPatterns = a} :: JiraConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of DataSourceToIndexFieldMapping objects that map attributes or+-- field names of Jira issues to Amazon Kendra index field names. To create+-- custom fields, use the UpdateIndex API before you map to Jira fields.+-- For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Jira data source field names must exist in your Jira custom+-- metadata.+jiraConfiguration_issueFieldMappings :: Lens.Lens' JiraConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+jiraConfiguration_issueFieldMappings = Lens.lens (\JiraConfiguration' {issueFieldMappings} -> issueFieldMappings) (\s@JiraConfiguration' {} a -> s {issueFieldMappings = a} :: JiraConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Specify whether to crawl comments, attachments, and work logs. You can+-- specify one or more of these options.+jiraConfiguration_issueSubEntityFilter :: Lens.Lens' JiraConfiguration (Prelude.Maybe [IssueSubEntity])+jiraConfiguration_issueSubEntityFilter = Lens.lens (\JiraConfiguration' {issueSubEntityFilter} -> issueSubEntityFilter) (\s@JiraConfiguration' {} a -> s {issueSubEntityFilter = a} :: JiraConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Specify which issue types to crawl in your Jira data source. You can+-- specify one or more of these options to crawl.+jiraConfiguration_issueType :: Lens.Lens' JiraConfiguration (Prelude.Maybe [Prelude.Text])+jiraConfiguration_issueType = Lens.lens (\JiraConfiguration' {issueType} -> issueType) (\s@JiraConfiguration' {} a -> s {issueType = a} :: JiraConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Specify which projects to crawl in your Jira data source. You can+-- specify one or more Jira project IDs.+jiraConfiguration_project :: Lens.Lens' JiraConfiguration (Prelude.Maybe [Prelude.Text])+jiraConfiguration_project = Lens.lens (\JiraConfiguration' {project} -> project) (\s@JiraConfiguration' {} a -> s {project = a} :: JiraConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of DataSourceToIndexFieldMapping objects that map attributes or+-- field names of Jira projects to Amazon Kendra index field names. To+-- create custom fields, use the UpdateIndex API before you map to Jira+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Jira data source field names must exist in your Jira custom+-- metadata.+jiraConfiguration_projectFieldMappings :: Lens.Lens' JiraConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+jiraConfiguration_projectFieldMappings = Lens.lens (\JiraConfiguration' {projectFieldMappings} -> projectFieldMappings) (\s@JiraConfiguration' {} a -> s {projectFieldMappings = a} :: JiraConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Specify which statuses to crawl in your Jira data source. You can+-- specify one or more of these options to crawl.+jiraConfiguration_status :: Lens.Lens' JiraConfiguration (Prelude.Maybe [Prelude.Text])+jiraConfiguration_status = Lens.lens (\JiraConfiguration' {status} -> status) (\s@JiraConfiguration' {} a -> s {status = a} :: JiraConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | @TRUE@ to use the Jira change log to determine which documents require+-- updating in the index. Depending on the change log\'s size, it may take+-- longer for Amazon Kendra to use the change log than to scan all of your+-- documents in Jira.+jiraConfiguration_useChangeLog :: Lens.Lens' JiraConfiguration (Prelude.Maybe Prelude.Bool)+jiraConfiguration_useChangeLog = Lens.lens (\JiraConfiguration' {useChangeLog} -> useChangeLog) (\s@JiraConfiguration' {} a -> s {useChangeLog = a} :: JiraConfiguration)++-- | Configuration information for an Amazon Virtual Private Cloud to connect+-- to your Jira. Your Jira account must reside inside your VPC.+jiraConfiguration_vpcConfiguration :: Lens.Lens' JiraConfiguration (Prelude.Maybe DataSourceVpcConfiguration)+jiraConfiguration_vpcConfiguration = Lens.lens (\JiraConfiguration' {vpcConfiguration} -> vpcConfiguration) (\s@JiraConfiguration' {} a -> s {vpcConfiguration = a} :: JiraConfiguration)++-- | A list of DataSourceToIndexFieldMapping objects that map attributes or+-- field names of Jira work logs to Amazon Kendra index field names. To+-- create custom fields, use the UpdateIndex API before you map to Jira+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Jira data source field names must exist in your Jira custom+-- metadata.+jiraConfiguration_workLogFieldMappings :: Lens.Lens' JiraConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+jiraConfiguration_workLogFieldMappings = Lens.lens (\JiraConfiguration' {workLogFieldMappings} -> workLogFieldMappings) (\s@JiraConfiguration' {} a -> s {workLogFieldMappings = a} :: JiraConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The URL of the Jira account. For example, /company.atlassian.net/ or+-- /https:\/\/jira.company.com/. You can find your Jira account URL in the+-- URL of your profile page for Jira desktop.+jiraConfiguration_jiraAccountUrl :: Lens.Lens' JiraConfiguration Prelude.Text+jiraConfiguration_jiraAccountUrl = Lens.lens (\JiraConfiguration' {jiraAccountUrl} -> jiraAccountUrl) (\s@JiraConfiguration' {} a -> s {jiraAccountUrl = a} :: JiraConfiguration)++-- | The Amazon Resource Name (ARN) of a secret in Secrets Manager contains+-- the key-value pairs required to connect to your Jira data source. The+-- secret must contain a JSON structure with the following keys:+--+-- -   jiraId—The Jira username.+--+-- -   jiraCredentials—The Jira API token. For more information on creating+--     an API token in Jira, see+--     <https://docs.aws.amazon.com/kendra/latest/dg/data-source-jira.html Using a Jira data source>.+jiraConfiguration_secretArn :: Lens.Lens' JiraConfiguration Prelude.Text+jiraConfiguration_secretArn = Lens.lens (\JiraConfiguration' {secretArn} -> secretArn) (\s@JiraConfiguration' {} a -> s {secretArn = a} :: JiraConfiguration)++instance Data.FromJSON JiraConfiguration where+  parseJSON =+    Data.withObject+      "JiraConfiguration"+      ( \x ->+          JiraConfiguration'+            Prelude.<$> (x Data..:? "AttachmentFieldMappings")+            Prelude.<*> (x Data..:? "CommentFieldMappings")+            Prelude.<*> ( x+                            Data..:? "ExclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "InclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "IssueFieldMappings")+            Prelude.<*> ( x+                            Data..:? "IssueSubEntityFilter"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "IssueType" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Project" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "ProjectFieldMappings")+            Prelude.<*> (x Data..:? "Status" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "UseChangeLog")+            Prelude.<*> (x Data..:? "VpcConfiguration")+            Prelude.<*> (x Data..:? "WorkLogFieldMappings")+            Prelude.<*> (x Data..: "JiraAccountUrl")+            Prelude.<*> (x Data..: "SecretArn")+      )++instance Prelude.Hashable JiraConfiguration where+  hashWithSalt _salt JiraConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` attachmentFieldMappings+      `Prelude.hashWithSalt` commentFieldMappings+      `Prelude.hashWithSalt` exclusionPatterns+      `Prelude.hashWithSalt` inclusionPatterns+      `Prelude.hashWithSalt` issueFieldMappings+      `Prelude.hashWithSalt` issueSubEntityFilter+      `Prelude.hashWithSalt` issueType+      `Prelude.hashWithSalt` project+      `Prelude.hashWithSalt` projectFieldMappings+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` useChangeLog+      `Prelude.hashWithSalt` vpcConfiguration+      `Prelude.hashWithSalt` workLogFieldMappings+      `Prelude.hashWithSalt` jiraAccountUrl+      `Prelude.hashWithSalt` secretArn++instance Prelude.NFData JiraConfiguration where+  rnf JiraConfiguration' {..} =+    Prelude.rnf attachmentFieldMappings+      `Prelude.seq` Prelude.rnf commentFieldMappings+      `Prelude.seq` Prelude.rnf exclusionPatterns+      `Prelude.seq` Prelude.rnf inclusionPatterns+      `Prelude.seq` Prelude.rnf issueFieldMappings+      `Prelude.seq` Prelude.rnf issueSubEntityFilter+      `Prelude.seq` Prelude.rnf issueType+      `Prelude.seq` Prelude.rnf project+      `Prelude.seq` Prelude.rnf projectFieldMappings+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf useChangeLog+      `Prelude.seq` Prelude.rnf vpcConfiguration+      `Prelude.seq` Prelude.rnf workLogFieldMappings+      `Prelude.seq` Prelude.rnf jiraAccountUrl+      `Prelude.seq` Prelude.rnf secretArn++instance Data.ToJSON JiraConfiguration where+  toJSON JiraConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AttachmentFieldMappings" Data..=)+              Prelude.<$> attachmentFieldMappings,+            ("CommentFieldMappings" Data..=)+              Prelude.<$> commentFieldMappings,+            ("ExclusionPatterns" Data..=)+              Prelude.<$> exclusionPatterns,+            ("InclusionPatterns" Data..=)+              Prelude.<$> inclusionPatterns,+            ("IssueFieldMappings" Data..=)+              Prelude.<$> issueFieldMappings,+            ("IssueSubEntityFilter" Data..=)+              Prelude.<$> issueSubEntityFilter,+            ("IssueType" Data..=) Prelude.<$> issueType,+            ("Project" Data..=) Prelude.<$> project,+            ("ProjectFieldMappings" Data..=)+              Prelude.<$> projectFieldMappings,+            ("Status" Data..=) Prelude.<$> status,+            ("UseChangeLog" Data..=) Prelude.<$> useChangeLog,+            ("VpcConfiguration" Data..=)+              Prelude.<$> vpcConfiguration,+            ("WorkLogFieldMappings" Data..=)+              Prelude.<$> workLogFieldMappings,+            Prelude.Just+              ("JiraAccountUrl" Data..= jiraAccountUrl),+            Prelude.Just ("SecretArn" Data..= secretArn)+          ]+      )
+ gen/Amazonka/Kendra/Types/JsonTokenTypeConfiguration.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.Kendra.Types.JsonTokenTypeConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.JsonTokenTypeConfiguration 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 configuration information for the JSON token type.+--+-- /See:/ 'newJsonTokenTypeConfiguration' smart constructor.+data JsonTokenTypeConfiguration = JsonTokenTypeConfiguration'+  { -- | The user name attribute field.+    userNameAttributeField :: Prelude.Text,+    -- | The group attribute field.+    groupAttributeField :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JsonTokenTypeConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'userNameAttributeField', 'jsonTokenTypeConfiguration_userNameAttributeField' - The user name attribute field.+--+-- 'groupAttributeField', 'jsonTokenTypeConfiguration_groupAttributeField' - The group attribute field.+newJsonTokenTypeConfiguration ::+  -- | 'userNameAttributeField'+  Prelude.Text ->+  -- | 'groupAttributeField'+  Prelude.Text ->+  JsonTokenTypeConfiguration+newJsonTokenTypeConfiguration+  pUserNameAttributeField_+  pGroupAttributeField_ =+    JsonTokenTypeConfiguration'+      { userNameAttributeField =+          pUserNameAttributeField_,+        groupAttributeField = pGroupAttributeField_+      }++-- | The user name attribute field.+jsonTokenTypeConfiguration_userNameAttributeField :: Lens.Lens' JsonTokenTypeConfiguration Prelude.Text+jsonTokenTypeConfiguration_userNameAttributeField = Lens.lens (\JsonTokenTypeConfiguration' {userNameAttributeField} -> userNameAttributeField) (\s@JsonTokenTypeConfiguration' {} a -> s {userNameAttributeField = a} :: JsonTokenTypeConfiguration)++-- | The group attribute field.+jsonTokenTypeConfiguration_groupAttributeField :: Lens.Lens' JsonTokenTypeConfiguration Prelude.Text+jsonTokenTypeConfiguration_groupAttributeField = Lens.lens (\JsonTokenTypeConfiguration' {groupAttributeField} -> groupAttributeField) (\s@JsonTokenTypeConfiguration' {} a -> s {groupAttributeField = a} :: JsonTokenTypeConfiguration)++instance Data.FromJSON JsonTokenTypeConfiguration where+  parseJSON =+    Data.withObject+      "JsonTokenTypeConfiguration"+      ( \x ->+          JsonTokenTypeConfiguration'+            Prelude.<$> (x Data..: "UserNameAttributeField")+            Prelude.<*> (x Data..: "GroupAttributeField")+      )++instance Prelude.Hashable JsonTokenTypeConfiguration where+  hashWithSalt _salt JsonTokenTypeConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` userNameAttributeField+      `Prelude.hashWithSalt` groupAttributeField++instance Prelude.NFData JsonTokenTypeConfiguration where+  rnf JsonTokenTypeConfiguration' {..} =+    Prelude.rnf userNameAttributeField+      `Prelude.seq` Prelude.rnf groupAttributeField++instance Data.ToJSON JsonTokenTypeConfiguration where+  toJSON JsonTokenTypeConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "UserNameAttributeField"+                  Data..= userNameAttributeField+              ),+            Prelude.Just+              ("GroupAttributeField" Data..= groupAttributeField)+          ]+      )
+ gen/Amazonka/Kendra/Types/JwtTokenTypeConfiguration.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.Kendra.Types.JwtTokenTypeConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.JwtTokenTypeConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.KeyLocation+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for the JWT token type.+--+-- /See:/ 'newJwtTokenTypeConfiguration' smart constructor.+data JwtTokenTypeConfiguration = JwtTokenTypeConfiguration'+  { -- | The regular expression that identifies the claim.+    claimRegex :: Prelude.Maybe Prelude.Text,+    -- | The group attribute field.+    groupAttributeField :: Prelude.Maybe Prelude.Text,+    -- | The issuer of the token.+    issuer :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (arn) of the secret.+    secretManagerArn :: Prelude.Maybe Prelude.Text,+    -- | The signing key URL.+    url :: Prelude.Maybe Prelude.Text,+    -- | The user name attribute field.+    userNameAttributeField :: Prelude.Maybe Prelude.Text,+    -- | The location of the key.+    keyLocation :: KeyLocation+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'JwtTokenTypeConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'claimRegex', 'jwtTokenTypeConfiguration_claimRegex' - The regular expression that identifies the claim.+--+-- 'groupAttributeField', 'jwtTokenTypeConfiguration_groupAttributeField' - The group attribute field.+--+-- 'issuer', 'jwtTokenTypeConfiguration_issuer' - The issuer of the token.+--+-- 'secretManagerArn', 'jwtTokenTypeConfiguration_secretManagerArn' - The Amazon Resource Name (arn) of the secret.+--+-- 'url', 'jwtTokenTypeConfiguration_url' - The signing key URL.+--+-- 'userNameAttributeField', 'jwtTokenTypeConfiguration_userNameAttributeField' - The user name attribute field.+--+-- 'keyLocation', 'jwtTokenTypeConfiguration_keyLocation' - The location of the key.+newJwtTokenTypeConfiguration ::+  -- | 'keyLocation'+  KeyLocation ->+  JwtTokenTypeConfiguration+newJwtTokenTypeConfiguration pKeyLocation_ =+  JwtTokenTypeConfiguration'+    { claimRegex =+        Prelude.Nothing,+      groupAttributeField = Prelude.Nothing,+      issuer = Prelude.Nothing,+      secretManagerArn = Prelude.Nothing,+      url = Prelude.Nothing,+      userNameAttributeField = Prelude.Nothing,+      keyLocation = pKeyLocation_+    }++-- | The regular expression that identifies the claim.+jwtTokenTypeConfiguration_claimRegex :: Lens.Lens' JwtTokenTypeConfiguration (Prelude.Maybe Prelude.Text)+jwtTokenTypeConfiguration_claimRegex = Lens.lens (\JwtTokenTypeConfiguration' {claimRegex} -> claimRegex) (\s@JwtTokenTypeConfiguration' {} a -> s {claimRegex = a} :: JwtTokenTypeConfiguration)++-- | The group attribute field.+jwtTokenTypeConfiguration_groupAttributeField :: Lens.Lens' JwtTokenTypeConfiguration (Prelude.Maybe Prelude.Text)+jwtTokenTypeConfiguration_groupAttributeField = Lens.lens (\JwtTokenTypeConfiguration' {groupAttributeField} -> groupAttributeField) (\s@JwtTokenTypeConfiguration' {} a -> s {groupAttributeField = a} :: JwtTokenTypeConfiguration)++-- | The issuer of the token.+jwtTokenTypeConfiguration_issuer :: Lens.Lens' JwtTokenTypeConfiguration (Prelude.Maybe Prelude.Text)+jwtTokenTypeConfiguration_issuer = Lens.lens (\JwtTokenTypeConfiguration' {issuer} -> issuer) (\s@JwtTokenTypeConfiguration' {} a -> s {issuer = a} :: JwtTokenTypeConfiguration)++-- | The Amazon Resource Name (arn) of the secret.+jwtTokenTypeConfiguration_secretManagerArn :: Lens.Lens' JwtTokenTypeConfiguration (Prelude.Maybe Prelude.Text)+jwtTokenTypeConfiguration_secretManagerArn = Lens.lens (\JwtTokenTypeConfiguration' {secretManagerArn} -> secretManagerArn) (\s@JwtTokenTypeConfiguration' {} a -> s {secretManagerArn = a} :: JwtTokenTypeConfiguration)++-- | The signing key URL.+jwtTokenTypeConfiguration_url :: Lens.Lens' JwtTokenTypeConfiguration (Prelude.Maybe Prelude.Text)+jwtTokenTypeConfiguration_url = Lens.lens (\JwtTokenTypeConfiguration' {url} -> url) (\s@JwtTokenTypeConfiguration' {} a -> s {url = a} :: JwtTokenTypeConfiguration)++-- | The user name attribute field.+jwtTokenTypeConfiguration_userNameAttributeField :: Lens.Lens' JwtTokenTypeConfiguration (Prelude.Maybe Prelude.Text)+jwtTokenTypeConfiguration_userNameAttributeField = Lens.lens (\JwtTokenTypeConfiguration' {userNameAttributeField} -> userNameAttributeField) (\s@JwtTokenTypeConfiguration' {} a -> s {userNameAttributeField = a} :: JwtTokenTypeConfiguration)++-- | The location of the key.+jwtTokenTypeConfiguration_keyLocation :: Lens.Lens' JwtTokenTypeConfiguration KeyLocation+jwtTokenTypeConfiguration_keyLocation = Lens.lens (\JwtTokenTypeConfiguration' {keyLocation} -> keyLocation) (\s@JwtTokenTypeConfiguration' {} a -> s {keyLocation = a} :: JwtTokenTypeConfiguration)++instance Data.FromJSON JwtTokenTypeConfiguration where+  parseJSON =+    Data.withObject+      "JwtTokenTypeConfiguration"+      ( \x ->+          JwtTokenTypeConfiguration'+            Prelude.<$> (x Data..:? "ClaimRegex")+            Prelude.<*> (x Data..:? "GroupAttributeField")+            Prelude.<*> (x Data..:? "Issuer")+            Prelude.<*> (x Data..:? "SecretManagerArn")+            Prelude.<*> (x Data..:? "URL")+            Prelude.<*> (x Data..:? "UserNameAttributeField")+            Prelude.<*> (x Data..: "KeyLocation")+      )++instance Prelude.Hashable JwtTokenTypeConfiguration where+  hashWithSalt _salt JwtTokenTypeConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` claimRegex+      `Prelude.hashWithSalt` groupAttributeField+      `Prelude.hashWithSalt` issuer+      `Prelude.hashWithSalt` secretManagerArn+      `Prelude.hashWithSalt` url+      `Prelude.hashWithSalt` userNameAttributeField+      `Prelude.hashWithSalt` keyLocation++instance Prelude.NFData JwtTokenTypeConfiguration where+  rnf JwtTokenTypeConfiguration' {..} =+    Prelude.rnf claimRegex+      `Prelude.seq` Prelude.rnf groupAttributeField+      `Prelude.seq` Prelude.rnf issuer+      `Prelude.seq` Prelude.rnf secretManagerArn+      `Prelude.seq` Prelude.rnf url+      `Prelude.seq` Prelude.rnf userNameAttributeField+      `Prelude.seq` Prelude.rnf keyLocation++instance Data.ToJSON JwtTokenTypeConfiguration where+  toJSON JwtTokenTypeConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ClaimRegex" Data..=) Prelude.<$> claimRegex,+            ("GroupAttributeField" Data..=)+              Prelude.<$> groupAttributeField,+            ("Issuer" Data..=) Prelude.<$> issuer,+            ("SecretManagerArn" Data..=)+              Prelude.<$> secretManagerArn,+            ("URL" Data..=) Prelude.<$> url,+            ("UserNameAttributeField" Data..=)+              Prelude.<$> userNameAttributeField,+            Prelude.Just ("KeyLocation" Data..= keyLocation)+          ]+      )
+ gen/Amazonka/Kendra/Types/KeyLocation.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.Kendra.Types.KeyLocation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.KeyLocation+  ( KeyLocation+      ( ..,+        KeyLocation_SECRET_MANAGER,+        KeyLocation_URL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype KeyLocation = KeyLocation'+  { fromKeyLocation ::+      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 KeyLocation_SECRET_MANAGER :: KeyLocation+pattern KeyLocation_SECRET_MANAGER = KeyLocation' "SECRET_MANAGER"++pattern KeyLocation_URL :: KeyLocation+pattern KeyLocation_URL = KeyLocation' "URL"++{-# COMPLETE+  KeyLocation_SECRET_MANAGER,+  KeyLocation_URL,+  KeyLocation'+  #-}
+ gen/Amazonka/Kendra/Types/MemberGroup.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.Kendra.Types.MemberGroup+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.MemberGroup 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 sub groups that belong to a group.+--+-- /See:/ 'newMemberGroup' smart constructor.+data MemberGroup = MemberGroup'+  { -- | The identifier of the data source for the sub group you want to map to a+    -- group.+    dataSourceId :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the sub group you want to map to a group.+    groupId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MemberGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSourceId', 'memberGroup_dataSourceId' - The identifier of the data source for the sub group you want to map to a+-- group.+--+-- 'groupId', 'memberGroup_groupId' - The identifier of the sub group you want to map to a group.+newMemberGroup ::+  -- | 'groupId'+  Prelude.Text ->+  MemberGroup+newMemberGroup pGroupId_ =+  MemberGroup'+    { dataSourceId = Prelude.Nothing,+      groupId = pGroupId_+    }++-- | The identifier of the data source for the sub group you want to map to a+-- group.+memberGroup_dataSourceId :: Lens.Lens' MemberGroup (Prelude.Maybe Prelude.Text)+memberGroup_dataSourceId = Lens.lens (\MemberGroup' {dataSourceId} -> dataSourceId) (\s@MemberGroup' {} a -> s {dataSourceId = a} :: MemberGroup)++-- | The identifier of the sub group you want to map to a group.+memberGroup_groupId :: Lens.Lens' MemberGroup Prelude.Text+memberGroup_groupId = Lens.lens (\MemberGroup' {groupId} -> groupId) (\s@MemberGroup' {} a -> s {groupId = a} :: MemberGroup)++instance Prelude.Hashable MemberGroup where+  hashWithSalt _salt MemberGroup' {..} =+    _salt+      `Prelude.hashWithSalt` dataSourceId+      `Prelude.hashWithSalt` groupId++instance Prelude.NFData MemberGroup where+  rnf MemberGroup' {..} =+    Prelude.rnf dataSourceId+      `Prelude.seq` Prelude.rnf groupId++instance Data.ToJSON MemberGroup where+  toJSON MemberGroup' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataSourceId" Data..=) Prelude.<$> dataSourceId,+            Prelude.Just ("GroupId" Data..= groupId)+          ]+      )
+ gen/Amazonka/Kendra/Types/MemberUser.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.Kendra.Types.MemberUser+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.MemberUser 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 users that belong to a group.+--+-- /See:/ 'newMemberUser' smart constructor.+data MemberUser = MemberUser'+  { -- | The identifier of the user you want to map to a group.+    userId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MemberUser' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'userId', 'memberUser_userId' - The identifier of the user you want to map to a group.+newMemberUser ::+  -- | 'userId'+  Prelude.Text ->+  MemberUser+newMemberUser pUserId_ =+  MemberUser' {userId = pUserId_}++-- | The identifier of the user you want to map to a group.+memberUser_userId :: Lens.Lens' MemberUser Prelude.Text+memberUser_userId = Lens.lens (\MemberUser' {userId} -> userId) (\s@MemberUser' {} a -> s {userId = a} :: MemberUser)++instance Prelude.Hashable MemberUser where+  hashWithSalt _salt MemberUser' {..} =+    _salt `Prelude.hashWithSalt` userId++instance Prelude.NFData MemberUser where+  rnf MemberUser' {..} = Prelude.rnf userId++instance Data.ToJSON MemberUser where+  toJSON MemberUser' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("UserId" Data..= userId)]+      )
+ gen/Amazonka/Kendra/Types/MetricType.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.MetricType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.MetricType+  ( MetricType+      ( ..,+        MetricType_AGG_QUERY_DOC_METRICS,+        MetricType_DOCS_BY_CLICK_COUNT,+        MetricType_QUERIES_BY_COUNT,+        MetricType_QUERIES_BY_ZERO_CLICK_RATE,+        MetricType_QUERIES_BY_ZERO_RESULT_RATE,+        MetricType_TREND_QUERY_DOC_METRICS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype MetricType = MetricType'+  { fromMetricType ::+      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 MetricType_AGG_QUERY_DOC_METRICS :: MetricType+pattern MetricType_AGG_QUERY_DOC_METRICS = MetricType' "AGG_QUERY_DOC_METRICS"++pattern MetricType_DOCS_BY_CLICK_COUNT :: MetricType+pattern MetricType_DOCS_BY_CLICK_COUNT = MetricType' "DOCS_BY_CLICK_COUNT"++pattern MetricType_QUERIES_BY_COUNT :: MetricType+pattern MetricType_QUERIES_BY_COUNT = MetricType' "QUERIES_BY_COUNT"++pattern MetricType_QUERIES_BY_ZERO_CLICK_RATE :: MetricType+pattern MetricType_QUERIES_BY_ZERO_CLICK_RATE = MetricType' "QUERIES_BY_ZERO_CLICK_RATE"++pattern MetricType_QUERIES_BY_ZERO_RESULT_RATE :: MetricType+pattern MetricType_QUERIES_BY_ZERO_RESULT_RATE = MetricType' "QUERIES_BY_ZERO_RESULT_RATE"++pattern MetricType_TREND_QUERY_DOC_METRICS :: MetricType+pattern MetricType_TREND_QUERY_DOC_METRICS = MetricType' "TREND_QUERY_DOC_METRICS"++{-# COMPLETE+  MetricType_AGG_QUERY_DOC_METRICS,+  MetricType_DOCS_BY_CLICK_COUNT,+  MetricType_QUERIES_BY_COUNT,+  MetricType_QUERIES_BY_ZERO_CLICK_RATE,+  MetricType_QUERIES_BY_ZERO_RESULT_RATE,+  MetricType_TREND_QUERY_DOC_METRICS,+  MetricType'+  #-}
+ gen/Amazonka/Kendra/Types/Mode.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.Kendra.Types.Mode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.Mode+  ( Mode+      ( ..,+        Mode_ENABLED,+        Mode_LEARN_ONLY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Mode = Mode' {fromMode :: 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 Mode_ENABLED :: Mode+pattern Mode_ENABLED = Mode' "ENABLED"++pattern Mode_LEARN_ONLY :: Mode+pattern Mode_LEARN_ONLY = Mode' "LEARN_ONLY"++{-# COMPLETE+  Mode_ENABLED,+  Mode_LEARN_ONLY,+  Mode'+  #-}
+ gen/Amazonka/Kendra/Types/OnPremiseConfiguration.hs view
@@ -0,0 +1,151 @@+{-# 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.Kendra.Types.OnPremiseConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.OnPremiseConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.S3Path+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to GitHub Enterprise+-- Server (on premises).+--+-- /See:/ 'newOnPremiseConfiguration' smart constructor.+data OnPremiseConfiguration = OnPremiseConfiguration'+  { -- | The GitHub host URL or API endpoint URL. For example,+    -- /https:\/\/on-prem-host-url\/api\/v3\//+    hostUrl :: Prelude.Text,+    -- | The name of the organization of the GitHub Enterprise Server+    -- (in-premise) account you want to connect to. You can find your+    -- organization name by logging into GitHub desktop and selecting __Your+    -- organizations__ under your profile picture dropdown.+    organizationName :: Prelude.Text,+    -- | The path to the SSL certificate stored in an Amazon S3 bucket. You use+    -- this to connect to GitHub if you require a secure SSL connection.+    --+    -- You can simply generate a self-signed X509 certificate on any computer+    -- using OpenSSL. For an example of using OpenSSL to create an X509+    -- certificate, see+    -- <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl.html Create and sign an X509 certificate>.+    sslCertificateS3Path :: S3Path+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OnPremiseConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'hostUrl', 'onPremiseConfiguration_hostUrl' - The GitHub host URL or API endpoint URL. For example,+-- /https:\/\/on-prem-host-url\/api\/v3\//+--+-- 'organizationName', 'onPremiseConfiguration_organizationName' - The name of the organization of the GitHub Enterprise Server+-- (in-premise) account you want to connect to. You can find your+-- organization name by logging into GitHub desktop and selecting __Your+-- organizations__ under your profile picture dropdown.+--+-- 'sslCertificateS3Path', 'onPremiseConfiguration_sslCertificateS3Path' - The path to the SSL certificate stored in an Amazon S3 bucket. You use+-- this to connect to GitHub if you require a secure SSL connection.+--+-- You can simply generate a self-signed X509 certificate on any computer+-- using OpenSSL. For an example of using OpenSSL to create an X509+-- certificate, see+-- <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl.html Create and sign an X509 certificate>.+newOnPremiseConfiguration ::+  -- | 'hostUrl'+  Prelude.Text ->+  -- | 'organizationName'+  Prelude.Text ->+  -- | 'sslCertificateS3Path'+  S3Path ->+  OnPremiseConfiguration+newOnPremiseConfiguration+  pHostUrl_+  pOrganizationName_+  pSslCertificateS3Path_ =+    OnPremiseConfiguration'+      { hostUrl = pHostUrl_,+        organizationName = pOrganizationName_,+        sslCertificateS3Path = pSslCertificateS3Path_+      }++-- | The GitHub host URL or API endpoint URL. For example,+-- /https:\/\/on-prem-host-url\/api\/v3\//+onPremiseConfiguration_hostUrl :: Lens.Lens' OnPremiseConfiguration Prelude.Text+onPremiseConfiguration_hostUrl = Lens.lens (\OnPremiseConfiguration' {hostUrl} -> hostUrl) (\s@OnPremiseConfiguration' {} a -> s {hostUrl = a} :: OnPremiseConfiguration)++-- | The name of the organization of the GitHub Enterprise Server+-- (in-premise) account you want to connect to. You can find your+-- organization name by logging into GitHub desktop and selecting __Your+-- organizations__ under your profile picture dropdown.+onPremiseConfiguration_organizationName :: Lens.Lens' OnPremiseConfiguration Prelude.Text+onPremiseConfiguration_organizationName = Lens.lens (\OnPremiseConfiguration' {organizationName} -> organizationName) (\s@OnPremiseConfiguration' {} a -> s {organizationName = a} :: OnPremiseConfiguration)++-- | The path to the SSL certificate stored in an Amazon S3 bucket. You use+-- this to connect to GitHub if you require a secure SSL connection.+--+-- You can simply generate a self-signed X509 certificate on any computer+-- using OpenSSL. For an example of using OpenSSL to create an X509+-- certificate, see+-- <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl.html Create and sign an X509 certificate>.+onPremiseConfiguration_sslCertificateS3Path :: Lens.Lens' OnPremiseConfiguration S3Path+onPremiseConfiguration_sslCertificateS3Path = Lens.lens (\OnPremiseConfiguration' {sslCertificateS3Path} -> sslCertificateS3Path) (\s@OnPremiseConfiguration' {} a -> s {sslCertificateS3Path = a} :: OnPremiseConfiguration)++instance Data.FromJSON OnPremiseConfiguration where+  parseJSON =+    Data.withObject+      "OnPremiseConfiguration"+      ( \x ->+          OnPremiseConfiguration'+            Prelude.<$> (x Data..: "HostUrl")+            Prelude.<*> (x Data..: "OrganizationName")+            Prelude.<*> (x Data..: "SslCertificateS3Path")+      )++instance Prelude.Hashable OnPremiseConfiguration where+  hashWithSalt _salt OnPremiseConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` hostUrl+      `Prelude.hashWithSalt` organizationName+      `Prelude.hashWithSalt` sslCertificateS3Path++instance Prelude.NFData OnPremiseConfiguration where+  rnf OnPremiseConfiguration' {..} =+    Prelude.rnf hostUrl+      `Prelude.seq` Prelude.rnf organizationName+      `Prelude.seq` Prelude.rnf sslCertificateS3Path++instance Data.ToJSON OnPremiseConfiguration where+  toJSON OnPremiseConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("HostUrl" Data..= hostUrl),+            Prelude.Just+              ("OrganizationName" Data..= organizationName),+            Prelude.Just+              ( "SslCertificateS3Path"+                  Data..= sslCertificateS3Path+              )+          ]+      )
+ gen/Amazonka/Kendra/Types/OneDriveConfiguration.hs view
@@ -0,0 +1,250 @@+{-# 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.Kendra.Types.OneDriveConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.OneDriveConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import Amazonka.Kendra.Types.OneDriveUsers+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to OneDrive as your+-- data source.+--+-- /See:/ 'newOneDriveConfiguration' smart constructor.+data OneDriveConfiguration = OneDriveConfiguration'+  { -- | @TRUE@ to disable local groups information.+    disableLocalGroups :: Prelude.Maybe Prelude.Bool,+    -- | A list of regular expression patterns to exclude certain documents in+    -- your OneDrive. Documents that match the patterns are excluded from the+    -- index. Documents that don\'t match the patterns are included in the+    -- index. If a document matches both an inclusion and exclusion pattern,+    -- the exclusion pattern takes precedence and the document isn\'t included+    -- in the index.+    --+    -- The pattern is applied to the file name.+    exclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map OneDrive data+    -- source attributes or field names to Amazon Kendra index field names. To+    -- create custom fields, use the @UpdateIndex@ API before you map to+    -- OneDrive fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The OneDrive data source field names must exist in your OneDrive custom+    -- metadata.+    fieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of regular expression patterns to include certain documents in+    -- your OneDrive. Documents that match the patterns are included in the+    -- index. Documents that don\'t match the patterns are excluded from the+    -- index. If a document matches both an inclusion and exclusion pattern,+    -- the exclusion pattern takes precedence and the document isn\'t included+    -- in the index.+    --+    -- The pattern is applied to the file name.+    inclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | The Azure Active Directory domain of the organization.+    tenantDomain :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an Secrets Managersecret that contains+    -- the user name and password to connect to OneDrive. The user namd should+    -- be the application ID for the OneDrive application, and the password is+    -- the application key for the OneDrive application.+    secretArn :: Prelude.Text,+    -- | A list of user accounts whose documents should be indexed.+    oneDriveUsers :: OneDriveUsers+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OneDriveConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'disableLocalGroups', 'oneDriveConfiguration_disableLocalGroups' - @TRUE@ to disable local groups information.+--+-- 'exclusionPatterns', 'oneDriveConfiguration_exclusionPatterns' - A list of regular expression patterns to exclude certain documents in+-- your OneDrive. Documents that match the patterns are excluded from the+-- index. Documents that don\'t match the patterns are included in the+-- index. If a document matches both an inclusion and exclusion pattern,+-- the exclusion pattern takes precedence and the document isn\'t included+-- in the index.+--+-- The pattern is applied to the file name.+--+-- 'fieldMappings', 'oneDriveConfiguration_fieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map OneDrive data+-- source attributes or field names to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to+-- OneDrive fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The OneDrive data source field names must exist in your OneDrive custom+-- metadata.+--+-- 'inclusionPatterns', 'oneDriveConfiguration_inclusionPatterns' - A list of regular expression patterns to include certain documents in+-- your OneDrive. Documents that match the patterns are included in the+-- index. Documents that don\'t match the patterns are excluded from the+-- index. If a document matches both an inclusion and exclusion pattern,+-- the exclusion pattern takes precedence and the document isn\'t included+-- in the index.+--+-- The pattern is applied to the file name.+--+-- 'tenantDomain', 'oneDriveConfiguration_tenantDomain' - The Azure Active Directory domain of the organization.+--+-- 'secretArn', 'oneDriveConfiguration_secretArn' - The Amazon Resource Name (ARN) of an Secrets Managersecret that contains+-- the user name and password to connect to OneDrive. The user namd should+-- be the application ID for the OneDrive application, and the password is+-- the application key for the OneDrive application.+--+-- 'oneDriveUsers', 'oneDriveConfiguration_oneDriveUsers' - A list of user accounts whose documents should be indexed.+newOneDriveConfiguration ::+  -- | 'tenantDomain'+  Prelude.Text ->+  -- | 'secretArn'+  Prelude.Text ->+  -- | 'oneDriveUsers'+  OneDriveUsers ->+  OneDriveConfiguration+newOneDriveConfiguration+  pTenantDomain_+  pSecretArn_+  pOneDriveUsers_ =+    OneDriveConfiguration'+      { disableLocalGroups =+          Prelude.Nothing,+        exclusionPatterns = Prelude.Nothing,+        fieldMappings = Prelude.Nothing,+        inclusionPatterns = Prelude.Nothing,+        tenantDomain = pTenantDomain_,+        secretArn = pSecretArn_,+        oneDriveUsers = pOneDriveUsers_+      }++-- | @TRUE@ to disable local groups information.+oneDriveConfiguration_disableLocalGroups :: Lens.Lens' OneDriveConfiguration (Prelude.Maybe Prelude.Bool)+oneDriveConfiguration_disableLocalGroups = Lens.lens (\OneDriveConfiguration' {disableLocalGroups} -> disableLocalGroups) (\s@OneDriveConfiguration' {} a -> s {disableLocalGroups = a} :: OneDriveConfiguration)++-- | A list of regular expression patterns to exclude certain documents in+-- your OneDrive. Documents that match the patterns are excluded from the+-- index. Documents that don\'t match the patterns are included in the+-- index. If a document matches both an inclusion and exclusion pattern,+-- the exclusion pattern takes precedence and the document isn\'t included+-- in the index.+--+-- The pattern is applied to the file name.+oneDriveConfiguration_exclusionPatterns :: Lens.Lens' OneDriveConfiguration (Prelude.Maybe [Prelude.Text])+oneDriveConfiguration_exclusionPatterns = Lens.lens (\OneDriveConfiguration' {exclusionPatterns} -> exclusionPatterns) (\s@OneDriveConfiguration' {} a -> s {exclusionPatterns = a} :: OneDriveConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of @DataSourceToIndexFieldMapping@ objects that map OneDrive data+-- source attributes or field names to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to+-- OneDrive fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The OneDrive data source field names must exist in your OneDrive custom+-- metadata.+oneDriveConfiguration_fieldMappings :: Lens.Lens' OneDriveConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+oneDriveConfiguration_fieldMappings = Lens.lens (\OneDriveConfiguration' {fieldMappings} -> fieldMappings) (\s@OneDriveConfiguration' {} a -> s {fieldMappings = a} :: OneDriveConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to include certain documents in+-- your OneDrive. Documents that match the patterns are included in the+-- index. Documents that don\'t match the patterns are excluded from the+-- index. If a document matches both an inclusion and exclusion pattern,+-- the exclusion pattern takes precedence and the document isn\'t included+-- in the index.+--+-- The pattern is applied to the file name.+oneDriveConfiguration_inclusionPatterns :: Lens.Lens' OneDriveConfiguration (Prelude.Maybe [Prelude.Text])+oneDriveConfiguration_inclusionPatterns = Lens.lens (\OneDriveConfiguration' {inclusionPatterns} -> inclusionPatterns) (\s@OneDriveConfiguration' {} a -> s {inclusionPatterns = a} :: OneDriveConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The Azure Active Directory domain of the organization.+oneDriveConfiguration_tenantDomain :: Lens.Lens' OneDriveConfiguration Prelude.Text+oneDriveConfiguration_tenantDomain = Lens.lens (\OneDriveConfiguration' {tenantDomain} -> tenantDomain) (\s@OneDriveConfiguration' {} a -> s {tenantDomain = a} :: OneDriveConfiguration)++-- | The Amazon Resource Name (ARN) of an Secrets Managersecret that contains+-- the user name and password to connect to OneDrive. The user namd should+-- be the application ID for the OneDrive application, and the password is+-- the application key for the OneDrive application.+oneDriveConfiguration_secretArn :: Lens.Lens' OneDriveConfiguration Prelude.Text+oneDriveConfiguration_secretArn = Lens.lens (\OneDriveConfiguration' {secretArn} -> secretArn) (\s@OneDriveConfiguration' {} a -> s {secretArn = a} :: OneDriveConfiguration)++-- | A list of user accounts whose documents should be indexed.+oneDriveConfiguration_oneDriveUsers :: Lens.Lens' OneDriveConfiguration OneDriveUsers+oneDriveConfiguration_oneDriveUsers = Lens.lens (\OneDriveConfiguration' {oneDriveUsers} -> oneDriveUsers) (\s@OneDriveConfiguration' {} a -> s {oneDriveUsers = a} :: OneDriveConfiguration)++instance Data.FromJSON OneDriveConfiguration where+  parseJSON =+    Data.withObject+      "OneDriveConfiguration"+      ( \x ->+          OneDriveConfiguration'+            Prelude.<$> (x Data..:? "DisableLocalGroups")+            Prelude.<*> ( x+                            Data..:? "ExclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "FieldMappings")+            Prelude.<*> ( x+                            Data..:? "InclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "TenantDomain")+            Prelude.<*> (x Data..: "SecretArn")+            Prelude.<*> (x Data..: "OneDriveUsers")+      )++instance Prelude.Hashable OneDriveConfiguration where+  hashWithSalt _salt OneDriveConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` disableLocalGroups+      `Prelude.hashWithSalt` exclusionPatterns+      `Prelude.hashWithSalt` fieldMappings+      `Prelude.hashWithSalt` inclusionPatterns+      `Prelude.hashWithSalt` tenantDomain+      `Prelude.hashWithSalt` secretArn+      `Prelude.hashWithSalt` oneDriveUsers++instance Prelude.NFData OneDriveConfiguration where+  rnf OneDriveConfiguration' {..} =+    Prelude.rnf disableLocalGroups+      `Prelude.seq` Prelude.rnf exclusionPatterns+      `Prelude.seq` Prelude.rnf fieldMappings+      `Prelude.seq` Prelude.rnf inclusionPatterns+      `Prelude.seq` Prelude.rnf tenantDomain+      `Prelude.seq` Prelude.rnf secretArn+      `Prelude.seq` Prelude.rnf oneDriveUsers++instance Data.ToJSON OneDriveConfiguration where+  toJSON OneDriveConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DisableLocalGroups" Data..=)+              Prelude.<$> disableLocalGroups,+            ("ExclusionPatterns" Data..=)+              Prelude.<$> exclusionPatterns,+            ("FieldMappings" Data..=) Prelude.<$> fieldMappings,+            ("InclusionPatterns" Data..=)+              Prelude.<$> inclusionPatterns,+            Prelude.Just ("TenantDomain" Data..= tenantDomain),+            Prelude.Just ("SecretArn" Data..= secretArn),+            Prelude.Just+              ("OneDriveUsers" Data..= oneDriveUsers)+          ]+      )
+ gen/Amazonka/Kendra/Types/OneDriveUsers.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.OneDriveUsers+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.OneDriveUsers where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.S3Path+import qualified Amazonka.Prelude as Prelude++-- | User accounts whose documents should be indexed.+--+-- /See:/ 'newOneDriveUsers' smart constructor.+data OneDriveUsers = OneDriveUsers'+  { -- | A list of users whose documents should be indexed. Specify the user+    -- names in email format, for example, @username\@tenantdomain@. If you+    -- need to index the documents of more than 100 users, use the+    -- @OneDriveUserS3Path@ field to specify the location of a file containing+    -- a list of users.+    oneDriveUserList :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The S3 bucket location of a file containing a list of users whose+    -- documents should be indexed.+    oneDriveUserS3Path :: Prelude.Maybe S3Path+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'OneDriveUsers' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'oneDriveUserList', 'oneDriveUsers_oneDriveUserList' - A list of users whose documents should be indexed. Specify the user+-- names in email format, for example, @username\@tenantdomain@. If you+-- need to index the documents of more than 100 users, use the+-- @OneDriveUserS3Path@ field to specify the location of a file containing+-- a list of users.+--+-- 'oneDriveUserS3Path', 'oneDriveUsers_oneDriveUserS3Path' - The S3 bucket location of a file containing a list of users whose+-- documents should be indexed.+newOneDriveUsers ::+  OneDriveUsers+newOneDriveUsers =+  OneDriveUsers'+    { oneDriveUserList = Prelude.Nothing,+      oneDriveUserS3Path = Prelude.Nothing+    }++-- | A list of users whose documents should be indexed. Specify the user+-- names in email format, for example, @username\@tenantdomain@. If you+-- need to index the documents of more than 100 users, use the+-- @OneDriveUserS3Path@ field to specify the location of a file containing+-- a list of users.+oneDriveUsers_oneDriveUserList :: Lens.Lens' OneDriveUsers (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+oneDriveUsers_oneDriveUserList = Lens.lens (\OneDriveUsers' {oneDriveUserList} -> oneDriveUserList) (\s@OneDriveUsers' {} a -> s {oneDriveUserList = a} :: OneDriveUsers) Prelude.. Lens.mapping Lens.coerced++-- | The S3 bucket location of a file containing a list of users whose+-- documents should be indexed.+oneDriveUsers_oneDriveUserS3Path :: Lens.Lens' OneDriveUsers (Prelude.Maybe S3Path)+oneDriveUsers_oneDriveUserS3Path = Lens.lens (\OneDriveUsers' {oneDriveUserS3Path} -> oneDriveUserS3Path) (\s@OneDriveUsers' {} a -> s {oneDriveUserS3Path = a} :: OneDriveUsers)++instance Data.FromJSON OneDriveUsers where+  parseJSON =+    Data.withObject+      "OneDriveUsers"+      ( \x ->+          OneDriveUsers'+            Prelude.<$> (x Data..:? "OneDriveUserList")+            Prelude.<*> (x Data..:? "OneDriveUserS3Path")+      )++instance Prelude.Hashable OneDriveUsers where+  hashWithSalt _salt OneDriveUsers' {..} =+    _salt+      `Prelude.hashWithSalt` oneDriveUserList+      `Prelude.hashWithSalt` oneDriveUserS3Path++instance Prelude.NFData OneDriveUsers where+  rnf OneDriveUsers' {..} =+    Prelude.rnf oneDriveUserList+      `Prelude.seq` Prelude.rnf oneDriveUserS3Path++instance Data.ToJSON OneDriveUsers where+  toJSON OneDriveUsers' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("OneDriveUserList" Data..=)+              Prelude.<$> oneDriveUserList,+            ("OneDriveUserS3Path" Data..=)+              Prelude.<$> oneDriveUserS3Path+          ]+      )
+ gen/Amazonka/Kendra/Types/Order.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.Kendra.Types.Order+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.Order+  ( Order+      ( ..,+        Order_ASCENDING,+        Order_DESCENDING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Order = Order' {fromOrder :: 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 Order_ASCENDING :: Order+pattern Order_ASCENDING = Order' "ASCENDING"++pattern Order_DESCENDING :: Order+pattern Order_DESCENDING = Order' "DESCENDING"++{-# COMPLETE+  Order_ASCENDING,+  Order_DESCENDING,+  Order'+  #-}
+ gen/Amazonka/Kendra/Types/Persona.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.Kendra.Types.Persona+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.Persona+  ( Persona+      ( ..,+        Persona_OWNER,+        Persona_VIEWER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Persona = Persona' {fromPersona :: 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 Persona_OWNER :: Persona+pattern Persona_OWNER = Persona' "OWNER"++pattern Persona_VIEWER :: Persona+pattern Persona_VIEWER = Persona' "VIEWER"++{-# COMPLETE+  Persona_OWNER,+  Persona_VIEWER,+  Persona'+  #-}
+ gen/Amazonka/Kendra/Types/PersonasSummary.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.Kendra.Types.PersonasSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.PersonasSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.Persona+import qualified Amazonka.Prelude as Prelude++-- | Summary information for users or groups in your IAM Identity Center+-- identity source. This applies to users and groups with specific+-- permissions that define their level of access to your Amazon Kendra+-- experience. You can create an Amazon Kendra experience such as a search+-- application. For more information on creating a search application+-- experience, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html Building a search experience with no code>.+--+-- /See:/ 'newPersonasSummary' smart constructor.+data PersonasSummary = PersonasSummary'+  { -- | The date-time the summary information was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The identifier of a user or group in your IAM Identity Center identity+    -- source. For example, a user ID could be an email.+    entityId :: Prelude.Maybe Prelude.Text,+    -- | The persona that defines the specific permissions of the user or group+    -- in your IAM Identity Center identity source. The available personas or+    -- access roles are @Owner@ and @Viewer@. For more information on these+    -- personas, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html#access-search-experience Providing access to your search page>.+    persona :: Prelude.Maybe Persona,+    -- | The date-time the summary information was last updated.+    updatedAt :: Prelude.Maybe Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PersonasSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdAt', 'personasSummary_createdAt' - The date-time the summary information was created.+--+-- 'entityId', 'personasSummary_entityId' - The identifier of a user or group in your IAM Identity Center identity+-- source. For example, a user ID could be an email.+--+-- 'persona', 'personasSummary_persona' - The persona that defines the specific permissions of the user or group+-- in your IAM Identity Center identity source. The available personas or+-- access roles are @Owner@ and @Viewer@. For more information on these+-- personas, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html#access-search-experience Providing access to your search page>.+--+-- 'updatedAt', 'personasSummary_updatedAt' - The date-time the summary information was last updated.+newPersonasSummary ::+  PersonasSummary+newPersonasSummary =+  PersonasSummary'+    { createdAt = Prelude.Nothing,+      entityId = Prelude.Nothing,+      persona = Prelude.Nothing,+      updatedAt = Prelude.Nothing+    }++-- | The date-time the summary information was created.+personasSummary_createdAt :: Lens.Lens' PersonasSummary (Prelude.Maybe Prelude.UTCTime)+personasSummary_createdAt = Lens.lens (\PersonasSummary' {createdAt} -> createdAt) (\s@PersonasSummary' {} a -> s {createdAt = a} :: PersonasSummary) Prelude.. Lens.mapping Data._Time++-- | The identifier of a user or group in your IAM Identity Center identity+-- source. For example, a user ID could be an email.+personasSummary_entityId :: Lens.Lens' PersonasSummary (Prelude.Maybe Prelude.Text)+personasSummary_entityId = Lens.lens (\PersonasSummary' {entityId} -> entityId) (\s@PersonasSummary' {} a -> s {entityId = a} :: PersonasSummary)++-- | The persona that defines the specific permissions of the user or group+-- in your IAM Identity Center identity source. The available personas or+-- access roles are @Owner@ and @Viewer@. For more information on these+-- personas, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html#access-search-experience Providing access to your search page>.+personasSummary_persona :: Lens.Lens' PersonasSummary (Prelude.Maybe Persona)+personasSummary_persona = Lens.lens (\PersonasSummary' {persona} -> persona) (\s@PersonasSummary' {} a -> s {persona = a} :: PersonasSummary)++-- | The date-time the summary information was last updated.+personasSummary_updatedAt :: Lens.Lens' PersonasSummary (Prelude.Maybe Prelude.UTCTime)+personasSummary_updatedAt = Lens.lens (\PersonasSummary' {updatedAt} -> updatedAt) (\s@PersonasSummary' {} a -> s {updatedAt = a} :: PersonasSummary) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON PersonasSummary where+  parseJSON =+    Data.withObject+      "PersonasSummary"+      ( \x ->+          PersonasSummary'+            Prelude.<$> (x Data..:? "CreatedAt")+            Prelude.<*> (x Data..:? "EntityId")+            Prelude.<*> (x Data..:? "Persona")+            Prelude.<*> (x Data..:? "UpdatedAt")+      )++instance Prelude.Hashable PersonasSummary where+  hashWithSalt _salt PersonasSummary' {..} =+    _salt+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` entityId+      `Prelude.hashWithSalt` persona+      `Prelude.hashWithSalt` updatedAt++instance Prelude.NFData PersonasSummary where+  rnf PersonasSummary' {..} =+    Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf entityId+      `Prelude.seq` Prelude.rnf persona+      `Prelude.seq` Prelude.rnf updatedAt
+ gen/Amazonka/Kendra/Types/Principal.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.Kendra.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.Kendra.Types.Principal where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.PrincipalType+import Amazonka.Kendra.Types.ReadAccessType+import qualified Amazonka.Prelude as Prelude++-- | Provides user and group information for+-- <https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html user context filtering>.+--+-- /See:/ 'newPrincipal' smart constructor.+data Principal = Principal'+  { -- | The identifier of the data source the principal should access documents+    -- from.+    dataSourceId :: Prelude.Maybe Prelude.Text,+    -- | The name of the user or group.+    name :: Prelude.Text,+    -- | The type of principal.+    type' :: PrincipalType,+    -- | Whether to allow or deny document access to the principal.+    access :: ReadAccessType+  }+  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:+--+-- 'dataSourceId', 'principal_dataSourceId' - The identifier of the data source the principal should access documents+-- from.+--+-- 'name', 'principal_name' - The name of the user or group.+--+-- 'type'', 'principal_type' - The type of principal.+--+-- 'access', 'principal_access' - Whether to allow or deny document access to the principal.+newPrincipal ::+  -- | 'name'+  Prelude.Text ->+  -- | 'type''+  PrincipalType ->+  -- | 'access'+  ReadAccessType ->+  Principal+newPrincipal pName_ pType_ pAccess_ =+  Principal'+    { dataSourceId = Prelude.Nothing,+      name = pName_,+      type' = pType_,+      access = pAccess_+    }++-- | The identifier of the data source the principal should access documents+-- from.+principal_dataSourceId :: Lens.Lens' Principal (Prelude.Maybe Prelude.Text)+principal_dataSourceId = Lens.lens (\Principal' {dataSourceId} -> dataSourceId) (\s@Principal' {} a -> s {dataSourceId = a} :: Principal)++-- | The name of the user or group.+principal_name :: Lens.Lens' Principal Prelude.Text+principal_name = Lens.lens (\Principal' {name} -> name) (\s@Principal' {} a -> s {name = a} :: Principal)++-- | The type of principal.+principal_type :: Lens.Lens' Principal PrincipalType+principal_type = Lens.lens (\Principal' {type'} -> type') (\s@Principal' {} a -> s {type' = a} :: Principal)++-- | Whether to allow or deny document access to the principal.+principal_access :: Lens.Lens' Principal ReadAccessType+principal_access = Lens.lens (\Principal' {access} -> access) (\s@Principal' {} a -> s {access = a} :: Principal)++instance Data.FromJSON Principal where+  parseJSON =+    Data.withObject+      "Principal"+      ( \x ->+          Principal'+            Prelude.<$> (x Data..:? "DataSourceId")+            Prelude.<*> (x Data..: "Name")+            Prelude.<*> (x Data..: "Type")+            Prelude.<*> (x Data..: "Access")+      )++instance Prelude.Hashable Principal where+  hashWithSalt _salt Principal' {..} =+    _salt+      `Prelude.hashWithSalt` dataSourceId+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` access++instance Prelude.NFData Principal where+  rnf Principal' {..} =+    Prelude.rnf dataSourceId+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf access++instance Data.ToJSON Principal where+  toJSON Principal' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataSourceId" Data..=) Prelude.<$> dataSourceId,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("Type" Data..= type'),+            Prelude.Just ("Access" Data..= access)+          ]+      )
+ gen/Amazonka/Kendra/Types/PrincipalMappingStatus.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.Kendra.Types.PrincipalMappingStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.PrincipalMappingStatus+  ( PrincipalMappingStatus+      ( ..,+        PrincipalMappingStatus_DELETED,+        PrincipalMappingStatus_DELETING,+        PrincipalMappingStatus_FAILED,+        PrincipalMappingStatus_PROCESSING,+        PrincipalMappingStatus_SUCCEEDED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PrincipalMappingStatus = PrincipalMappingStatus'+  { fromPrincipalMappingStatus ::+      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 PrincipalMappingStatus_DELETED :: PrincipalMappingStatus+pattern PrincipalMappingStatus_DELETED = PrincipalMappingStatus' "DELETED"++pattern PrincipalMappingStatus_DELETING :: PrincipalMappingStatus+pattern PrincipalMappingStatus_DELETING = PrincipalMappingStatus' "DELETING"++pattern PrincipalMappingStatus_FAILED :: PrincipalMappingStatus+pattern PrincipalMappingStatus_FAILED = PrincipalMappingStatus' "FAILED"++pattern PrincipalMappingStatus_PROCESSING :: PrincipalMappingStatus+pattern PrincipalMappingStatus_PROCESSING = PrincipalMappingStatus' "PROCESSING"++pattern PrincipalMappingStatus_SUCCEEDED :: PrincipalMappingStatus+pattern PrincipalMappingStatus_SUCCEEDED = PrincipalMappingStatus' "SUCCEEDED"++{-# COMPLETE+  PrincipalMappingStatus_DELETED,+  PrincipalMappingStatus_DELETING,+  PrincipalMappingStatus_FAILED,+  PrincipalMappingStatus_PROCESSING,+  PrincipalMappingStatus_SUCCEEDED,+  PrincipalMappingStatus'+  #-}
+ gen/Amazonka/Kendra/Types/PrincipalType.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.Kendra.Types.PrincipalType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.PrincipalType+  ( PrincipalType+      ( ..,+        PrincipalType_GROUP,+        PrincipalType_USER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PrincipalType = PrincipalType'+  { fromPrincipalType ::+      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 PrincipalType_GROUP :: PrincipalType+pattern PrincipalType_GROUP = PrincipalType' "GROUP"++pattern PrincipalType_USER :: PrincipalType+pattern PrincipalType_USER = PrincipalType' "USER"++{-# COMPLETE+  PrincipalType_GROUP,+  PrincipalType_USER,+  PrincipalType'+  #-}
+ gen/Amazonka/Kendra/Types/ProxyConfiguration.hs view
@@ -0,0 +1,153 @@+{-# 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.Kendra.Types.ProxyConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ProxyConfiguration 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 configuration information for a web proxy to connect to+-- website hosts.+--+-- /See:/ 'newProxyConfiguration' smart constructor.+data ProxyConfiguration = ProxyConfiguration'+  { -- | Your secret ARN, which you can create in+    -- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html Secrets Manager>+    --+    -- The credentials are optional. You use a secret if web proxy credentials+    -- are required to connect to a website host. Amazon Kendra currently+    -- support basic authentication to connect to a web proxy server. The+    -- secret stores your credentials.+    credentials :: Prelude.Maybe Prelude.Text,+    -- | The name of the website host you want to connect to via a web proxy+    -- server.+    --+    -- For example, the host name of https:\/\/a.example.com\/page1.html is+    -- \"a.example.com\".+    host :: Prelude.Text,+    -- | The port number of the website host you want to connect to via a web+    -- proxy server.+    --+    -- For example, the port for https:\/\/a.example.com\/page1.html is 443,+    -- the standard port for HTTPS.+    port :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProxyConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'credentials', 'proxyConfiguration_credentials' - Your secret ARN, which you can create in+-- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html Secrets Manager>+--+-- The credentials are optional. You use a secret if web proxy credentials+-- are required to connect to a website host. Amazon Kendra currently+-- support basic authentication to connect to a web proxy server. The+-- secret stores your credentials.+--+-- 'host', 'proxyConfiguration_host' - The name of the website host you want to connect to via a web proxy+-- server.+--+-- For example, the host name of https:\/\/a.example.com\/page1.html is+-- \"a.example.com\".+--+-- 'port', 'proxyConfiguration_port' - The port number of the website host you want to connect to via a web+-- proxy server.+--+-- For example, the port for https:\/\/a.example.com\/page1.html is 443,+-- the standard port for HTTPS.+newProxyConfiguration ::+  -- | 'host'+  Prelude.Text ->+  -- | 'port'+  Prelude.Natural ->+  ProxyConfiguration+newProxyConfiguration pHost_ pPort_ =+  ProxyConfiguration'+    { credentials = Prelude.Nothing,+      host = pHost_,+      port = pPort_+    }++-- | Your secret ARN, which you can create in+-- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html Secrets Manager>+--+-- The credentials are optional. You use a secret if web proxy credentials+-- are required to connect to a website host. Amazon Kendra currently+-- support basic authentication to connect to a web proxy server. The+-- secret stores your credentials.+proxyConfiguration_credentials :: Lens.Lens' ProxyConfiguration (Prelude.Maybe Prelude.Text)+proxyConfiguration_credentials = Lens.lens (\ProxyConfiguration' {credentials} -> credentials) (\s@ProxyConfiguration' {} a -> s {credentials = a} :: ProxyConfiguration)++-- | The name of the website host you want to connect to via a web proxy+-- server.+--+-- For example, the host name of https:\/\/a.example.com\/page1.html is+-- \"a.example.com\".+proxyConfiguration_host :: Lens.Lens' ProxyConfiguration Prelude.Text+proxyConfiguration_host = Lens.lens (\ProxyConfiguration' {host} -> host) (\s@ProxyConfiguration' {} a -> s {host = a} :: ProxyConfiguration)++-- | The port number of the website host you want to connect to via a web+-- proxy server.+--+-- For example, the port for https:\/\/a.example.com\/page1.html is 443,+-- the standard port for HTTPS.+proxyConfiguration_port :: Lens.Lens' ProxyConfiguration Prelude.Natural+proxyConfiguration_port = Lens.lens (\ProxyConfiguration' {port} -> port) (\s@ProxyConfiguration' {} a -> s {port = a} :: ProxyConfiguration)++instance Data.FromJSON ProxyConfiguration where+  parseJSON =+    Data.withObject+      "ProxyConfiguration"+      ( \x ->+          ProxyConfiguration'+            Prelude.<$> (x Data..:? "Credentials")+            Prelude.<*> (x Data..: "Host")+            Prelude.<*> (x Data..: "Port")+      )++instance Prelude.Hashable ProxyConfiguration where+  hashWithSalt _salt ProxyConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` credentials+      `Prelude.hashWithSalt` host+      `Prelude.hashWithSalt` port++instance Prelude.NFData ProxyConfiguration where+  rnf ProxyConfiguration' {..} =+    Prelude.rnf credentials+      `Prelude.seq` Prelude.rnf host+      `Prelude.seq` Prelude.rnf port++instance Data.ToJSON ProxyConfiguration where+  toJSON ProxyConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Credentials" Data..=) Prelude.<$> credentials,+            Prelude.Just ("Host" Data..= host),+            Prelude.Just ("Port" Data..= port)+          ]+      )
+ gen/Amazonka/Kendra/Types/QueryIdentifiersEnclosingOption.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.Kendra.Types.QueryIdentifiersEnclosingOption+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.QueryIdentifiersEnclosingOption+  ( QueryIdentifiersEnclosingOption+      ( ..,+        QueryIdentifiersEnclosingOption_DOUBLE_QUOTES,+        QueryIdentifiersEnclosingOption_NONE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype QueryIdentifiersEnclosingOption = QueryIdentifiersEnclosingOption'+  { fromQueryIdentifiersEnclosingOption ::+      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 QueryIdentifiersEnclosingOption_DOUBLE_QUOTES :: QueryIdentifiersEnclosingOption+pattern QueryIdentifiersEnclosingOption_DOUBLE_QUOTES = QueryIdentifiersEnclosingOption' "DOUBLE_QUOTES"++pattern QueryIdentifiersEnclosingOption_NONE :: QueryIdentifiersEnclosingOption+pattern QueryIdentifiersEnclosingOption_NONE = QueryIdentifiersEnclosingOption' "NONE"++{-# COMPLETE+  QueryIdentifiersEnclosingOption_DOUBLE_QUOTES,+  QueryIdentifiersEnclosingOption_NONE,+  QueryIdentifiersEnclosingOption'+  #-}
+ gen/Amazonka/Kendra/Types/QueryResultFormat.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.Kendra.Types.QueryResultFormat+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.QueryResultFormat+  ( QueryResultFormat+      ( ..,+        QueryResultFormat_TABLE,+        QueryResultFormat_TEXT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype QueryResultFormat = QueryResultFormat'+  { fromQueryResultFormat ::+      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 QueryResultFormat_TABLE :: QueryResultFormat+pattern QueryResultFormat_TABLE = QueryResultFormat' "TABLE"++pattern QueryResultFormat_TEXT :: QueryResultFormat+pattern QueryResultFormat_TEXT = QueryResultFormat' "TEXT"++{-# COMPLETE+  QueryResultFormat_TABLE,+  QueryResultFormat_TEXT,+  QueryResultFormat'+  #-}
+ gen/Amazonka/Kendra/Types/QueryResultItem.hs view
@@ -0,0 +1,283 @@+{-# 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.Kendra.Types.QueryResultItem+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.QueryResultItem where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.AdditionalResultAttribute+import Amazonka.Kendra.Types.DocumentAttribute+import Amazonka.Kendra.Types.QueryResultFormat+import Amazonka.Kendra.Types.QueryResultType+import Amazonka.Kendra.Types.ScoreAttributes+import Amazonka.Kendra.Types.TableExcerpt+import Amazonka.Kendra.Types.TextWithHighlights+import qualified Amazonka.Prelude as Prelude++-- | A single query result.+--+-- A query result contains information about a document returned by the+-- query. This includes the original location of the document, a list of+-- attributes assigned to the document, and relevant text from the document+-- that satisfies the query.+--+-- /See:/ 'newQueryResultItem' smart constructor.+data QueryResultItem = QueryResultItem'+  { -- | One or more additional attributes associated with the query result.+    additionalAttributes :: Prelude.Maybe [AdditionalResultAttribute],+    -- | An array of document attributes assigned to a document in the search+    -- results. For example, the document author (@_author@) or the source URI+    -- (@_source_uri@) of the document.+    documentAttributes :: Prelude.Maybe [DocumentAttribute],+    -- | An extract of the text in the document. Contains information about+    -- highlighting the relevant terms in the excerpt.+    documentExcerpt :: Prelude.Maybe TextWithHighlights,+    -- | The identifier for the document.+    documentId :: Prelude.Maybe Prelude.Text,+    -- | The title of the document. Contains the text of the title and+    -- information for highlighting the relevant terms in the title.+    documentTitle :: Prelude.Maybe TextWithHighlights,+    -- | The URI of the original location of the document.+    documentURI :: Prelude.Maybe Prelude.Text,+    -- | A token that identifies a particular result from a particular query. Use+    -- this token to provide click-through feedback for the result. For more+    -- information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/submitting-feedback.html Submitting feedback>+    -- .+    feedbackToken :: Prelude.Maybe Prelude.Text,+    -- | If the @Type@ of document within the response is @ANSWER@, then it is+    -- either a @TABLE@ answer or @TEXT@ answer. If it\'s a table answer, a+    -- table excerpt is returned in @TableExcerpt@. If it\'s a text answer, a+    -- text excerpt is returned in @DocumentExcerpt@.+    format :: Prelude.Maybe QueryResultFormat,+    -- | The identifier for the query result.+    id :: Prelude.Maybe Prelude.Text,+    -- | Indicates the confidence that Amazon Kendra has that a result matches+    -- the query that you provided. Each result is placed into a bin that+    -- indicates the confidence, @VERY_HIGH@, @HIGH@, @MEDIUM@ and @LOW@. You+    -- can use the score to determine if a response meets the confidence needed+    -- for your application.+    --+    -- The field is only set to @LOW@ when the @Type@ field is set to+    -- @DOCUMENT@ and Amazon Kendra is not confident that the result matches+    -- the query.+    scoreAttributes :: Prelude.Maybe ScoreAttributes,+    -- | An excerpt from a table within a document.+    tableExcerpt :: Prelude.Maybe TableExcerpt,+    -- | The type of document within the response. For example, a response could+    -- include a question-answer that\'s relevant to the query.+    type' :: Prelude.Maybe QueryResultType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'QueryResultItem' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'additionalAttributes', 'queryResultItem_additionalAttributes' - One or more additional attributes associated with the query result.+--+-- 'documentAttributes', 'queryResultItem_documentAttributes' - An array of document attributes assigned to a document in the search+-- results. For example, the document author (@_author@) or the source URI+-- (@_source_uri@) of the document.+--+-- 'documentExcerpt', 'queryResultItem_documentExcerpt' - An extract of the text in the document. Contains information about+-- highlighting the relevant terms in the excerpt.+--+-- 'documentId', 'queryResultItem_documentId' - The identifier for the document.+--+-- 'documentTitle', 'queryResultItem_documentTitle' - The title of the document. Contains the text of the title and+-- information for highlighting the relevant terms in the title.+--+-- 'documentURI', 'queryResultItem_documentURI' - The URI of the original location of the document.+--+-- 'feedbackToken', 'queryResultItem_feedbackToken' - A token that identifies a particular result from a particular query. Use+-- this token to provide click-through feedback for the result. For more+-- information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/submitting-feedback.html Submitting feedback>+-- .+--+-- 'format', 'queryResultItem_format' - If the @Type@ of document within the response is @ANSWER@, then it is+-- either a @TABLE@ answer or @TEXT@ answer. If it\'s a table answer, a+-- table excerpt is returned in @TableExcerpt@. If it\'s a text answer, a+-- text excerpt is returned in @DocumentExcerpt@.+--+-- 'id', 'queryResultItem_id' - The identifier for the query result.+--+-- 'scoreAttributes', 'queryResultItem_scoreAttributes' - Indicates the confidence that Amazon Kendra has that a result matches+-- the query that you provided. Each result is placed into a bin that+-- indicates the confidence, @VERY_HIGH@, @HIGH@, @MEDIUM@ and @LOW@. You+-- can use the score to determine if a response meets the confidence needed+-- for your application.+--+-- The field is only set to @LOW@ when the @Type@ field is set to+-- @DOCUMENT@ and Amazon Kendra is not confident that the result matches+-- the query.+--+-- 'tableExcerpt', 'queryResultItem_tableExcerpt' - An excerpt from a table within a document.+--+-- 'type'', 'queryResultItem_type' - The type of document within the response. For example, a response could+-- include a question-answer that\'s relevant to the query.+newQueryResultItem ::+  QueryResultItem+newQueryResultItem =+  QueryResultItem'+    { additionalAttributes =+        Prelude.Nothing,+      documentAttributes = Prelude.Nothing,+      documentExcerpt = Prelude.Nothing,+      documentId = Prelude.Nothing,+      documentTitle = Prelude.Nothing,+      documentURI = Prelude.Nothing,+      feedbackToken = Prelude.Nothing,+      format = Prelude.Nothing,+      id = Prelude.Nothing,+      scoreAttributes = Prelude.Nothing,+      tableExcerpt = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | One or more additional attributes associated with the query result.+queryResultItem_additionalAttributes :: Lens.Lens' QueryResultItem (Prelude.Maybe [AdditionalResultAttribute])+queryResultItem_additionalAttributes = Lens.lens (\QueryResultItem' {additionalAttributes} -> additionalAttributes) (\s@QueryResultItem' {} a -> s {additionalAttributes = a} :: QueryResultItem) Prelude.. Lens.mapping Lens.coerced++-- | An array of document attributes assigned to a document in the search+-- results. For example, the document author (@_author@) or the source URI+-- (@_source_uri@) of the document.+queryResultItem_documentAttributes :: Lens.Lens' QueryResultItem (Prelude.Maybe [DocumentAttribute])+queryResultItem_documentAttributes = Lens.lens (\QueryResultItem' {documentAttributes} -> documentAttributes) (\s@QueryResultItem' {} a -> s {documentAttributes = a} :: QueryResultItem) Prelude.. Lens.mapping Lens.coerced++-- | An extract of the text in the document. Contains information about+-- highlighting the relevant terms in the excerpt.+queryResultItem_documentExcerpt :: Lens.Lens' QueryResultItem (Prelude.Maybe TextWithHighlights)+queryResultItem_documentExcerpt = Lens.lens (\QueryResultItem' {documentExcerpt} -> documentExcerpt) (\s@QueryResultItem' {} a -> s {documentExcerpt = a} :: QueryResultItem)++-- | The identifier for the document.+queryResultItem_documentId :: Lens.Lens' QueryResultItem (Prelude.Maybe Prelude.Text)+queryResultItem_documentId = Lens.lens (\QueryResultItem' {documentId} -> documentId) (\s@QueryResultItem' {} a -> s {documentId = a} :: QueryResultItem)++-- | The title of the document. Contains the text of the title and+-- information for highlighting the relevant terms in the title.+queryResultItem_documentTitle :: Lens.Lens' QueryResultItem (Prelude.Maybe TextWithHighlights)+queryResultItem_documentTitle = Lens.lens (\QueryResultItem' {documentTitle} -> documentTitle) (\s@QueryResultItem' {} a -> s {documentTitle = a} :: QueryResultItem)++-- | The URI of the original location of the document.+queryResultItem_documentURI :: Lens.Lens' QueryResultItem (Prelude.Maybe Prelude.Text)+queryResultItem_documentURI = Lens.lens (\QueryResultItem' {documentURI} -> documentURI) (\s@QueryResultItem' {} a -> s {documentURI = a} :: QueryResultItem)++-- | A token that identifies a particular result from a particular query. Use+-- this token to provide click-through feedback for the result. For more+-- information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/submitting-feedback.html Submitting feedback>+-- .+queryResultItem_feedbackToken :: Lens.Lens' QueryResultItem (Prelude.Maybe Prelude.Text)+queryResultItem_feedbackToken = Lens.lens (\QueryResultItem' {feedbackToken} -> feedbackToken) (\s@QueryResultItem' {} a -> s {feedbackToken = a} :: QueryResultItem)++-- | If the @Type@ of document within the response is @ANSWER@, then it is+-- either a @TABLE@ answer or @TEXT@ answer. If it\'s a table answer, a+-- table excerpt is returned in @TableExcerpt@. If it\'s a text answer, a+-- text excerpt is returned in @DocumentExcerpt@.+queryResultItem_format :: Lens.Lens' QueryResultItem (Prelude.Maybe QueryResultFormat)+queryResultItem_format = Lens.lens (\QueryResultItem' {format} -> format) (\s@QueryResultItem' {} a -> s {format = a} :: QueryResultItem)++-- | The identifier for the query result.+queryResultItem_id :: Lens.Lens' QueryResultItem (Prelude.Maybe Prelude.Text)+queryResultItem_id = Lens.lens (\QueryResultItem' {id} -> id) (\s@QueryResultItem' {} a -> s {id = a} :: QueryResultItem)++-- | Indicates the confidence that Amazon Kendra has that a result matches+-- the query that you provided. Each result is placed into a bin that+-- indicates the confidence, @VERY_HIGH@, @HIGH@, @MEDIUM@ and @LOW@. You+-- can use the score to determine if a response meets the confidence needed+-- for your application.+--+-- The field is only set to @LOW@ when the @Type@ field is set to+-- @DOCUMENT@ and Amazon Kendra is not confident that the result matches+-- the query.+queryResultItem_scoreAttributes :: Lens.Lens' QueryResultItem (Prelude.Maybe ScoreAttributes)+queryResultItem_scoreAttributes = Lens.lens (\QueryResultItem' {scoreAttributes} -> scoreAttributes) (\s@QueryResultItem' {} a -> s {scoreAttributes = a} :: QueryResultItem)++-- | An excerpt from a table within a document.+queryResultItem_tableExcerpt :: Lens.Lens' QueryResultItem (Prelude.Maybe TableExcerpt)+queryResultItem_tableExcerpt = Lens.lens (\QueryResultItem' {tableExcerpt} -> tableExcerpt) (\s@QueryResultItem' {} a -> s {tableExcerpt = a} :: QueryResultItem)++-- | The type of document within the response. For example, a response could+-- include a question-answer that\'s relevant to the query.+queryResultItem_type :: Lens.Lens' QueryResultItem (Prelude.Maybe QueryResultType)+queryResultItem_type = Lens.lens (\QueryResultItem' {type'} -> type') (\s@QueryResultItem' {} a -> s {type' = a} :: QueryResultItem)++instance Data.FromJSON QueryResultItem where+  parseJSON =+    Data.withObject+      "QueryResultItem"+      ( \x ->+          QueryResultItem'+            Prelude.<$> ( x+                            Data..:? "AdditionalAttributes"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "DocumentAttributes"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "DocumentExcerpt")+            Prelude.<*> (x Data..:? "DocumentId")+            Prelude.<*> (x Data..:? "DocumentTitle")+            Prelude.<*> (x Data..:? "DocumentURI")+            Prelude.<*> (x Data..:? "FeedbackToken")+            Prelude.<*> (x Data..:? "Format")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "ScoreAttributes")+            Prelude.<*> (x Data..:? "TableExcerpt")+            Prelude.<*> (x Data..:? "Type")+      )++instance Prelude.Hashable QueryResultItem where+  hashWithSalt _salt QueryResultItem' {..} =+    _salt+      `Prelude.hashWithSalt` additionalAttributes+      `Prelude.hashWithSalt` documentAttributes+      `Prelude.hashWithSalt` documentExcerpt+      `Prelude.hashWithSalt` documentId+      `Prelude.hashWithSalt` documentTitle+      `Prelude.hashWithSalt` documentURI+      `Prelude.hashWithSalt` feedbackToken+      `Prelude.hashWithSalt` format+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` scoreAttributes+      `Prelude.hashWithSalt` tableExcerpt+      `Prelude.hashWithSalt` type'++instance Prelude.NFData QueryResultItem where+  rnf QueryResultItem' {..} =+    Prelude.rnf additionalAttributes+      `Prelude.seq` Prelude.rnf documentAttributes+      `Prelude.seq` Prelude.rnf documentExcerpt+      `Prelude.seq` Prelude.rnf documentId+      `Prelude.seq` Prelude.rnf documentTitle+      `Prelude.seq` Prelude.rnf documentURI+      `Prelude.seq` Prelude.rnf feedbackToken+      `Prelude.seq` Prelude.rnf format+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf scoreAttributes+      `Prelude.seq` Prelude.rnf tableExcerpt+      `Prelude.seq` Prelude.rnf type'
+ gen/Amazonka/Kendra/Types/QueryResultType.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.Kendra.Types.QueryResultType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.QueryResultType+  ( QueryResultType+      ( ..,+        QueryResultType_ANSWER,+        QueryResultType_DOCUMENT,+        QueryResultType_QUESTION_ANSWER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype QueryResultType = QueryResultType'+  { fromQueryResultType ::+      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 QueryResultType_ANSWER :: QueryResultType+pattern QueryResultType_ANSWER = QueryResultType' "ANSWER"++pattern QueryResultType_DOCUMENT :: QueryResultType+pattern QueryResultType_DOCUMENT = QueryResultType' "DOCUMENT"++pattern QueryResultType_QUESTION_ANSWER :: QueryResultType+pattern QueryResultType_QUESTION_ANSWER = QueryResultType' "QUESTION_ANSWER"++{-# COMPLETE+  QueryResultType_ANSWER,+  QueryResultType_DOCUMENT,+  QueryResultType_QUESTION_ANSWER,+  QueryResultType'+  #-}
+ gen/Amazonka/Kendra/Types/QuerySuggestionsBlockListStatus.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.QuerySuggestionsBlockListStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.QuerySuggestionsBlockListStatus+  ( QuerySuggestionsBlockListStatus+      ( ..,+        QuerySuggestionsBlockListStatus_ACTIVE,+        QuerySuggestionsBlockListStatus_ACTIVE_BUT_UPDATE_FAILED,+        QuerySuggestionsBlockListStatus_CREATING,+        QuerySuggestionsBlockListStatus_DELETING,+        QuerySuggestionsBlockListStatus_FAILED,+        QuerySuggestionsBlockListStatus_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype QuerySuggestionsBlockListStatus = QuerySuggestionsBlockListStatus'+  { fromQuerySuggestionsBlockListStatus ::+      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 QuerySuggestionsBlockListStatus_ACTIVE :: QuerySuggestionsBlockListStatus+pattern QuerySuggestionsBlockListStatus_ACTIVE = QuerySuggestionsBlockListStatus' "ACTIVE"++pattern QuerySuggestionsBlockListStatus_ACTIVE_BUT_UPDATE_FAILED :: QuerySuggestionsBlockListStatus+pattern QuerySuggestionsBlockListStatus_ACTIVE_BUT_UPDATE_FAILED = QuerySuggestionsBlockListStatus' "ACTIVE_BUT_UPDATE_FAILED"++pattern QuerySuggestionsBlockListStatus_CREATING :: QuerySuggestionsBlockListStatus+pattern QuerySuggestionsBlockListStatus_CREATING = QuerySuggestionsBlockListStatus' "CREATING"++pattern QuerySuggestionsBlockListStatus_DELETING :: QuerySuggestionsBlockListStatus+pattern QuerySuggestionsBlockListStatus_DELETING = QuerySuggestionsBlockListStatus' "DELETING"++pattern QuerySuggestionsBlockListStatus_FAILED :: QuerySuggestionsBlockListStatus+pattern QuerySuggestionsBlockListStatus_FAILED = QuerySuggestionsBlockListStatus' "FAILED"++pattern QuerySuggestionsBlockListStatus_UPDATING :: QuerySuggestionsBlockListStatus+pattern QuerySuggestionsBlockListStatus_UPDATING = QuerySuggestionsBlockListStatus' "UPDATING"++{-# COMPLETE+  QuerySuggestionsBlockListStatus_ACTIVE,+  QuerySuggestionsBlockListStatus_ACTIVE_BUT_UPDATE_FAILED,+  QuerySuggestionsBlockListStatus_CREATING,+  QuerySuggestionsBlockListStatus_DELETING,+  QuerySuggestionsBlockListStatus_FAILED,+  QuerySuggestionsBlockListStatus_UPDATING,+  QuerySuggestionsBlockListStatus'+  #-}
+ gen/Amazonka/Kendra/Types/QuerySuggestionsBlockListSummary.hs view
@@ -0,0 +1,155 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.QuerySuggestionsBlockListSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.QuerySuggestionsBlockListSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.QuerySuggestionsBlockListStatus+import qualified Amazonka.Prelude as Prelude++-- | Summary information on a query suggestions block list.+--+-- This includes information on the block list ID, block list name, when+-- the block list was created, when the block list was last updated, and+-- the count of block words\/phrases in the block list.+--+-- For information on the current quota limits for block lists, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/quotas.html Quotas for Amazon Kendra>.+--+-- /See:/ 'newQuerySuggestionsBlockListSummary' smart constructor.+data QuerySuggestionsBlockListSummary = QuerySuggestionsBlockListSummary'+  { -- | The date-time summary information for a query suggestions block list was+    -- last created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The identifier of a block list.+    id :: Prelude.Maybe Prelude.Text,+    -- | The number of items in the block list file.+    itemCount :: Prelude.Maybe Prelude.Int,+    -- | The name of the block list.+    name :: Prelude.Maybe Prelude.Text,+    -- | The status of the block list.+    status :: Prelude.Maybe QuerySuggestionsBlockListStatus,+    -- | The date-time the block list was last updated.+    updatedAt :: Prelude.Maybe Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'QuerySuggestionsBlockListSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdAt', 'querySuggestionsBlockListSummary_createdAt' - The date-time summary information for a query suggestions block list was+-- last created.+--+-- 'id', 'querySuggestionsBlockListSummary_id' - The identifier of a block list.+--+-- 'itemCount', 'querySuggestionsBlockListSummary_itemCount' - The number of items in the block list file.+--+-- 'name', 'querySuggestionsBlockListSummary_name' - The name of the block list.+--+-- 'status', 'querySuggestionsBlockListSummary_status' - The status of the block list.+--+-- 'updatedAt', 'querySuggestionsBlockListSummary_updatedAt' - The date-time the block list was last updated.+newQuerySuggestionsBlockListSummary ::+  QuerySuggestionsBlockListSummary+newQuerySuggestionsBlockListSummary =+  QuerySuggestionsBlockListSummary'+    { createdAt =+        Prelude.Nothing,+      id = Prelude.Nothing,+      itemCount = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing,+      updatedAt = Prelude.Nothing+    }++-- | The date-time summary information for a query suggestions block list was+-- last created.+querySuggestionsBlockListSummary_createdAt :: Lens.Lens' QuerySuggestionsBlockListSummary (Prelude.Maybe Prelude.UTCTime)+querySuggestionsBlockListSummary_createdAt = Lens.lens (\QuerySuggestionsBlockListSummary' {createdAt} -> createdAt) (\s@QuerySuggestionsBlockListSummary' {} a -> s {createdAt = a} :: QuerySuggestionsBlockListSummary) Prelude.. Lens.mapping Data._Time++-- | The identifier of a block list.+querySuggestionsBlockListSummary_id :: Lens.Lens' QuerySuggestionsBlockListSummary (Prelude.Maybe Prelude.Text)+querySuggestionsBlockListSummary_id = Lens.lens (\QuerySuggestionsBlockListSummary' {id} -> id) (\s@QuerySuggestionsBlockListSummary' {} a -> s {id = a} :: QuerySuggestionsBlockListSummary)++-- | The number of items in the block list file.+querySuggestionsBlockListSummary_itemCount :: Lens.Lens' QuerySuggestionsBlockListSummary (Prelude.Maybe Prelude.Int)+querySuggestionsBlockListSummary_itemCount = Lens.lens (\QuerySuggestionsBlockListSummary' {itemCount} -> itemCount) (\s@QuerySuggestionsBlockListSummary' {} a -> s {itemCount = a} :: QuerySuggestionsBlockListSummary)++-- | The name of the block list.+querySuggestionsBlockListSummary_name :: Lens.Lens' QuerySuggestionsBlockListSummary (Prelude.Maybe Prelude.Text)+querySuggestionsBlockListSummary_name = Lens.lens (\QuerySuggestionsBlockListSummary' {name} -> name) (\s@QuerySuggestionsBlockListSummary' {} a -> s {name = a} :: QuerySuggestionsBlockListSummary)++-- | The status of the block list.+querySuggestionsBlockListSummary_status :: Lens.Lens' QuerySuggestionsBlockListSummary (Prelude.Maybe QuerySuggestionsBlockListStatus)+querySuggestionsBlockListSummary_status = Lens.lens (\QuerySuggestionsBlockListSummary' {status} -> status) (\s@QuerySuggestionsBlockListSummary' {} a -> s {status = a} :: QuerySuggestionsBlockListSummary)++-- | The date-time the block list was last updated.+querySuggestionsBlockListSummary_updatedAt :: Lens.Lens' QuerySuggestionsBlockListSummary (Prelude.Maybe Prelude.UTCTime)+querySuggestionsBlockListSummary_updatedAt = Lens.lens (\QuerySuggestionsBlockListSummary' {updatedAt} -> updatedAt) (\s@QuerySuggestionsBlockListSummary' {} a -> s {updatedAt = a} :: QuerySuggestionsBlockListSummary) Prelude.. Lens.mapping Data._Time++instance+  Data.FromJSON+    QuerySuggestionsBlockListSummary+  where+  parseJSON =+    Data.withObject+      "QuerySuggestionsBlockListSummary"+      ( \x ->+          QuerySuggestionsBlockListSummary'+            Prelude.<$> (x Data..:? "CreatedAt")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "ItemCount")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "UpdatedAt")+      )++instance+  Prelude.Hashable+    QuerySuggestionsBlockListSummary+  where+  hashWithSalt+    _salt+    QuerySuggestionsBlockListSummary' {..} =+      _salt+        `Prelude.hashWithSalt` createdAt+        `Prelude.hashWithSalt` id+        `Prelude.hashWithSalt` itemCount+        `Prelude.hashWithSalt` name+        `Prelude.hashWithSalt` status+        `Prelude.hashWithSalt` updatedAt++instance+  Prelude.NFData+    QuerySuggestionsBlockListSummary+  where+  rnf QuerySuggestionsBlockListSummary' {..} =+    Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf itemCount+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf updatedAt
+ gen/Amazonka/Kendra/Types/QuerySuggestionsStatus.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.Kendra.Types.QuerySuggestionsStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.QuerySuggestionsStatus+  ( QuerySuggestionsStatus+      ( ..,+        QuerySuggestionsStatus_ACTIVE,+        QuerySuggestionsStatus_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype QuerySuggestionsStatus = QuerySuggestionsStatus'+  { fromQuerySuggestionsStatus ::+      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 QuerySuggestionsStatus_ACTIVE :: QuerySuggestionsStatus+pattern QuerySuggestionsStatus_ACTIVE = QuerySuggestionsStatus' "ACTIVE"++pattern QuerySuggestionsStatus_UPDATING :: QuerySuggestionsStatus+pattern QuerySuggestionsStatus_UPDATING = QuerySuggestionsStatus' "UPDATING"++{-# COMPLETE+  QuerySuggestionsStatus_ACTIVE,+  QuerySuggestionsStatus_UPDATING,+  QuerySuggestionsStatus'+  #-}
+ gen/Amazonka/Kendra/Types/QuipConfiguration.hs view
@@ -0,0 +1,360 @@+{-# 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.Kendra.Types.QuipConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.QuipConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import Amazonka.Kendra.Types.DataSourceVpcConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to Quip as your data+-- source.+--+-- /See:/ 'newQuipConfiguration' smart constructor.+data QuipConfiguration = QuipConfiguration'+  { -- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+    -- field names of Quip attachments to Amazon Kendra index field names. To+    -- create custom fields, use the @UpdateIndex@ API before you map to Quip+    -- fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Quip field names must exist in your Quip custom metadata.+    attachmentFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | @TRUE@ to index attachments.+    crawlAttachments :: Prelude.Maybe Prelude.Bool,+    -- | @TRUE@ to index the contents of chat rooms.+    crawlChatRooms :: Prelude.Maybe Prelude.Bool,+    -- | @TRUE@ to index file comments.+    crawlFileComments :: Prelude.Maybe Prelude.Bool,+    -- | A list of regular expression patterns to exclude certain files in your+    -- Quip file system. Files that match the patterns are excluded from the+    -- index. Files that don’t match the patterns are included in the index. If+    -- a file matches both an inclusion pattern and an exclusion pattern, the+    -- exclusion pattern takes precedence, and the file isn\'t included in the+    -- index.+    exclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | The identifiers of the Quip folders you want to index. You can find the+    -- folder ID in your browser URL when you access your folder in Quip. For+    -- example,+    -- /https:\/\/quip-company.quipdomain.com\/zlLuOVNSarTL\/folder-name/. The+    -- folder ID in this example is \"zlLuOVNSarTL\".+    folderIds :: Prelude.Maybe [Prelude.Text],+    -- | A list of regular expression patterns to include certain files in your+    -- Quip file system. Files that match the patterns are included in the+    -- index. Files that don\'t match the patterns are excluded from the index.+    -- If a file matches both an inclusion pattern and an exclusion pattern,+    -- the exclusion pattern takes precedence, and the file isn\'t included in+    -- the index.+    inclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+    -- field names of Quip messages to Amazon Kendra index field names. To+    -- create custom fields, use the @UpdateIndex@ API before you map to Quip+    -- fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Quip field names must exist in your Quip custom metadata.+    messageFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+    -- field names of Quip threads to Amazon Kendra index field names. To+    -- create custom fields, use the @UpdateIndex@ API before you map to Quip+    -- fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Quip field names must exist in your Quip custom metadata.+    threadFieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | Configuration information for an Amazon Virtual Private Cloud (VPC) to+    -- connect to your Quip. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+    vpcConfiguration :: Prelude.Maybe DataSourceVpcConfiguration,+    -- | The Quip site domain. For example,+    -- /https:\/\/quip-company.quipdomain.com\/browse/. The domain in this+    -- example is \"quipdomain\".+    domain :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an Secrets Manager secret that+    -- contains the key-value pairs that are required to connect to your Quip.+    -- The secret must contain a JSON structure with the following keys:+    --+    -- -   accessToken—The token created in Quip. For more information, see+    --     <https://docs.aws.amazon.com/kendra/latest/dg/data-source-slack.html Using a Quip data source>.+    secretArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'QuipConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attachmentFieldMappings', 'quipConfiguration_attachmentFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Quip attachments to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to Quip+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Quip field names must exist in your Quip custom metadata.+--+-- 'crawlAttachments', 'quipConfiguration_crawlAttachments' - @TRUE@ to index attachments.+--+-- 'crawlChatRooms', 'quipConfiguration_crawlChatRooms' - @TRUE@ to index the contents of chat rooms.+--+-- 'crawlFileComments', 'quipConfiguration_crawlFileComments' - @TRUE@ to index file comments.+--+-- 'exclusionPatterns', 'quipConfiguration_exclusionPatterns' - A list of regular expression patterns to exclude certain files in your+-- Quip file system. Files that match the patterns are excluded from the+-- index. Files that don’t match the patterns are included in the index. If+-- a file matches both an inclusion pattern and an exclusion pattern, the+-- exclusion pattern takes precedence, and the file isn\'t included in the+-- index.+--+-- 'folderIds', 'quipConfiguration_folderIds' - The identifiers of the Quip folders you want to index. You can find the+-- folder ID in your browser URL when you access your folder in Quip. For+-- example,+-- /https:\/\/quip-company.quipdomain.com\/zlLuOVNSarTL\/folder-name/. The+-- folder ID in this example is \"zlLuOVNSarTL\".+--+-- 'inclusionPatterns', 'quipConfiguration_inclusionPatterns' - A list of regular expression patterns to include certain files in your+-- Quip file system. Files that match the patterns are included in the+-- index. Files that don\'t match the patterns are excluded from the index.+-- If a file matches both an inclusion pattern and an exclusion pattern,+-- the exclusion pattern takes precedence, and the file isn\'t included in+-- the index.+--+-- 'messageFieldMappings', 'quipConfiguration_messageFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Quip messages to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to Quip+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Quip field names must exist in your Quip custom metadata.+--+-- 'threadFieldMappings', 'quipConfiguration_threadFieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Quip threads to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to Quip+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Quip field names must exist in your Quip custom metadata.+--+-- 'vpcConfiguration', 'quipConfiguration_vpcConfiguration' - Configuration information for an Amazon Virtual Private Cloud (VPC) to+-- connect to your Quip. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+--+-- 'domain', 'quipConfiguration_domain' - The Quip site domain. For example,+-- /https:\/\/quip-company.quipdomain.com\/browse/. The domain in this+-- example is \"quipdomain\".+--+-- 'secretArn', 'quipConfiguration_secretArn' - The Amazon Resource Name (ARN) of an Secrets Manager secret that+-- contains the key-value pairs that are required to connect to your Quip.+-- The secret must contain a JSON structure with the following keys:+--+-- -   accessToken—The token created in Quip. For more information, see+--     <https://docs.aws.amazon.com/kendra/latest/dg/data-source-slack.html Using a Quip data source>.+newQuipConfiguration ::+  -- | 'domain'+  Prelude.Text ->+  -- | 'secretArn'+  Prelude.Text ->+  QuipConfiguration+newQuipConfiguration pDomain_ pSecretArn_ =+  QuipConfiguration'+    { attachmentFieldMappings =+        Prelude.Nothing,+      crawlAttachments = Prelude.Nothing,+      crawlChatRooms = Prelude.Nothing,+      crawlFileComments = Prelude.Nothing,+      exclusionPatterns = Prelude.Nothing,+      folderIds = Prelude.Nothing,+      inclusionPatterns = Prelude.Nothing,+      messageFieldMappings = Prelude.Nothing,+      threadFieldMappings = Prelude.Nothing,+      vpcConfiguration = Prelude.Nothing,+      domain = pDomain_,+      secretArn = pSecretArn_+    }++-- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Quip attachments to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to Quip+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Quip field names must exist in your Quip custom metadata.+quipConfiguration_attachmentFieldMappings :: Lens.Lens' QuipConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+quipConfiguration_attachmentFieldMappings = Lens.lens (\QuipConfiguration' {attachmentFieldMappings} -> attachmentFieldMappings) (\s@QuipConfiguration' {} a -> s {attachmentFieldMappings = a} :: QuipConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | @TRUE@ to index attachments.+quipConfiguration_crawlAttachments :: Lens.Lens' QuipConfiguration (Prelude.Maybe Prelude.Bool)+quipConfiguration_crawlAttachments = Lens.lens (\QuipConfiguration' {crawlAttachments} -> crawlAttachments) (\s@QuipConfiguration' {} a -> s {crawlAttachments = a} :: QuipConfiguration)++-- | @TRUE@ to index the contents of chat rooms.+quipConfiguration_crawlChatRooms :: Lens.Lens' QuipConfiguration (Prelude.Maybe Prelude.Bool)+quipConfiguration_crawlChatRooms = Lens.lens (\QuipConfiguration' {crawlChatRooms} -> crawlChatRooms) (\s@QuipConfiguration' {} a -> s {crawlChatRooms = a} :: QuipConfiguration)++-- | @TRUE@ to index file comments.+quipConfiguration_crawlFileComments :: Lens.Lens' QuipConfiguration (Prelude.Maybe Prelude.Bool)+quipConfiguration_crawlFileComments = Lens.lens (\QuipConfiguration' {crawlFileComments} -> crawlFileComments) (\s@QuipConfiguration' {} a -> s {crawlFileComments = a} :: QuipConfiguration)++-- | A list of regular expression patterns to exclude certain files in your+-- Quip file system. Files that match the patterns are excluded from the+-- index. Files that don’t match the patterns are included in the index. If+-- a file matches both an inclusion pattern and an exclusion pattern, the+-- exclusion pattern takes precedence, and the file isn\'t included in the+-- index.+quipConfiguration_exclusionPatterns :: Lens.Lens' QuipConfiguration (Prelude.Maybe [Prelude.Text])+quipConfiguration_exclusionPatterns = Lens.lens (\QuipConfiguration' {exclusionPatterns} -> exclusionPatterns) (\s@QuipConfiguration' {} a -> s {exclusionPatterns = a} :: QuipConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The identifiers of the Quip folders you want to index. You can find the+-- folder ID in your browser URL when you access your folder in Quip. For+-- example,+-- /https:\/\/quip-company.quipdomain.com\/zlLuOVNSarTL\/folder-name/. The+-- folder ID in this example is \"zlLuOVNSarTL\".+quipConfiguration_folderIds :: Lens.Lens' QuipConfiguration (Prelude.Maybe [Prelude.Text])+quipConfiguration_folderIds = Lens.lens (\QuipConfiguration' {folderIds} -> folderIds) (\s@QuipConfiguration' {} a -> s {folderIds = a} :: QuipConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to include certain files in your+-- Quip file system. Files that match the patterns are included in the+-- index. Files that don\'t match the patterns are excluded from the index.+-- If a file matches both an inclusion pattern and an exclusion pattern,+-- the exclusion pattern takes precedence, and the file isn\'t included in+-- the index.+quipConfiguration_inclusionPatterns :: Lens.Lens' QuipConfiguration (Prelude.Maybe [Prelude.Text])+quipConfiguration_inclusionPatterns = Lens.lens (\QuipConfiguration' {inclusionPatterns} -> inclusionPatterns) (\s@QuipConfiguration' {} a -> s {inclusionPatterns = a} :: QuipConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Quip messages to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to Quip+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Quip field names must exist in your Quip custom metadata.+quipConfiguration_messageFieldMappings :: Lens.Lens' QuipConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+quipConfiguration_messageFieldMappings = Lens.lens (\QuipConfiguration' {messageFieldMappings} -> messageFieldMappings) (\s@QuipConfiguration' {} a -> s {messageFieldMappings = a} :: QuipConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of @DataSourceToIndexFieldMapping@ objects that map attributes or+-- field names of Quip threads to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to Quip+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Quip field names must exist in your Quip custom metadata.+quipConfiguration_threadFieldMappings :: Lens.Lens' QuipConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+quipConfiguration_threadFieldMappings = Lens.lens (\QuipConfiguration' {threadFieldMappings} -> threadFieldMappings) (\s@QuipConfiguration' {} a -> s {threadFieldMappings = a} :: QuipConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Configuration information for an Amazon Virtual Private Cloud (VPC) to+-- connect to your Quip. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+quipConfiguration_vpcConfiguration :: Lens.Lens' QuipConfiguration (Prelude.Maybe DataSourceVpcConfiguration)+quipConfiguration_vpcConfiguration = Lens.lens (\QuipConfiguration' {vpcConfiguration} -> vpcConfiguration) (\s@QuipConfiguration' {} a -> s {vpcConfiguration = a} :: QuipConfiguration)++-- | The Quip site domain. For example,+-- /https:\/\/quip-company.quipdomain.com\/browse/. The domain in this+-- example is \"quipdomain\".+quipConfiguration_domain :: Lens.Lens' QuipConfiguration Prelude.Text+quipConfiguration_domain = Lens.lens (\QuipConfiguration' {domain} -> domain) (\s@QuipConfiguration' {} a -> s {domain = a} :: QuipConfiguration)++-- | The Amazon Resource Name (ARN) of an Secrets Manager secret that+-- contains the key-value pairs that are required to connect to your Quip.+-- The secret must contain a JSON structure with the following keys:+--+-- -   accessToken—The token created in Quip. For more information, see+--     <https://docs.aws.amazon.com/kendra/latest/dg/data-source-slack.html Using a Quip data source>.+quipConfiguration_secretArn :: Lens.Lens' QuipConfiguration Prelude.Text+quipConfiguration_secretArn = Lens.lens (\QuipConfiguration' {secretArn} -> secretArn) (\s@QuipConfiguration' {} a -> s {secretArn = a} :: QuipConfiguration)++instance Data.FromJSON QuipConfiguration where+  parseJSON =+    Data.withObject+      "QuipConfiguration"+      ( \x ->+          QuipConfiguration'+            Prelude.<$> (x Data..:? "AttachmentFieldMappings")+            Prelude.<*> (x Data..:? "CrawlAttachments")+            Prelude.<*> (x Data..:? "CrawlChatRooms")+            Prelude.<*> (x Data..:? "CrawlFileComments")+            Prelude.<*> ( x+                            Data..:? "ExclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "FolderIds" Data..!= Prelude.mempty)+            Prelude.<*> ( x+                            Data..:? "InclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "MessageFieldMappings")+            Prelude.<*> (x Data..:? "ThreadFieldMappings")+            Prelude.<*> (x Data..:? "VpcConfiguration")+            Prelude.<*> (x Data..: "Domain")+            Prelude.<*> (x Data..: "SecretArn")+      )++instance Prelude.Hashable QuipConfiguration where+  hashWithSalt _salt QuipConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` attachmentFieldMappings+      `Prelude.hashWithSalt` crawlAttachments+      `Prelude.hashWithSalt` crawlChatRooms+      `Prelude.hashWithSalt` crawlFileComments+      `Prelude.hashWithSalt` exclusionPatterns+      `Prelude.hashWithSalt` folderIds+      `Prelude.hashWithSalt` inclusionPatterns+      `Prelude.hashWithSalt` messageFieldMappings+      `Prelude.hashWithSalt` threadFieldMappings+      `Prelude.hashWithSalt` vpcConfiguration+      `Prelude.hashWithSalt` domain+      `Prelude.hashWithSalt` secretArn++instance Prelude.NFData QuipConfiguration where+  rnf QuipConfiguration' {..} =+    Prelude.rnf attachmentFieldMappings+      `Prelude.seq` Prelude.rnf crawlAttachments+      `Prelude.seq` Prelude.rnf crawlChatRooms+      `Prelude.seq` Prelude.rnf crawlFileComments+      `Prelude.seq` Prelude.rnf exclusionPatterns+      `Prelude.seq` Prelude.rnf folderIds+      `Prelude.seq` Prelude.rnf inclusionPatterns+      `Prelude.seq` Prelude.rnf messageFieldMappings+      `Prelude.seq` Prelude.rnf threadFieldMappings+      `Prelude.seq` Prelude.rnf vpcConfiguration+      `Prelude.seq` Prelude.rnf domain+      `Prelude.seq` Prelude.rnf secretArn++instance Data.ToJSON QuipConfiguration where+  toJSON QuipConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AttachmentFieldMappings" Data..=)+              Prelude.<$> attachmentFieldMappings,+            ("CrawlAttachments" Data..=)+              Prelude.<$> crawlAttachments,+            ("CrawlChatRooms" Data..=)+              Prelude.<$> crawlChatRooms,+            ("CrawlFileComments" Data..=)+              Prelude.<$> crawlFileComments,+            ("ExclusionPatterns" Data..=)+              Prelude.<$> exclusionPatterns,+            ("FolderIds" Data..=) Prelude.<$> folderIds,+            ("InclusionPatterns" Data..=)+              Prelude.<$> inclusionPatterns,+            ("MessageFieldMappings" Data..=)+              Prelude.<$> messageFieldMappings,+            ("ThreadFieldMappings" Data..=)+              Prelude.<$> threadFieldMappings,+            ("VpcConfiguration" Data..=)+              Prelude.<$> vpcConfiguration,+            Prelude.Just ("Domain" Data..= domain),+            Prelude.Just ("SecretArn" Data..= secretArn)+          ]+      )
+ gen/Amazonka/Kendra/Types/ReadAccessType.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.Kendra.Types.ReadAccessType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ReadAccessType+  ( ReadAccessType+      ( ..,+        ReadAccessType_ALLOW,+        ReadAccessType_DENY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ReadAccessType = ReadAccessType'+  { fromReadAccessType ::+      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 ReadAccessType_ALLOW :: ReadAccessType+pattern ReadAccessType_ALLOW = ReadAccessType' "ALLOW"++pattern ReadAccessType_DENY :: ReadAccessType+pattern ReadAccessType_DENY = ReadAccessType' "DENY"++{-# COMPLETE+  ReadAccessType_ALLOW,+  ReadAccessType_DENY,+  ReadAccessType'+  #-}
+ gen/Amazonka/Kendra/Types/Relevance.hs view
@@ -0,0 +1,241 @@+{-# 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.Kendra.Types.Relevance+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.Relevance where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.Order+import qualified Amazonka.Prelude as Prelude++-- | Provides information for tuning the relevance of a field in a search.+-- When a query includes terms that match the field, the results are given+-- a boost in the response based on these tuning parameters.+--+-- /See:/ 'newRelevance' smart constructor.+data Relevance = Relevance'+  { -- | Specifies the time period that the boost applies to. For example, to+    -- make the boost apply to documents with the field value within the last+    -- month, you would use \"2628000s\". Once the field value is beyond the+    -- specified range, the effect of the boost drops off. The higher the+    -- importance, the faster the effect drops off. If you don\'t specify a+    -- value, the default is 3 months. The value of the field is a numeric+    -- string followed by the character \"s\", for example \"86400s\" for one+    -- day, or \"604800s\" for one week.+    --+    -- Only applies to @DATE@ fields.+    duration :: Prelude.Maybe Prelude.Text,+    -- | Indicates that this field determines how \"fresh\" a document is. For+    -- example, if document 1 was created on November 5, and document 2 was+    -- created on October 31, document 1 is \"fresher\" than document 2. You+    -- can only set the @Freshness@ field on one @DATE@ type field. Only+    -- applies to @DATE@ fields.+    freshness :: Prelude.Maybe Prelude.Bool,+    -- | The relative importance of the field in the search. Larger numbers+    -- provide more of a boost than smaller numbers.+    importance :: Prelude.Maybe Prelude.Natural,+    -- | Determines how values should be interpreted.+    --+    -- When the @RankOrder@ field is @ASCENDING@, higher numbers are better.+    -- For example, a document with a rating score of 10 is higher ranking than+    -- a document with a rating score of 1.+    --+    -- When the @RankOrder@ field is @DESCENDING@, lower numbers are better.+    -- For example, in a task tracking application, a priority 1 task is more+    -- important than a priority 5 task.+    --+    -- Only applies to @LONG@ and @DOUBLE@ fields.+    rankOrder :: Prelude.Maybe Order,+    -- | A list of values that should be given a different boost when they appear+    -- in the result list. For example, if you are boosting a field called+    -- \"department,\" query terms that match the department field are boosted+    -- in the result. However, you can add entries from the department field to+    -- boost documents with those values higher.+    --+    -- For example, you can add entries to the map with names of departments.+    -- If you add \"HR\",5 and \"Legal\",3 those departments are given special+    -- attention when they appear in the metadata of a document. When those+    -- terms appear they are given the specified importance instead of the+    -- regular importance for the boost.+    valueImportanceMap :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Natural)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Relevance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'duration', 'relevance_duration' - Specifies the time period that the boost applies to. For example, to+-- make the boost apply to documents with the field value within the last+-- month, you would use \"2628000s\". Once the field value is beyond the+-- specified range, the effect of the boost drops off. The higher the+-- importance, the faster the effect drops off. If you don\'t specify a+-- value, the default is 3 months. The value of the field is a numeric+-- string followed by the character \"s\", for example \"86400s\" for one+-- day, or \"604800s\" for one week.+--+-- Only applies to @DATE@ fields.+--+-- 'freshness', 'relevance_freshness' - Indicates that this field determines how \"fresh\" a document is. For+-- example, if document 1 was created on November 5, and document 2 was+-- created on October 31, document 1 is \"fresher\" than document 2. You+-- can only set the @Freshness@ field on one @DATE@ type field. Only+-- applies to @DATE@ fields.+--+-- 'importance', 'relevance_importance' - The relative importance of the field in the search. Larger numbers+-- provide more of a boost than smaller numbers.+--+-- 'rankOrder', 'relevance_rankOrder' - Determines how values should be interpreted.+--+-- When the @RankOrder@ field is @ASCENDING@, higher numbers are better.+-- For example, a document with a rating score of 10 is higher ranking than+-- a document with a rating score of 1.+--+-- When the @RankOrder@ field is @DESCENDING@, lower numbers are better.+-- For example, in a task tracking application, a priority 1 task is more+-- important than a priority 5 task.+--+-- Only applies to @LONG@ and @DOUBLE@ fields.+--+-- 'valueImportanceMap', 'relevance_valueImportanceMap' - A list of values that should be given a different boost when they appear+-- in the result list. For example, if you are boosting a field called+-- \"department,\" query terms that match the department field are boosted+-- in the result. However, you can add entries from the department field to+-- boost documents with those values higher.+--+-- For example, you can add entries to the map with names of departments.+-- If you add \"HR\",5 and \"Legal\",3 those departments are given special+-- attention when they appear in the metadata of a document. When those+-- terms appear they are given the specified importance instead of the+-- regular importance for the boost.+newRelevance ::+  Relevance+newRelevance =+  Relevance'+    { duration = Prelude.Nothing,+      freshness = Prelude.Nothing,+      importance = Prelude.Nothing,+      rankOrder = Prelude.Nothing,+      valueImportanceMap = Prelude.Nothing+    }++-- | Specifies the time period that the boost applies to. For example, to+-- make the boost apply to documents with the field value within the last+-- month, you would use \"2628000s\". Once the field value is beyond the+-- specified range, the effect of the boost drops off. The higher the+-- importance, the faster the effect drops off. If you don\'t specify a+-- value, the default is 3 months. The value of the field is a numeric+-- string followed by the character \"s\", for example \"86400s\" for one+-- day, or \"604800s\" for one week.+--+-- Only applies to @DATE@ fields.+relevance_duration :: Lens.Lens' Relevance (Prelude.Maybe Prelude.Text)+relevance_duration = Lens.lens (\Relevance' {duration} -> duration) (\s@Relevance' {} a -> s {duration = a} :: Relevance)++-- | Indicates that this field determines how \"fresh\" a document is. For+-- example, if document 1 was created on November 5, and document 2 was+-- created on October 31, document 1 is \"fresher\" than document 2. You+-- can only set the @Freshness@ field on one @DATE@ type field. Only+-- applies to @DATE@ fields.+relevance_freshness :: Lens.Lens' Relevance (Prelude.Maybe Prelude.Bool)+relevance_freshness = Lens.lens (\Relevance' {freshness} -> freshness) (\s@Relevance' {} a -> s {freshness = a} :: Relevance)++-- | The relative importance of the field in the search. Larger numbers+-- provide more of a boost than smaller numbers.+relevance_importance :: Lens.Lens' Relevance (Prelude.Maybe Prelude.Natural)+relevance_importance = Lens.lens (\Relevance' {importance} -> importance) (\s@Relevance' {} a -> s {importance = a} :: Relevance)++-- | Determines how values should be interpreted.+--+-- When the @RankOrder@ field is @ASCENDING@, higher numbers are better.+-- For example, a document with a rating score of 10 is higher ranking than+-- a document with a rating score of 1.+--+-- When the @RankOrder@ field is @DESCENDING@, lower numbers are better.+-- For example, in a task tracking application, a priority 1 task is more+-- important than a priority 5 task.+--+-- Only applies to @LONG@ and @DOUBLE@ fields.+relevance_rankOrder :: Lens.Lens' Relevance (Prelude.Maybe Order)+relevance_rankOrder = Lens.lens (\Relevance' {rankOrder} -> rankOrder) (\s@Relevance' {} a -> s {rankOrder = a} :: Relevance)++-- | A list of values that should be given a different boost when they appear+-- in the result list. For example, if you are boosting a field called+-- \"department,\" query terms that match the department field are boosted+-- in the result. However, you can add entries from the department field to+-- boost documents with those values higher.+--+-- For example, you can add entries to the map with names of departments.+-- If you add \"HR\",5 and \"Legal\",3 those departments are given special+-- attention when they appear in the metadata of a document. When those+-- terms appear they are given the specified importance instead of the+-- regular importance for the boost.+relevance_valueImportanceMap :: Lens.Lens' Relevance (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Natural))+relevance_valueImportanceMap = Lens.lens (\Relevance' {valueImportanceMap} -> valueImportanceMap) (\s@Relevance' {} a -> s {valueImportanceMap = a} :: Relevance) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Relevance where+  parseJSON =+    Data.withObject+      "Relevance"+      ( \x ->+          Relevance'+            Prelude.<$> (x Data..:? "Duration")+            Prelude.<*> (x Data..:? "Freshness")+            Prelude.<*> (x Data..:? "Importance")+            Prelude.<*> (x Data..:? "RankOrder")+            Prelude.<*> ( x+                            Data..:? "ValueImportanceMap"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable Relevance where+  hashWithSalt _salt Relevance' {..} =+    _salt+      `Prelude.hashWithSalt` duration+      `Prelude.hashWithSalt` freshness+      `Prelude.hashWithSalt` importance+      `Prelude.hashWithSalt` rankOrder+      `Prelude.hashWithSalt` valueImportanceMap++instance Prelude.NFData Relevance where+  rnf Relevance' {..} =+    Prelude.rnf duration+      `Prelude.seq` Prelude.rnf freshness+      `Prelude.seq` Prelude.rnf importance+      `Prelude.seq` Prelude.rnf rankOrder+      `Prelude.seq` Prelude.rnf valueImportanceMap++instance Data.ToJSON Relevance where+  toJSON Relevance' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Duration" Data..=) Prelude.<$> duration,+            ("Freshness" Data..=) Prelude.<$> freshness,+            ("Importance" Data..=) Prelude.<$> importance,+            ("RankOrder" Data..=) Prelude.<$> rankOrder,+            ("ValueImportanceMap" Data..=)+              Prelude.<$> valueImportanceMap+          ]+      )
+ gen/Amazonka/Kendra/Types/RelevanceFeedback.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.RelevanceFeedback+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.RelevanceFeedback where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.RelevanceType+import qualified Amazonka.Prelude as Prelude++-- | Provides feedback on how relevant a document is to a search. Your+-- application uses the @SubmitFeedback@ API to provide relevance+-- information.+--+-- /See:/ 'newRelevanceFeedback' smart constructor.+data RelevanceFeedback = RelevanceFeedback'+  { -- | The identifier of the search result that the user provided relevance+    -- feedback for.+    resultId :: Prelude.Text,+    -- | Whether to document was relevant or not relevant to the search.+    relevanceValue :: RelevanceType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RelevanceFeedback' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resultId', 'relevanceFeedback_resultId' - The identifier of the search result that the user provided relevance+-- feedback for.+--+-- 'relevanceValue', 'relevanceFeedback_relevanceValue' - Whether to document was relevant or not relevant to the search.+newRelevanceFeedback ::+  -- | 'resultId'+  Prelude.Text ->+  -- | 'relevanceValue'+  RelevanceType ->+  RelevanceFeedback+newRelevanceFeedback pResultId_ pRelevanceValue_ =+  RelevanceFeedback'+    { resultId = pResultId_,+      relevanceValue = pRelevanceValue_+    }++-- | The identifier of the search result that the user provided relevance+-- feedback for.+relevanceFeedback_resultId :: Lens.Lens' RelevanceFeedback Prelude.Text+relevanceFeedback_resultId = Lens.lens (\RelevanceFeedback' {resultId} -> resultId) (\s@RelevanceFeedback' {} a -> s {resultId = a} :: RelevanceFeedback)++-- | Whether to document was relevant or not relevant to the search.+relevanceFeedback_relevanceValue :: Lens.Lens' RelevanceFeedback RelevanceType+relevanceFeedback_relevanceValue = Lens.lens (\RelevanceFeedback' {relevanceValue} -> relevanceValue) (\s@RelevanceFeedback' {} a -> s {relevanceValue = a} :: RelevanceFeedback)++instance Prelude.Hashable RelevanceFeedback where+  hashWithSalt _salt RelevanceFeedback' {..} =+    _salt+      `Prelude.hashWithSalt` resultId+      `Prelude.hashWithSalt` relevanceValue++instance Prelude.NFData RelevanceFeedback where+  rnf RelevanceFeedback' {..} =+    Prelude.rnf resultId+      `Prelude.seq` Prelude.rnf relevanceValue++instance Data.ToJSON RelevanceFeedback where+  toJSON RelevanceFeedback' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("ResultId" Data..= resultId),+            Prelude.Just+              ("RelevanceValue" Data..= relevanceValue)+          ]+      )
+ gen/Amazonka/Kendra/Types/RelevanceType.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.Kendra.Types.RelevanceType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.RelevanceType+  ( RelevanceType+      ( ..,+        RelevanceType_NOT_RELEVANT,+        RelevanceType_RELEVANT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RelevanceType = RelevanceType'+  { fromRelevanceType ::+      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 RelevanceType_NOT_RELEVANT :: RelevanceType+pattern RelevanceType_NOT_RELEVANT = RelevanceType' "NOT_RELEVANT"++pattern RelevanceType_RELEVANT :: RelevanceType+pattern RelevanceType_RELEVANT = RelevanceType' "RELEVANT"++{-# COMPLETE+  RelevanceType_NOT_RELEVANT,+  RelevanceType_RELEVANT,+  RelevanceType'+  #-}
+ gen/Amazonka/Kendra/Types/S3DataSourceConfiguration.hs view
@@ -0,0 +1,266 @@+{-# 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.Kendra.Types.S3DataSourceConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.S3DataSourceConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.AccessControlListConfiguration+import Amazonka.Kendra.Types.DocumentsMetadataConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to an Amazon S3+-- bucket.+--+-- /See:/ 'newS3DataSourceConfiguration' smart constructor.+data S3DataSourceConfiguration = S3DataSourceConfiguration'+  { -- | Provides the path to the S3 bucket that contains the user context+    -- filtering files for the data source. For the format of the file, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/s3-acl.html Access control for S3 data sources>.+    accessControlListConfiguration :: Prelude.Maybe AccessControlListConfiguration,+    documentsMetadataConfiguration :: Prelude.Maybe DocumentsMetadataConfiguration,+    -- | A list of glob patterns for documents that should not be indexed. If a+    -- document that matches an inclusion prefix or inclusion pattern also+    -- matches an exclusion pattern, the document is not indexed.+    --+    -- Some+    -- <https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters examples>+    -- are:+    --+    -- -   /*.png , *.jpg/ will exclude all PNG and JPEG image files in a+    --     directory (files with the extensions .png and .jpg).+    --+    -- -   /*internal*/ will exclude all files in a directory that contain+    --     \'internal\' in the file name, such as \'internal\',+    --     \'internal_only\', \'company_internal\'.+    --+    -- -   /**\/*internal*/ will exclude all internal-related files in a+    --     directory and its subdirectories.+    exclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of glob patterns for documents that should be indexed. If a+    -- document that matches an inclusion pattern also matches an exclusion+    -- pattern, the document is not indexed.+    --+    -- Some+    -- <https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters examples>+    -- are:+    --+    -- -   /*.txt/ will include all text files in a directory (files with the+    --     extension .txt).+    --+    -- -   /**\/*.txt/ will include all text files in a directory and its+    --     subdirectories.+    --+    -- -   /*tax*/ will include all files in a directory that contain \'tax\'+    --     in the file name, such as \'tax\', \'taxes\', \'income_tax\'.+    inclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of S3 prefixes for the documents that should be included in the+    -- index.+    inclusionPrefixes :: Prelude.Maybe [Prelude.Text],+    -- | The name of the bucket that contains the documents.+    bucketName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3DataSourceConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessControlListConfiguration', 's3DataSourceConfiguration_accessControlListConfiguration' - Provides the path to the S3 bucket that contains the user context+-- filtering files for the data source. For the format of the file, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/s3-acl.html Access control for S3 data sources>.+--+-- 'documentsMetadataConfiguration', 's3DataSourceConfiguration_documentsMetadataConfiguration' - Undocumented member.+--+-- 'exclusionPatterns', 's3DataSourceConfiguration_exclusionPatterns' - A list of glob patterns for documents that should not be indexed. If a+-- document that matches an inclusion prefix or inclusion pattern also+-- matches an exclusion pattern, the document is not indexed.+--+-- Some+-- <https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters examples>+-- are:+--+-- -   /*.png , *.jpg/ will exclude all PNG and JPEG image files in a+--     directory (files with the extensions .png and .jpg).+--+-- -   /*internal*/ will exclude all files in a directory that contain+--     \'internal\' in the file name, such as \'internal\',+--     \'internal_only\', \'company_internal\'.+--+-- -   /**\/*internal*/ will exclude all internal-related files in a+--     directory and its subdirectories.+--+-- 'inclusionPatterns', 's3DataSourceConfiguration_inclusionPatterns' - A list of glob patterns for documents that should be indexed. If a+-- document that matches an inclusion pattern also matches an exclusion+-- pattern, the document is not indexed.+--+-- Some+-- <https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters examples>+-- are:+--+-- -   /*.txt/ will include all text files in a directory (files with the+--     extension .txt).+--+-- -   /**\/*.txt/ will include all text files in a directory and its+--     subdirectories.+--+-- -   /*tax*/ will include all files in a directory that contain \'tax\'+--     in the file name, such as \'tax\', \'taxes\', \'income_tax\'.+--+-- 'inclusionPrefixes', 's3DataSourceConfiguration_inclusionPrefixes' - A list of S3 prefixes for the documents that should be included in the+-- index.+--+-- 'bucketName', 's3DataSourceConfiguration_bucketName' - The name of the bucket that contains the documents.+newS3DataSourceConfiguration ::+  -- | 'bucketName'+  Prelude.Text ->+  S3DataSourceConfiguration+newS3DataSourceConfiguration pBucketName_ =+  S3DataSourceConfiguration'+    { accessControlListConfiguration =+        Prelude.Nothing,+      documentsMetadataConfiguration = Prelude.Nothing,+      exclusionPatterns = Prelude.Nothing,+      inclusionPatterns = Prelude.Nothing,+      inclusionPrefixes = Prelude.Nothing,+      bucketName = pBucketName_+    }++-- | Provides the path to the S3 bucket that contains the user context+-- filtering files for the data source. For the format of the file, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/s3-acl.html Access control for S3 data sources>.+s3DataSourceConfiguration_accessControlListConfiguration :: Lens.Lens' S3DataSourceConfiguration (Prelude.Maybe AccessControlListConfiguration)+s3DataSourceConfiguration_accessControlListConfiguration = Lens.lens (\S3DataSourceConfiguration' {accessControlListConfiguration} -> accessControlListConfiguration) (\s@S3DataSourceConfiguration' {} a -> s {accessControlListConfiguration = a} :: S3DataSourceConfiguration)++-- | Undocumented member.+s3DataSourceConfiguration_documentsMetadataConfiguration :: Lens.Lens' S3DataSourceConfiguration (Prelude.Maybe DocumentsMetadataConfiguration)+s3DataSourceConfiguration_documentsMetadataConfiguration = Lens.lens (\S3DataSourceConfiguration' {documentsMetadataConfiguration} -> documentsMetadataConfiguration) (\s@S3DataSourceConfiguration' {} a -> s {documentsMetadataConfiguration = a} :: S3DataSourceConfiguration)++-- | A list of glob patterns for documents that should not be indexed. If a+-- document that matches an inclusion prefix or inclusion pattern also+-- matches an exclusion pattern, the document is not indexed.+--+-- Some+-- <https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters examples>+-- are:+--+-- -   /*.png , *.jpg/ will exclude all PNG and JPEG image files in a+--     directory (files with the extensions .png and .jpg).+--+-- -   /*internal*/ will exclude all files in a directory that contain+--     \'internal\' in the file name, such as \'internal\',+--     \'internal_only\', \'company_internal\'.+--+-- -   /**\/*internal*/ will exclude all internal-related files in a+--     directory and its subdirectories.+s3DataSourceConfiguration_exclusionPatterns :: Lens.Lens' S3DataSourceConfiguration (Prelude.Maybe [Prelude.Text])+s3DataSourceConfiguration_exclusionPatterns = Lens.lens (\S3DataSourceConfiguration' {exclusionPatterns} -> exclusionPatterns) (\s@S3DataSourceConfiguration' {} a -> s {exclusionPatterns = a} :: S3DataSourceConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of glob patterns for documents that should be indexed. If a+-- document that matches an inclusion pattern also matches an exclusion+-- pattern, the document is not indexed.+--+-- Some+-- <https://docs.aws.amazon.com/cli/latest/reference/s3/#use-of-exclude-and-include-filters examples>+-- are:+--+-- -   /*.txt/ will include all text files in a directory (files with the+--     extension .txt).+--+-- -   /**\/*.txt/ will include all text files in a directory and its+--     subdirectories.+--+-- -   /*tax*/ will include all files in a directory that contain \'tax\'+--     in the file name, such as \'tax\', \'taxes\', \'income_tax\'.+s3DataSourceConfiguration_inclusionPatterns :: Lens.Lens' S3DataSourceConfiguration (Prelude.Maybe [Prelude.Text])+s3DataSourceConfiguration_inclusionPatterns = Lens.lens (\S3DataSourceConfiguration' {inclusionPatterns} -> inclusionPatterns) (\s@S3DataSourceConfiguration' {} a -> s {inclusionPatterns = a} :: S3DataSourceConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of S3 prefixes for the documents that should be included in the+-- index.+s3DataSourceConfiguration_inclusionPrefixes :: Lens.Lens' S3DataSourceConfiguration (Prelude.Maybe [Prelude.Text])+s3DataSourceConfiguration_inclusionPrefixes = Lens.lens (\S3DataSourceConfiguration' {inclusionPrefixes} -> inclusionPrefixes) (\s@S3DataSourceConfiguration' {} a -> s {inclusionPrefixes = a} :: S3DataSourceConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The name of the bucket that contains the documents.+s3DataSourceConfiguration_bucketName :: Lens.Lens' S3DataSourceConfiguration Prelude.Text+s3DataSourceConfiguration_bucketName = Lens.lens (\S3DataSourceConfiguration' {bucketName} -> bucketName) (\s@S3DataSourceConfiguration' {} a -> s {bucketName = a} :: S3DataSourceConfiguration)++instance Data.FromJSON S3DataSourceConfiguration where+  parseJSON =+    Data.withObject+      "S3DataSourceConfiguration"+      ( \x ->+          S3DataSourceConfiguration'+            Prelude.<$> (x Data..:? "AccessControlListConfiguration")+            Prelude.<*> (x Data..:? "DocumentsMetadataConfiguration")+            Prelude.<*> ( x+                            Data..:? "ExclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "InclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "InclusionPrefixes"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "BucketName")+      )++instance Prelude.Hashable S3DataSourceConfiguration where+  hashWithSalt _salt S3DataSourceConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` accessControlListConfiguration+      `Prelude.hashWithSalt` documentsMetadataConfiguration+      `Prelude.hashWithSalt` exclusionPatterns+      `Prelude.hashWithSalt` inclusionPatterns+      `Prelude.hashWithSalt` inclusionPrefixes+      `Prelude.hashWithSalt` bucketName++instance Prelude.NFData S3DataSourceConfiguration where+  rnf S3DataSourceConfiguration' {..} =+    Prelude.rnf accessControlListConfiguration+      `Prelude.seq` Prelude.rnf documentsMetadataConfiguration+      `Prelude.seq` Prelude.rnf exclusionPatterns+      `Prelude.seq` Prelude.rnf inclusionPatterns+      `Prelude.seq` Prelude.rnf inclusionPrefixes+      `Prelude.seq` Prelude.rnf bucketName++instance Data.ToJSON S3DataSourceConfiguration where+  toJSON S3DataSourceConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AccessControlListConfiguration" Data..=)+              Prelude.<$> accessControlListConfiguration,+            ("DocumentsMetadataConfiguration" Data..=)+              Prelude.<$> documentsMetadataConfiguration,+            ("ExclusionPatterns" Data..=)+              Prelude.<$> exclusionPatterns,+            ("InclusionPatterns" Data..=)+              Prelude.<$> inclusionPatterns,+            ("InclusionPrefixes" Data..=)+              Prelude.<$> inclusionPrefixes,+            Prelude.Just ("BucketName" Data..= bucketName)+          ]+      )
+ gen/Amazonka/Kendra/Types/S3Path.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.Kendra.Types.S3Path+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.S3Path where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information required to find a specific file in an Amazon S3 bucket.+--+-- /See:/ 'newS3Path' smart constructor.+data S3Path = S3Path'+  { -- | The name of the S3 bucket that contains the file.+    bucket :: Prelude.Text,+    -- | The name of the file.+    key :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'S3Path' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'bucket', 's3Path_bucket' - The name of the S3 bucket that contains the file.+--+-- 'key', 's3Path_key' - The name of the file.+newS3Path ::+  -- | 'bucket'+  Prelude.Text ->+  -- | 'key'+  Prelude.Text ->+  S3Path+newS3Path pBucket_ pKey_ =+  S3Path' {bucket = pBucket_, key = pKey_}++-- | The name of the S3 bucket that contains the file.+s3Path_bucket :: Lens.Lens' S3Path Prelude.Text+s3Path_bucket = Lens.lens (\S3Path' {bucket} -> bucket) (\s@S3Path' {} a -> s {bucket = a} :: S3Path)++-- | The name of the file.+s3Path_key :: Lens.Lens' S3Path Prelude.Text+s3Path_key = Lens.lens (\S3Path' {key} -> key) (\s@S3Path' {} a -> s {key = a} :: S3Path)++instance Data.FromJSON S3Path where+  parseJSON =+    Data.withObject+      "S3Path"+      ( \x ->+          S3Path'+            Prelude.<$> (x Data..: "Bucket")+            Prelude.<*> (x Data..: "Key")+      )++instance Prelude.Hashable S3Path where+  hashWithSalt _salt S3Path' {..} =+    _salt+      `Prelude.hashWithSalt` bucket+      `Prelude.hashWithSalt` key++instance Prelude.NFData S3Path where+  rnf S3Path' {..} =+    Prelude.rnf bucket `Prelude.seq` Prelude.rnf key++instance Data.ToJSON S3Path where+  toJSON S3Path' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Bucket" Data..= bucket),+            Prelude.Just ("Key" Data..= key)+          ]+      )
+ gen/Amazonka/Kendra/Types/SaaSConfiguration.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.Kendra.Types.SaaSConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SaaSConfiguration 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 configuration information to connect to GitHub Enterprise+-- Cloud (SaaS).+--+-- /See:/ 'newSaaSConfiguration' smart constructor.+data SaaSConfiguration = SaaSConfiguration'+  { -- | The name of the organization of the GitHub Enterprise Cloud (SaaS)+    -- account you want to connect to. You can find your organization name by+    -- logging into GitHub desktop and selecting __Your organizations__ under+    -- your profile picture dropdown.+    organizationName :: Prelude.Text,+    -- | The GitHub host URL or API endpoint URL. For example,+    -- /https:\/\/api.github.com/.+    hostUrl :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SaaSConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'organizationName', 'saaSConfiguration_organizationName' - The name of the organization of the GitHub Enterprise Cloud (SaaS)+-- account you want to connect to. You can find your organization name by+-- logging into GitHub desktop and selecting __Your organizations__ under+-- your profile picture dropdown.+--+-- 'hostUrl', 'saaSConfiguration_hostUrl' - The GitHub host URL or API endpoint URL. For example,+-- /https:\/\/api.github.com/.+newSaaSConfiguration ::+  -- | 'organizationName'+  Prelude.Text ->+  -- | 'hostUrl'+  Prelude.Text ->+  SaaSConfiguration+newSaaSConfiguration pOrganizationName_ pHostUrl_ =+  SaaSConfiguration'+    { organizationName =+        pOrganizationName_,+      hostUrl = pHostUrl_+    }++-- | The name of the organization of the GitHub Enterprise Cloud (SaaS)+-- account you want to connect to. You can find your organization name by+-- logging into GitHub desktop and selecting __Your organizations__ under+-- your profile picture dropdown.+saaSConfiguration_organizationName :: Lens.Lens' SaaSConfiguration Prelude.Text+saaSConfiguration_organizationName = Lens.lens (\SaaSConfiguration' {organizationName} -> organizationName) (\s@SaaSConfiguration' {} a -> s {organizationName = a} :: SaaSConfiguration)++-- | The GitHub host URL or API endpoint URL. For example,+-- /https:\/\/api.github.com/.+saaSConfiguration_hostUrl :: Lens.Lens' SaaSConfiguration Prelude.Text+saaSConfiguration_hostUrl = Lens.lens (\SaaSConfiguration' {hostUrl} -> hostUrl) (\s@SaaSConfiguration' {} a -> s {hostUrl = a} :: SaaSConfiguration)++instance Data.FromJSON SaaSConfiguration where+  parseJSON =+    Data.withObject+      "SaaSConfiguration"+      ( \x ->+          SaaSConfiguration'+            Prelude.<$> (x Data..: "OrganizationName")+            Prelude.<*> (x Data..: "HostUrl")+      )++instance Prelude.Hashable SaaSConfiguration where+  hashWithSalt _salt SaaSConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` organizationName+      `Prelude.hashWithSalt` hostUrl++instance Prelude.NFData SaaSConfiguration where+  rnf SaaSConfiguration' {..} =+    Prelude.rnf organizationName+      `Prelude.seq` Prelude.rnf hostUrl++instance Data.ToJSON SaaSConfiguration where+  toJSON SaaSConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("OrganizationName" Data..= organizationName),+            Prelude.Just ("HostUrl" Data..= hostUrl)+          ]+      )
+ gen/Amazonka/Kendra/Types/SalesforceChatterFeedConfiguration.hs view
@@ -0,0 +1,164 @@+{-# 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.Kendra.Types.SalesforceChatterFeedConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SalesforceChatterFeedConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import Amazonka.Kendra.Types.SalesforceChatterFeedIncludeFilterType+import qualified Amazonka.Prelude as Prelude++-- | The configuration information for syncing a Salesforce chatter feed. The+-- contents of the object comes from the Salesforce FeedItem table.+--+-- /See:/ 'newSalesforceChatterFeedConfiguration' smart constructor.+data SalesforceChatterFeedConfiguration = SalesforceChatterFeedConfiguration'+  { -- | The name of the column in the Salesforce FeedItem table that contains+    -- the title of the document. This is typically the @Title@ column.+    documentTitleFieldName :: Prelude.Maybe Prelude.Text,+    -- | Maps fields from a Salesforce chatter feed into Amazon Kendra index+    -- fields.+    fieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | Filters the documents in the feed based on status of the user. When you+    -- specify @ACTIVE_USERS@ only documents from users who have an active+    -- account are indexed. When you specify @STANDARD_USER@ only documents for+    -- Salesforce standard users are documented. You can specify both.+    includeFilterTypes :: Prelude.Maybe (Prelude.NonEmpty SalesforceChatterFeedIncludeFilterType),+    -- | The name of the column in the Salesforce FeedItem table that contains+    -- the content to index. Typically this is the @Body@ column.+    documentDataFieldName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SalesforceChatterFeedConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'documentTitleFieldName', 'salesforceChatterFeedConfiguration_documentTitleFieldName' - The name of the column in the Salesforce FeedItem table that contains+-- the title of the document. This is typically the @Title@ column.+--+-- 'fieldMappings', 'salesforceChatterFeedConfiguration_fieldMappings' - Maps fields from a Salesforce chatter feed into Amazon Kendra index+-- fields.+--+-- 'includeFilterTypes', 'salesforceChatterFeedConfiguration_includeFilterTypes' - Filters the documents in the feed based on status of the user. When you+-- specify @ACTIVE_USERS@ only documents from users who have an active+-- account are indexed. When you specify @STANDARD_USER@ only documents for+-- Salesforce standard users are documented. You can specify both.+--+-- 'documentDataFieldName', 'salesforceChatterFeedConfiguration_documentDataFieldName' - The name of the column in the Salesforce FeedItem table that contains+-- the content to index. Typically this is the @Body@ column.+newSalesforceChatterFeedConfiguration ::+  -- | 'documentDataFieldName'+  Prelude.Text ->+  SalesforceChatterFeedConfiguration+newSalesforceChatterFeedConfiguration+  pDocumentDataFieldName_ =+    SalesforceChatterFeedConfiguration'+      { documentTitleFieldName =+          Prelude.Nothing,+        fieldMappings = Prelude.Nothing,+        includeFilterTypes = Prelude.Nothing,+        documentDataFieldName =+          pDocumentDataFieldName_+      }++-- | The name of the column in the Salesforce FeedItem table that contains+-- the title of the document. This is typically the @Title@ column.+salesforceChatterFeedConfiguration_documentTitleFieldName :: Lens.Lens' SalesforceChatterFeedConfiguration (Prelude.Maybe Prelude.Text)+salesforceChatterFeedConfiguration_documentTitleFieldName = Lens.lens (\SalesforceChatterFeedConfiguration' {documentTitleFieldName} -> documentTitleFieldName) (\s@SalesforceChatterFeedConfiguration' {} a -> s {documentTitleFieldName = a} :: SalesforceChatterFeedConfiguration)++-- | Maps fields from a Salesforce chatter feed into Amazon Kendra index+-- fields.+salesforceChatterFeedConfiguration_fieldMappings :: Lens.Lens' SalesforceChatterFeedConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+salesforceChatterFeedConfiguration_fieldMappings = Lens.lens (\SalesforceChatterFeedConfiguration' {fieldMappings} -> fieldMappings) (\s@SalesforceChatterFeedConfiguration' {} a -> s {fieldMappings = a} :: SalesforceChatterFeedConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Filters the documents in the feed based on status of the user. When you+-- specify @ACTIVE_USERS@ only documents from users who have an active+-- account are indexed. When you specify @STANDARD_USER@ only documents for+-- Salesforce standard users are documented. You can specify both.+salesforceChatterFeedConfiguration_includeFilterTypes :: Lens.Lens' SalesforceChatterFeedConfiguration (Prelude.Maybe (Prelude.NonEmpty SalesforceChatterFeedIncludeFilterType))+salesforceChatterFeedConfiguration_includeFilterTypes = Lens.lens (\SalesforceChatterFeedConfiguration' {includeFilterTypes} -> includeFilterTypes) (\s@SalesforceChatterFeedConfiguration' {} a -> s {includeFilterTypes = a} :: SalesforceChatterFeedConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The name of the column in the Salesforce FeedItem table that contains+-- the content to index. Typically this is the @Body@ column.+salesforceChatterFeedConfiguration_documentDataFieldName :: Lens.Lens' SalesforceChatterFeedConfiguration Prelude.Text+salesforceChatterFeedConfiguration_documentDataFieldName = Lens.lens (\SalesforceChatterFeedConfiguration' {documentDataFieldName} -> documentDataFieldName) (\s@SalesforceChatterFeedConfiguration' {} a -> s {documentDataFieldName = a} :: SalesforceChatterFeedConfiguration)++instance+  Data.FromJSON+    SalesforceChatterFeedConfiguration+  where+  parseJSON =+    Data.withObject+      "SalesforceChatterFeedConfiguration"+      ( \x ->+          SalesforceChatterFeedConfiguration'+            Prelude.<$> (x Data..:? "DocumentTitleFieldName")+            Prelude.<*> (x Data..:? "FieldMappings")+            Prelude.<*> (x Data..:? "IncludeFilterTypes")+            Prelude.<*> (x Data..: "DocumentDataFieldName")+      )++instance+  Prelude.Hashable+    SalesforceChatterFeedConfiguration+  where+  hashWithSalt+    _salt+    SalesforceChatterFeedConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` documentTitleFieldName+        `Prelude.hashWithSalt` fieldMappings+        `Prelude.hashWithSalt` includeFilterTypes+        `Prelude.hashWithSalt` documentDataFieldName++instance+  Prelude.NFData+    SalesforceChatterFeedConfiguration+  where+  rnf SalesforceChatterFeedConfiguration' {..} =+    Prelude.rnf documentTitleFieldName+      `Prelude.seq` Prelude.rnf fieldMappings+      `Prelude.seq` Prelude.rnf includeFilterTypes+      `Prelude.seq` Prelude.rnf documentDataFieldName++instance+  Data.ToJSON+    SalesforceChatterFeedConfiguration+  where+  toJSON SalesforceChatterFeedConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DocumentTitleFieldName" Data..=)+              Prelude.<$> documentTitleFieldName,+            ("FieldMappings" Data..=) Prelude.<$> fieldMappings,+            ("IncludeFilterTypes" Data..=)+              Prelude.<$> includeFilterTypes,+            Prelude.Just+              ( "DocumentDataFieldName"+                  Data..= documentDataFieldName+              )+          ]+      )
+ gen/Amazonka/Kendra/Types/SalesforceChatterFeedIncludeFilterType.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.Kendra.Types.SalesforceChatterFeedIncludeFilterType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SalesforceChatterFeedIncludeFilterType+  ( SalesforceChatterFeedIncludeFilterType+      ( ..,+        SalesforceChatterFeedIncludeFilterType_ACTIVE_USER,+        SalesforceChatterFeedIncludeFilterType_STANDARD_USER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SalesforceChatterFeedIncludeFilterType = SalesforceChatterFeedIncludeFilterType'+  { fromSalesforceChatterFeedIncludeFilterType ::+      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 SalesforceChatterFeedIncludeFilterType_ACTIVE_USER :: SalesforceChatterFeedIncludeFilterType+pattern SalesforceChatterFeedIncludeFilterType_ACTIVE_USER = SalesforceChatterFeedIncludeFilterType' "ACTIVE_USER"++pattern SalesforceChatterFeedIncludeFilterType_STANDARD_USER :: SalesforceChatterFeedIncludeFilterType+pattern SalesforceChatterFeedIncludeFilterType_STANDARD_USER = SalesforceChatterFeedIncludeFilterType' "STANDARD_USER"++{-# COMPLETE+  SalesforceChatterFeedIncludeFilterType_ACTIVE_USER,+  SalesforceChatterFeedIncludeFilterType_STANDARD_USER,+  SalesforceChatterFeedIncludeFilterType'+  #-}
+ gen/Amazonka/Kendra/Types/SalesforceConfiguration.hs view
@@ -0,0 +1,328 @@+{-# 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.Kendra.Types.SalesforceConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SalesforceConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.SalesforceChatterFeedConfiguration+import Amazonka.Kendra.Types.SalesforceKnowledgeArticleConfiguration+import Amazonka.Kendra.Types.SalesforceStandardObjectAttachmentConfiguration+import Amazonka.Kendra.Types.SalesforceStandardObjectConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to Salesforce as your+-- data source.+--+-- /See:/ 'newSalesforceConfiguration' smart constructor.+data SalesforceConfiguration = SalesforceConfiguration'+  { -- | Configuration information for Salesforce chatter feeds.+    chatterFeedConfiguration :: Prelude.Maybe SalesforceChatterFeedConfiguration,+    -- | Indicates whether Amazon Kendra should index attachments to Salesforce+    -- objects.+    crawlAttachments :: Prelude.Maybe Prelude.Bool,+    -- | A list of regular expression patterns to exclude certain documents in+    -- your Salesforce. Documents that match the patterns are excluded from the+    -- index. Documents that don\'t match the patterns are included in the+    -- index. If a document matches both an inclusion and exclusion pattern,+    -- the exclusion pattern takes precedence and the document isn\'t included+    -- in the index.+    --+    -- The pattern is applied to the name of the attached file.+    excludeAttachmentFilePatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of regular expression patterns to include certain documents in+    -- your Salesforce. Documents that match the patterns are included in the+    -- index. Documents that don\'t match the patterns are excluded from the+    -- index. If a document matches both an inclusion and exclusion pattern,+    -- the exclusion pattern takes precedence and the document isn\'t included+    -- in the index.+    --+    -- The pattern is applied to the name of the attached file.+    includeAttachmentFilePatterns :: Prelude.Maybe [Prelude.Text],+    -- | Configuration information for the knowledge article types that Amazon+    -- Kendra indexes. Amazon Kendra indexes standard knowledge articles and+    -- the standard fields of knowledge articles, or the custom fields of+    -- custom knowledge articles, but not both.+    knowledgeArticleConfiguration :: Prelude.Maybe SalesforceKnowledgeArticleConfiguration,+    -- | Configuration information for processing attachments to Salesforce+    -- standard objects.+    standardObjectAttachmentConfiguration :: Prelude.Maybe SalesforceStandardObjectAttachmentConfiguration,+    -- | Configuration of the Salesforce standard objects that Amazon Kendra+    -- indexes.+    standardObjectConfigurations :: Prelude.Maybe (Prelude.NonEmpty SalesforceStandardObjectConfiguration),+    -- | The instance URL for the Salesforce site that you want to index.+    serverUrl :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an Secrets Managersecret that contains+    -- the key\/value pairs required to connect to your Salesforce instance.+    -- The secret must contain a JSON structure with the following keys:+    --+    -- -   authenticationUrl - The OAUTH endpoint that Amazon Kendra connects+    --     to get an OAUTH token.+    --+    -- -   consumerKey - The application public key generated when you created+    --     your Salesforce application.+    --+    -- -   consumerSecret - The application private key generated when you+    --     created your Salesforce application.+    --+    -- -   password - The password associated with the user logging in to the+    --     Salesforce instance.+    --+    -- -   securityToken - The token associated with the user account logging+    --     in to the Salesforce instance.+    --+    -- -   username - The user name of the user logging in to the Salesforce+    --     instance.+    secretArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SalesforceConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'chatterFeedConfiguration', 'salesforceConfiguration_chatterFeedConfiguration' - Configuration information for Salesforce chatter feeds.+--+-- 'crawlAttachments', 'salesforceConfiguration_crawlAttachments' - Indicates whether Amazon Kendra should index attachments to Salesforce+-- objects.+--+-- 'excludeAttachmentFilePatterns', 'salesforceConfiguration_excludeAttachmentFilePatterns' - A list of regular expression patterns to exclude certain documents in+-- your Salesforce. Documents that match the patterns are excluded from the+-- index. Documents that don\'t match the patterns are included in the+-- index. If a document matches both an inclusion and exclusion pattern,+-- the exclusion pattern takes precedence and the document isn\'t included+-- in the index.+--+-- The pattern is applied to the name of the attached file.+--+-- 'includeAttachmentFilePatterns', 'salesforceConfiguration_includeAttachmentFilePatterns' - A list of regular expression patterns to include certain documents in+-- your Salesforce. Documents that match the patterns are included in the+-- index. Documents that don\'t match the patterns are excluded from the+-- index. If a document matches both an inclusion and exclusion pattern,+-- the exclusion pattern takes precedence and the document isn\'t included+-- in the index.+--+-- The pattern is applied to the name of the attached file.+--+-- 'knowledgeArticleConfiguration', 'salesforceConfiguration_knowledgeArticleConfiguration' - Configuration information for the knowledge article types that Amazon+-- Kendra indexes. Amazon Kendra indexes standard knowledge articles and+-- the standard fields of knowledge articles, or the custom fields of+-- custom knowledge articles, but not both.+--+-- 'standardObjectAttachmentConfiguration', 'salesforceConfiguration_standardObjectAttachmentConfiguration' - Configuration information for processing attachments to Salesforce+-- standard objects.+--+-- 'standardObjectConfigurations', 'salesforceConfiguration_standardObjectConfigurations' - Configuration of the Salesforce standard objects that Amazon Kendra+-- indexes.+--+-- 'serverUrl', 'salesforceConfiguration_serverUrl' - The instance URL for the Salesforce site that you want to index.+--+-- 'secretArn', 'salesforceConfiguration_secretArn' - The Amazon Resource Name (ARN) of an Secrets Managersecret that contains+-- the key\/value pairs required to connect to your Salesforce instance.+-- The secret must contain a JSON structure with the following keys:+--+-- -   authenticationUrl - The OAUTH endpoint that Amazon Kendra connects+--     to get an OAUTH token.+--+-- -   consumerKey - The application public key generated when you created+--     your Salesforce application.+--+-- -   consumerSecret - The application private key generated when you+--     created your Salesforce application.+--+-- -   password - The password associated with the user logging in to the+--     Salesforce instance.+--+-- -   securityToken - The token associated with the user account logging+--     in to the Salesforce instance.+--+-- -   username - The user name of the user logging in to the Salesforce+--     instance.+newSalesforceConfiguration ::+  -- | 'serverUrl'+  Prelude.Text ->+  -- | 'secretArn'+  Prelude.Text ->+  SalesforceConfiguration+newSalesforceConfiguration pServerUrl_ pSecretArn_ =+  SalesforceConfiguration'+    { chatterFeedConfiguration =+        Prelude.Nothing,+      crawlAttachments = Prelude.Nothing,+      excludeAttachmentFilePatterns = Prelude.Nothing,+      includeAttachmentFilePatterns = Prelude.Nothing,+      knowledgeArticleConfiguration = Prelude.Nothing,+      standardObjectAttachmentConfiguration =+        Prelude.Nothing,+      standardObjectConfigurations = Prelude.Nothing,+      serverUrl = pServerUrl_,+      secretArn = pSecretArn_+    }++-- | Configuration information for Salesforce chatter feeds.+salesforceConfiguration_chatterFeedConfiguration :: Lens.Lens' SalesforceConfiguration (Prelude.Maybe SalesforceChatterFeedConfiguration)+salesforceConfiguration_chatterFeedConfiguration = Lens.lens (\SalesforceConfiguration' {chatterFeedConfiguration} -> chatterFeedConfiguration) (\s@SalesforceConfiguration' {} a -> s {chatterFeedConfiguration = a} :: SalesforceConfiguration)++-- | Indicates whether Amazon Kendra should index attachments to Salesforce+-- objects.+salesforceConfiguration_crawlAttachments :: Lens.Lens' SalesforceConfiguration (Prelude.Maybe Prelude.Bool)+salesforceConfiguration_crawlAttachments = Lens.lens (\SalesforceConfiguration' {crawlAttachments} -> crawlAttachments) (\s@SalesforceConfiguration' {} a -> s {crawlAttachments = a} :: SalesforceConfiguration)++-- | A list of regular expression patterns to exclude certain documents in+-- your Salesforce. Documents that match the patterns are excluded from the+-- index. Documents that don\'t match the patterns are included in the+-- index. If a document matches both an inclusion and exclusion pattern,+-- the exclusion pattern takes precedence and the document isn\'t included+-- in the index.+--+-- The pattern is applied to the name of the attached file.+salesforceConfiguration_excludeAttachmentFilePatterns :: Lens.Lens' SalesforceConfiguration (Prelude.Maybe [Prelude.Text])+salesforceConfiguration_excludeAttachmentFilePatterns = Lens.lens (\SalesforceConfiguration' {excludeAttachmentFilePatterns} -> excludeAttachmentFilePatterns) (\s@SalesforceConfiguration' {} a -> s {excludeAttachmentFilePatterns = a} :: SalesforceConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to include certain documents in+-- your Salesforce. Documents that match the patterns are included in the+-- index. Documents that don\'t match the patterns are excluded from the+-- index. If a document matches both an inclusion and exclusion pattern,+-- the exclusion pattern takes precedence and the document isn\'t included+-- in the index.+--+-- The pattern is applied to the name of the attached file.+salesforceConfiguration_includeAttachmentFilePatterns :: Lens.Lens' SalesforceConfiguration (Prelude.Maybe [Prelude.Text])+salesforceConfiguration_includeAttachmentFilePatterns = Lens.lens (\SalesforceConfiguration' {includeAttachmentFilePatterns} -> includeAttachmentFilePatterns) (\s@SalesforceConfiguration' {} a -> s {includeAttachmentFilePatterns = a} :: SalesforceConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Configuration information for the knowledge article types that Amazon+-- Kendra indexes. Amazon Kendra indexes standard knowledge articles and+-- the standard fields of knowledge articles, or the custom fields of+-- custom knowledge articles, but not both.+salesforceConfiguration_knowledgeArticleConfiguration :: Lens.Lens' SalesforceConfiguration (Prelude.Maybe SalesforceKnowledgeArticleConfiguration)+salesforceConfiguration_knowledgeArticleConfiguration = Lens.lens (\SalesforceConfiguration' {knowledgeArticleConfiguration} -> knowledgeArticleConfiguration) (\s@SalesforceConfiguration' {} a -> s {knowledgeArticleConfiguration = a} :: SalesforceConfiguration)++-- | Configuration information for processing attachments to Salesforce+-- standard objects.+salesforceConfiguration_standardObjectAttachmentConfiguration :: Lens.Lens' SalesforceConfiguration (Prelude.Maybe SalesforceStandardObjectAttachmentConfiguration)+salesforceConfiguration_standardObjectAttachmentConfiguration = Lens.lens (\SalesforceConfiguration' {standardObjectAttachmentConfiguration} -> standardObjectAttachmentConfiguration) (\s@SalesforceConfiguration' {} a -> s {standardObjectAttachmentConfiguration = a} :: SalesforceConfiguration)++-- | Configuration of the Salesforce standard objects that Amazon Kendra+-- indexes.+salesforceConfiguration_standardObjectConfigurations :: Lens.Lens' SalesforceConfiguration (Prelude.Maybe (Prelude.NonEmpty SalesforceStandardObjectConfiguration))+salesforceConfiguration_standardObjectConfigurations = Lens.lens (\SalesforceConfiguration' {standardObjectConfigurations} -> standardObjectConfigurations) (\s@SalesforceConfiguration' {} a -> s {standardObjectConfigurations = a} :: SalesforceConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The instance URL for the Salesforce site that you want to index.+salesforceConfiguration_serverUrl :: Lens.Lens' SalesforceConfiguration Prelude.Text+salesforceConfiguration_serverUrl = Lens.lens (\SalesforceConfiguration' {serverUrl} -> serverUrl) (\s@SalesforceConfiguration' {} a -> s {serverUrl = a} :: SalesforceConfiguration)++-- | The Amazon Resource Name (ARN) of an Secrets Managersecret that contains+-- the key\/value pairs required to connect to your Salesforce instance.+-- The secret must contain a JSON structure with the following keys:+--+-- -   authenticationUrl - The OAUTH endpoint that Amazon Kendra connects+--     to get an OAUTH token.+--+-- -   consumerKey - The application public key generated when you created+--     your Salesforce application.+--+-- -   consumerSecret - The application private key generated when you+--     created your Salesforce application.+--+-- -   password - The password associated with the user logging in to the+--     Salesforce instance.+--+-- -   securityToken - The token associated with the user account logging+--     in to the Salesforce instance.+--+-- -   username - The user name of the user logging in to the Salesforce+--     instance.+salesforceConfiguration_secretArn :: Lens.Lens' SalesforceConfiguration Prelude.Text+salesforceConfiguration_secretArn = Lens.lens (\SalesforceConfiguration' {secretArn} -> secretArn) (\s@SalesforceConfiguration' {} a -> s {secretArn = a} :: SalesforceConfiguration)++instance Data.FromJSON SalesforceConfiguration where+  parseJSON =+    Data.withObject+      "SalesforceConfiguration"+      ( \x ->+          SalesforceConfiguration'+            Prelude.<$> (x Data..:? "ChatterFeedConfiguration")+            Prelude.<*> (x Data..:? "CrawlAttachments")+            Prelude.<*> ( x+                            Data..:? "ExcludeAttachmentFilePatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "IncludeAttachmentFilePatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "KnowledgeArticleConfiguration")+            Prelude.<*> (x Data..:? "StandardObjectAttachmentConfiguration")+            Prelude.<*> (x Data..:? "StandardObjectConfigurations")+            Prelude.<*> (x Data..: "ServerUrl")+            Prelude.<*> (x Data..: "SecretArn")+      )++instance Prelude.Hashable SalesforceConfiguration where+  hashWithSalt _salt SalesforceConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` chatterFeedConfiguration+      `Prelude.hashWithSalt` crawlAttachments+      `Prelude.hashWithSalt` excludeAttachmentFilePatterns+      `Prelude.hashWithSalt` includeAttachmentFilePatterns+      `Prelude.hashWithSalt` knowledgeArticleConfiguration+      `Prelude.hashWithSalt` standardObjectAttachmentConfiguration+      `Prelude.hashWithSalt` standardObjectConfigurations+      `Prelude.hashWithSalt` serverUrl+      `Prelude.hashWithSalt` secretArn++instance Prelude.NFData SalesforceConfiguration where+  rnf SalesforceConfiguration' {..} =+    Prelude.rnf chatterFeedConfiguration+      `Prelude.seq` Prelude.rnf crawlAttachments+      `Prelude.seq` Prelude.rnf excludeAttachmentFilePatterns+      `Prelude.seq` Prelude.rnf includeAttachmentFilePatterns+      `Prelude.seq` Prelude.rnf knowledgeArticleConfiguration+      `Prelude.seq` Prelude.rnf standardObjectAttachmentConfiguration+      `Prelude.seq` Prelude.rnf standardObjectConfigurations+      `Prelude.seq` Prelude.rnf serverUrl+      `Prelude.seq` Prelude.rnf secretArn++instance Data.ToJSON SalesforceConfiguration where+  toJSON SalesforceConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ChatterFeedConfiguration" Data..=)+              Prelude.<$> chatterFeedConfiguration,+            ("CrawlAttachments" Data..=)+              Prelude.<$> crawlAttachments,+            ("ExcludeAttachmentFilePatterns" Data..=)+              Prelude.<$> excludeAttachmentFilePatterns,+            ("IncludeAttachmentFilePatterns" Data..=)+              Prelude.<$> includeAttachmentFilePatterns,+            ("KnowledgeArticleConfiguration" Data..=)+              Prelude.<$> knowledgeArticleConfiguration,+            ("StandardObjectAttachmentConfiguration" Data..=)+              Prelude.<$> standardObjectAttachmentConfiguration,+            ("StandardObjectConfigurations" Data..=)+              Prelude.<$> standardObjectConfigurations,+            Prelude.Just ("ServerUrl" Data..= serverUrl),+            Prelude.Just ("SecretArn" Data..= secretArn)+          ]+      )
+ gen/Amazonka/Kendra/Types/SalesforceCustomKnowledgeArticleTypeConfiguration.hs view
@@ -0,0 +1,171 @@+{-# 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.Kendra.Types.SalesforceCustomKnowledgeArticleTypeConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SalesforceCustomKnowledgeArticleTypeConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for indexing Salesforce custom+-- articles.+--+-- /See:/ 'newSalesforceCustomKnowledgeArticleTypeConfiguration' smart constructor.+data SalesforceCustomKnowledgeArticleTypeConfiguration = SalesforceCustomKnowledgeArticleTypeConfiguration'+  { -- | The name of the field in the custom knowledge article that contains the+    -- document title.+    documentTitleFieldName :: Prelude.Maybe Prelude.Text,+    -- | Maps attributes or field names of the custom knowledge article to Amazon+    -- Kendra index field names. To create custom fields, use the @UpdateIndex@+    -- API before you map to Salesforce fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Salesforce data source field names must exist in your Salesforce+    -- custom metadata.+    fieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | The name of the configuration.+    name :: Prelude.Text,+    -- | The name of the field in the custom knowledge article that contains the+    -- document data to index.+    documentDataFieldName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SalesforceCustomKnowledgeArticleTypeConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'documentTitleFieldName', 'salesforceCustomKnowledgeArticleTypeConfiguration_documentTitleFieldName' - The name of the field in the custom knowledge article that contains the+-- document title.+--+-- 'fieldMappings', 'salesforceCustomKnowledgeArticleTypeConfiguration_fieldMappings' - Maps attributes or field names of the custom knowledge article to Amazon+-- Kendra index field names. To create custom fields, use the @UpdateIndex@+-- API before you map to Salesforce fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Salesforce data source field names must exist in your Salesforce+-- custom metadata.+--+-- 'name', 'salesforceCustomKnowledgeArticleTypeConfiguration_name' - The name of the configuration.+--+-- 'documentDataFieldName', 'salesforceCustomKnowledgeArticleTypeConfiguration_documentDataFieldName' - The name of the field in the custom knowledge article that contains the+-- document data to index.+newSalesforceCustomKnowledgeArticleTypeConfiguration ::+  -- | 'name'+  Prelude.Text ->+  -- | 'documentDataFieldName'+  Prelude.Text ->+  SalesforceCustomKnowledgeArticleTypeConfiguration+newSalesforceCustomKnowledgeArticleTypeConfiguration+  pName_+  pDocumentDataFieldName_ =+    SalesforceCustomKnowledgeArticleTypeConfiguration'+      { documentTitleFieldName =+          Prelude.Nothing,+        fieldMappings =+          Prelude.Nothing,+        name = pName_,+        documentDataFieldName =+          pDocumentDataFieldName_+      }++-- | The name of the field in the custom knowledge article that contains the+-- document title.+salesforceCustomKnowledgeArticleTypeConfiguration_documentTitleFieldName :: Lens.Lens' SalesforceCustomKnowledgeArticleTypeConfiguration (Prelude.Maybe Prelude.Text)+salesforceCustomKnowledgeArticleTypeConfiguration_documentTitleFieldName = Lens.lens (\SalesforceCustomKnowledgeArticleTypeConfiguration' {documentTitleFieldName} -> documentTitleFieldName) (\s@SalesforceCustomKnowledgeArticleTypeConfiguration' {} a -> s {documentTitleFieldName = a} :: SalesforceCustomKnowledgeArticleTypeConfiguration)++-- | Maps attributes or field names of the custom knowledge article to Amazon+-- Kendra index field names. To create custom fields, use the @UpdateIndex@+-- API before you map to Salesforce fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Salesforce data source field names must exist in your Salesforce+-- custom metadata.+salesforceCustomKnowledgeArticleTypeConfiguration_fieldMappings :: Lens.Lens' SalesforceCustomKnowledgeArticleTypeConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+salesforceCustomKnowledgeArticleTypeConfiguration_fieldMappings = Lens.lens (\SalesforceCustomKnowledgeArticleTypeConfiguration' {fieldMappings} -> fieldMappings) (\s@SalesforceCustomKnowledgeArticleTypeConfiguration' {} a -> s {fieldMappings = a} :: SalesforceCustomKnowledgeArticleTypeConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The name of the configuration.+salesforceCustomKnowledgeArticleTypeConfiguration_name :: Lens.Lens' SalesforceCustomKnowledgeArticleTypeConfiguration Prelude.Text+salesforceCustomKnowledgeArticleTypeConfiguration_name = Lens.lens (\SalesforceCustomKnowledgeArticleTypeConfiguration' {name} -> name) (\s@SalesforceCustomKnowledgeArticleTypeConfiguration' {} a -> s {name = a} :: SalesforceCustomKnowledgeArticleTypeConfiguration)++-- | The name of the field in the custom knowledge article that contains the+-- document data to index.+salesforceCustomKnowledgeArticleTypeConfiguration_documentDataFieldName :: Lens.Lens' SalesforceCustomKnowledgeArticleTypeConfiguration Prelude.Text+salesforceCustomKnowledgeArticleTypeConfiguration_documentDataFieldName = Lens.lens (\SalesforceCustomKnowledgeArticleTypeConfiguration' {documentDataFieldName} -> documentDataFieldName) (\s@SalesforceCustomKnowledgeArticleTypeConfiguration' {} a -> s {documentDataFieldName = a} :: SalesforceCustomKnowledgeArticleTypeConfiguration)++instance+  Data.FromJSON+    SalesforceCustomKnowledgeArticleTypeConfiguration+  where+  parseJSON =+    Data.withObject+      "SalesforceCustomKnowledgeArticleTypeConfiguration"+      ( \x ->+          SalesforceCustomKnowledgeArticleTypeConfiguration'+            Prelude.<$> (x Data..:? "DocumentTitleFieldName")+            Prelude.<*> (x Data..:? "FieldMappings")+            Prelude.<*> (x Data..: "Name")+            Prelude.<*> (x Data..: "DocumentDataFieldName")+      )++instance+  Prelude.Hashable+    SalesforceCustomKnowledgeArticleTypeConfiguration+  where+  hashWithSalt+    _salt+    SalesforceCustomKnowledgeArticleTypeConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` documentTitleFieldName+        `Prelude.hashWithSalt` fieldMappings+        `Prelude.hashWithSalt` name+        `Prelude.hashWithSalt` documentDataFieldName++instance+  Prelude.NFData+    SalesforceCustomKnowledgeArticleTypeConfiguration+  where+  rnf+    SalesforceCustomKnowledgeArticleTypeConfiguration' {..} =+      Prelude.rnf documentTitleFieldName+        `Prelude.seq` Prelude.rnf fieldMappings+        `Prelude.seq` Prelude.rnf name+        `Prelude.seq` Prelude.rnf documentDataFieldName++instance+  Data.ToJSON+    SalesforceCustomKnowledgeArticleTypeConfiguration+  where+  toJSON+    SalesforceCustomKnowledgeArticleTypeConfiguration' {..} =+      Data.object+        ( Prelude.catMaybes+            [ ("DocumentTitleFieldName" Data..=)+                Prelude.<$> documentTitleFieldName,+              ("FieldMappings" Data..=) Prelude.<$> fieldMappings,+              Prelude.Just ("Name" Data..= name),+              Prelude.Just+                ( "DocumentDataFieldName"+                    Data..= documentDataFieldName+                )+            ]+        )
+ gen/Amazonka/Kendra/Types/SalesforceKnowledgeArticleConfiguration.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.Kendra.Types.SalesforceKnowledgeArticleConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SalesforceKnowledgeArticleConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.SalesforceCustomKnowledgeArticleTypeConfiguration+import Amazonka.Kendra.Types.SalesforceKnowledgeArticleState+import Amazonka.Kendra.Types.SalesforceStandardKnowledgeArticleTypeConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for the knowledge article types+-- that Amazon Kendra indexes. Amazon Kendra indexes standard knowledge+-- articles and the standard fields of knowledge articles, or the custom+-- fields of custom knowledge articles, but not both+--+-- /See:/ 'newSalesforceKnowledgeArticleConfiguration' smart constructor.+data SalesforceKnowledgeArticleConfiguration = SalesforceKnowledgeArticleConfiguration'+  { -- | Configuration information for custom Salesforce knowledge articles.+    customKnowledgeArticleTypeConfigurations :: Prelude.Maybe (Prelude.NonEmpty SalesforceCustomKnowledgeArticleTypeConfiguration),+    -- | Configuration information for standard Salesforce knowledge articles.+    standardKnowledgeArticleTypeConfiguration :: Prelude.Maybe SalesforceStandardKnowledgeArticleTypeConfiguration,+    -- | Specifies the document states that should be included when Amazon Kendra+    -- indexes knowledge articles. You must specify at least one state.+    includedStates :: Prelude.NonEmpty SalesforceKnowledgeArticleState+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SalesforceKnowledgeArticleConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'customKnowledgeArticleTypeConfigurations', 'salesforceKnowledgeArticleConfiguration_customKnowledgeArticleTypeConfigurations' - Configuration information for custom Salesforce knowledge articles.+--+-- 'standardKnowledgeArticleTypeConfiguration', 'salesforceKnowledgeArticleConfiguration_standardKnowledgeArticleTypeConfiguration' - Configuration information for standard Salesforce knowledge articles.+--+-- 'includedStates', 'salesforceKnowledgeArticleConfiguration_includedStates' - Specifies the document states that should be included when Amazon Kendra+-- indexes knowledge articles. You must specify at least one state.+newSalesforceKnowledgeArticleConfiguration ::+  -- | 'includedStates'+  Prelude.NonEmpty SalesforceKnowledgeArticleState ->+  SalesforceKnowledgeArticleConfiguration+newSalesforceKnowledgeArticleConfiguration+  pIncludedStates_ =+    SalesforceKnowledgeArticleConfiguration'+      { customKnowledgeArticleTypeConfigurations =+          Prelude.Nothing,+        standardKnowledgeArticleTypeConfiguration =+          Prelude.Nothing,+        includedStates =+          Lens.coerced+            Lens.# pIncludedStates_+      }++-- | Configuration information for custom Salesforce knowledge articles.+salesforceKnowledgeArticleConfiguration_customKnowledgeArticleTypeConfigurations :: Lens.Lens' SalesforceKnowledgeArticleConfiguration (Prelude.Maybe (Prelude.NonEmpty SalesforceCustomKnowledgeArticleTypeConfiguration))+salesforceKnowledgeArticleConfiguration_customKnowledgeArticleTypeConfigurations = Lens.lens (\SalesforceKnowledgeArticleConfiguration' {customKnowledgeArticleTypeConfigurations} -> customKnowledgeArticleTypeConfigurations) (\s@SalesforceKnowledgeArticleConfiguration' {} a -> s {customKnowledgeArticleTypeConfigurations = a} :: SalesforceKnowledgeArticleConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Configuration information for standard Salesforce knowledge articles.+salesforceKnowledgeArticleConfiguration_standardKnowledgeArticleTypeConfiguration :: Lens.Lens' SalesforceKnowledgeArticleConfiguration (Prelude.Maybe SalesforceStandardKnowledgeArticleTypeConfiguration)+salesforceKnowledgeArticleConfiguration_standardKnowledgeArticleTypeConfiguration = Lens.lens (\SalesforceKnowledgeArticleConfiguration' {standardKnowledgeArticleTypeConfiguration} -> standardKnowledgeArticleTypeConfiguration) (\s@SalesforceKnowledgeArticleConfiguration' {} a -> s {standardKnowledgeArticleTypeConfiguration = a} :: SalesforceKnowledgeArticleConfiguration)++-- | Specifies the document states that should be included when Amazon Kendra+-- indexes knowledge articles. You must specify at least one state.+salesforceKnowledgeArticleConfiguration_includedStates :: Lens.Lens' SalesforceKnowledgeArticleConfiguration (Prelude.NonEmpty SalesforceKnowledgeArticleState)+salesforceKnowledgeArticleConfiguration_includedStates = Lens.lens (\SalesforceKnowledgeArticleConfiguration' {includedStates} -> includedStates) (\s@SalesforceKnowledgeArticleConfiguration' {} a -> s {includedStates = a} :: SalesforceKnowledgeArticleConfiguration) Prelude.. Lens.coerced++instance+  Data.FromJSON+    SalesforceKnowledgeArticleConfiguration+  where+  parseJSON =+    Data.withObject+      "SalesforceKnowledgeArticleConfiguration"+      ( \x ->+          SalesforceKnowledgeArticleConfiguration'+            Prelude.<$> ( x+                            Data..:? "CustomKnowledgeArticleTypeConfigurations"+                        )+            Prelude.<*> ( x+                            Data..:? "StandardKnowledgeArticleTypeConfiguration"+                        )+            Prelude.<*> (x Data..: "IncludedStates")+      )++instance+  Prelude.Hashable+    SalesforceKnowledgeArticleConfiguration+  where+  hashWithSalt+    _salt+    SalesforceKnowledgeArticleConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` customKnowledgeArticleTypeConfigurations+        `Prelude.hashWithSalt` standardKnowledgeArticleTypeConfiguration+        `Prelude.hashWithSalt` includedStates++instance+  Prelude.NFData+    SalesforceKnowledgeArticleConfiguration+  where+  rnf SalesforceKnowledgeArticleConfiguration' {..} =+    Prelude.rnf+      customKnowledgeArticleTypeConfigurations+      `Prelude.seq` Prelude.rnf standardKnowledgeArticleTypeConfiguration+      `Prelude.seq` Prelude.rnf includedStates++instance+  Data.ToJSON+    SalesforceKnowledgeArticleConfiguration+  where+  toJSON SalesforceKnowledgeArticleConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CustomKnowledgeArticleTypeConfigurations" Data..=)+              Prelude.<$> customKnowledgeArticleTypeConfigurations,+            ("StandardKnowledgeArticleTypeConfiguration" Data..=)+              Prelude.<$> standardKnowledgeArticleTypeConfiguration,+            Prelude.Just+              ("IncludedStates" Data..= includedStates)+          ]+      )
+ gen/Amazonka/Kendra/Types/SalesforceKnowledgeArticleState.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.Kendra.Types.SalesforceKnowledgeArticleState+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SalesforceKnowledgeArticleState+  ( SalesforceKnowledgeArticleState+      ( ..,+        SalesforceKnowledgeArticleState_ARCHIVED,+        SalesforceKnowledgeArticleState_DRAFT,+        SalesforceKnowledgeArticleState_PUBLISHED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SalesforceKnowledgeArticleState = SalesforceKnowledgeArticleState'+  { fromSalesforceKnowledgeArticleState ::+      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 SalesforceKnowledgeArticleState_ARCHIVED :: SalesforceKnowledgeArticleState+pattern SalesforceKnowledgeArticleState_ARCHIVED = SalesforceKnowledgeArticleState' "ARCHIVED"++pattern SalesforceKnowledgeArticleState_DRAFT :: SalesforceKnowledgeArticleState+pattern SalesforceKnowledgeArticleState_DRAFT = SalesforceKnowledgeArticleState' "DRAFT"++pattern SalesforceKnowledgeArticleState_PUBLISHED :: SalesforceKnowledgeArticleState+pattern SalesforceKnowledgeArticleState_PUBLISHED = SalesforceKnowledgeArticleState' "PUBLISHED"++{-# COMPLETE+  SalesforceKnowledgeArticleState_ARCHIVED,+  SalesforceKnowledgeArticleState_DRAFT,+  SalesforceKnowledgeArticleState_PUBLISHED,+  SalesforceKnowledgeArticleState'+  #-}
+ gen/Amazonka/Kendra/Types/SalesforceStandardKnowledgeArticleTypeConfiguration.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.Kendra.Types.SalesforceStandardKnowledgeArticleTypeConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SalesforceStandardKnowledgeArticleTypeConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for standard Salesforce knowledge+-- articles.+--+-- /See:/ 'newSalesforceStandardKnowledgeArticleTypeConfiguration' smart constructor.+data SalesforceStandardKnowledgeArticleTypeConfiguration = SalesforceStandardKnowledgeArticleTypeConfiguration'+  { -- | The name of the field that contains the document title.+    documentTitleFieldName :: Prelude.Maybe Prelude.Text,+    -- | Maps attributes or field names of the knowledge article to Amazon Kendra+    -- index field names. To create custom fields, use the @UpdateIndex@ API+    -- before you map to Salesforce fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Salesforce data source field names must exist in your Salesforce+    -- custom metadata.+    fieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | The name of the field that contains the document data to index.+    documentDataFieldName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SalesforceStandardKnowledgeArticleTypeConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'documentTitleFieldName', 'salesforceStandardKnowledgeArticleTypeConfiguration_documentTitleFieldName' - The name of the field that contains the document title.+--+-- 'fieldMappings', 'salesforceStandardKnowledgeArticleTypeConfiguration_fieldMappings' - Maps attributes or field names of the knowledge article to Amazon Kendra+-- index field names. To create custom fields, use the @UpdateIndex@ API+-- before you map to Salesforce fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Salesforce data source field names must exist in your Salesforce+-- custom metadata.+--+-- 'documentDataFieldName', 'salesforceStandardKnowledgeArticleTypeConfiguration_documentDataFieldName' - The name of the field that contains the document data to index.+newSalesforceStandardKnowledgeArticleTypeConfiguration ::+  -- | 'documentDataFieldName'+  Prelude.Text ->+  SalesforceStandardKnowledgeArticleTypeConfiguration+newSalesforceStandardKnowledgeArticleTypeConfiguration+  pDocumentDataFieldName_ =+    SalesforceStandardKnowledgeArticleTypeConfiguration'+      { documentTitleFieldName =+          Prelude.Nothing,+        fieldMappings =+          Prelude.Nothing,+        documentDataFieldName =+          pDocumentDataFieldName_+      }++-- | The name of the field that contains the document title.+salesforceStandardKnowledgeArticleTypeConfiguration_documentTitleFieldName :: Lens.Lens' SalesforceStandardKnowledgeArticleTypeConfiguration (Prelude.Maybe Prelude.Text)+salesforceStandardKnowledgeArticleTypeConfiguration_documentTitleFieldName = Lens.lens (\SalesforceStandardKnowledgeArticleTypeConfiguration' {documentTitleFieldName} -> documentTitleFieldName) (\s@SalesforceStandardKnowledgeArticleTypeConfiguration' {} a -> s {documentTitleFieldName = a} :: SalesforceStandardKnowledgeArticleTypeConfiguration)++-- | Maps attributes or field names of the knowledge article to Amazon Kendra+-- index field names. To create custom fields, use the @UpdateIndex@ API+-- before you map to Salesforce fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Salesforce data source field names must exist in your Salesforce+-- custom metadata.+salesforceStandardKnowledgeArticleTypeConfiguration_fieldMappings :: Lens.Lens' SalesforceStandardKnowledgeArticleTypeConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+salesforceStandardKnowledgeArticleTypeConfiguration_fieldMappings = Lens.lens (\SalesforceStandardKnowledgeArticleTypeConfiguration' {fieldMappings} -> fieldMappings) (\s@SalesforceStandardKnowledgeArticleTypeConfiguration' {} a -> s {fieldMappings = a} :: SalesforceStandardKnowledgeArticleTypeConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The name of the field that contains the document data to index.+salesforceStandardKnowledgeArticleTypeConfiguration_documentDataFieldName :: Lens.Lens' SalesforceStandardKnowledgeArticleTypeConfiguration Prelude.Text+salesforceStandardKnowledgeArticleTypeConfiguration_documentDataFieldName = Lens.lens (\SalesforceStandardKnowledgeArticleTypeConfiguration' {documentDataFieldName} -> documentDataFieldName) (\s@SalesforceStandardKnowledgeArticleTypeConfiguration' {} a -> s {documentDataFieldName = a} :: SalesforceStandardKnowledgeArticleTypeConfiguration)++instance+  Data.FromJSON+    SalesforceStandardKnowledgeArticleTypeConfiguration+  where+  parseJSON =+    Data.withObject+      "SalesforceStandardKnowledgeArticleTypeConfiguration"+      ( \x ->+          SalesforceStandardKnowledgeArticleTypeConfiguration'+            Prelude.<$> (x Data..:? "DocumentTitleFieldName")+            Prelude.<*> (x Data..:? "FieldMappings")+            Prelude.<*> (x Data..: "DocumentDataFieldName")+      )++instance+  Prelude.Hashable+    SalesforceStandardKnowledgeArticleTypeConfiguration+  where+  hashWithSalt+    _salt+    SalesforceStandardKnowledgeArticleTypeConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` documentTitleFieldName+        `Prelude.hashWithSalt` fieldMappings+        `Prelude.hashWithSalt` documentDataFieldName++instance+  Prelude.NFData+    SalesforceStandardKnowledgeArticleTypeConfiguration+  where+  rnf+    SalesforceStandardKnowledgeArticleTypeConfiguration' {..} =+      Prelude.rnf documentTitleFieldName+        `Prelude.seq` Prelude.rnf fieldMappings+        `Prelude.seq` Prelude.rnf documentDataFieldName++instance+  Data.ToJSON+    SalesforceStandardKnowledgeArticleTypeConfiguration+  where+  toJSON+    SalesforceStandardKnowledgeArticleTypeConfiguration' {..} =+      Data.object+        ( Prelude.catMaybes+            [ ("DocumentTitleFieldName" Data..=)+                Prelude.<$> documentTitleFieldName,+              ("FieldMappings" Data..=) Prelude.<$> fieldMappings,+              Prelude.Just+                ( "DocumentDataFieldName"+                    Data..= documentDataFieldName+                )+            ]+        )
+ gen/Amazonka/Kendra/Types/SalesforceStandardObjectAttachmentConfiguration.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.Kendra.Types.SalesforceStandardObjectAttachmentConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SalesforceStandardObjectAttachmentConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for processing attachments to+-- Salesforce standard objects.+--+-- /See:/ 'newSalesforceStandardObjectAttachmentConfiguration' smart constructor.+data SalesforceStandardObjectAttachmentConfiguration = SalesforceStandardObjectAttachmentConfiguration'+  { -- | The name of the field used for the document title.+    documentTitleFieldName :: Prelude.Maybe Prelude.Text,+    -- | One or more objects that map fields in attachments to Amazon Kendra+    -- index fields.+    fieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SalesforceStandardObjectAttachmentConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'documentTitleFieldName', 'salesforceStandardObjectAttachmentConfiguration_documentTitleFieldName' - The name of the field used for the document title.+--+-- 'fieldMappings', 'salesforceStandardObjectAttachmentConfiguration_fieldMappings' - One or more objects that map fields in attachments to Amazon Kendra+-- index fields.+newSalesforceStandardObjectAttachmentConfiguration ::+  SalesforceStandardObjectAttachmentConfiguration+newSalesforceStandardObjectAttachmentConfiguration =+  SalesforceStandardObjectAttachmentConfiguration'+    { documentTitleFieldName =+        Prelude.Nothing,+      fieldMappings =+        Prelude.Nothing+    }++-- | The name of the field used for the document title.+salesforceStandardObjectAttachmentConfiguration_documentTitleFieldName :: Lens.Lens' SalesforceStandardObjectAttachmentConfiguration (Prelude.Maybe Prelude.Text)+salesforceStandardObjectAttachmentConfiguration_documentTitleFieldName = Lens.lens (\SalesforceStandardObjectAttachmentConfiguration' {documentTitleFieldName} -> documentTitleFieldName) (\s@SalesforceStandardObjectAttachmentConfiguration' {} a -> s {documentTitleFieldName = a} :: SalesforceStandardObjectAttachmentConfiguration)++-- | One or more objects that map fields in attachments to Amazon Kendra+-- index fields.+salesforceStandardObjectAttachmentConfiguration_fieldMappings :: Lens.Lens' SalesforceStandardObjectAttachmentConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+salesforceStandardObjectAttachmentConfiguration_fieldMappings = Lens.lens (\SalesforceStandardObjectAttachmentConfiguration' {fieldMappings} -> fieldMappings) (\s@SalesforceStandardObjectAttachmentConfiguration' {} a -> s {fieldMappings = a} :: SalesforceStandardObjectAttachmentConfiguration) Prelude.. Lens.mapping Lens.coerced++instance+  Data.FromJSON+    SalesforceStandardObjectAttachmentConfiguration+  where+  parseJSON =+    Data.withObject+      "SalesforceStandardObjectAttachmentConfiguration"+      ( \x ->+          SalesforceStandardObjectAttachmentConfiguration'+            Prelude.<$> (x Data..:? "DocumentTitleFieldName")+            Prelude.<*> (x Data..:? "FieldMappings")+      )++instance+  Prelude.Hashable+    SalesforceStandardObjectAttachmentConfiguration+  where+  hashWithSalt+    _salt+    SalesforceStandardObjectAttachmentConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` documentTitleFieldName+        `Prelude.hashWithSalt` fieldMappings++instance+  Prelude.NFData+    SalesforceStandardObjectAttachmentConfiguration+  where+  rnf+    SalesforceStandardObjectAttachmentConfiguration' {..} =+      Prelude.rnf documentTitleFieldName+        `Prelude.seq` Prelude.rnf fieldMappings++instance+  Data.ToJSON+    SalesforceStandardObjectAttachmentConfiguration+  where+  toJSON+    SalesforceStandardObjectAttachmentConfiguration' {..} =+      Data.object+        ( Prelude.catMaybes+            [ ("DocumentTitleFieldName" Data..=)+                Prelude.<$> documentTitleFieldName,+              ("FieldMappings" Data..=) Prelude.<$> fieldMappings+            ]+        )
+ gen/Amazonka/Kendra/Types/SalesforceStandardObjectConfiguration.hs view
@@ -0,0 +1,169 @@+{-# 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.Kendra.Types.SalesforceStandardObjectConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SalesforceStandardObjectConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import Amazonka.Kendra.Types.SalesforceStandardObjectName+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for indexing a single standard+-- object.+--+-- /See:/ 'newSalesforceStandardObjectConfiguration' smart constructor.+data SalesforceStandardObjectConfiguration = SalesforceStandardObjectConfiguration'+  { -- | The name of the field in the standard object table that contains the+    -- document title.+    documentTitleFieldName :: Prelude.Maybe Prelude.Text,+    -- | Maps attributes or field names of the standard object to Amazon Kendra+    -- index field names. To create custom fields, use the @UpdateIndex@ API+    -- before you map to Salesforce fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Salesforce data source field names must exist in your Salesforce+    -- custom metadata.+    fieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | The name of the standard object.+    name :: SalesforceStandardObjectName,+    -- | The name of the field in the standard object table that contains the+    -- document contents.+    documentDataFieldName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SalesforceStandardObjectConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'documentTitleFieldName', 'salesforceStandardObjectConfiguration_documentTitleFieldName' - The name of the field in the standard object table that contains the+-- document title.+--+-- 'fieldMappings', 'salesforceStandardObjectConfiguration_fieldMappings' - Maps attributes or field names of the standard object to Amazon Kendra+-- index field names. To create custom fields, use the @UpdateIndex@ API+-- before you map to Salesforce fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Salesforce data source field names must exist in your Salesforce+-- custom metadata.+--+-- 'name', 'salesforceStandardObjectConfiguration_name' - The name of the standard object.+--+-- 'documentDataFieldName', 'salesforceStandardObjectConfiguration_documentDataFieldName' - The name of the field in the standard object table that contains the+-- document contents.+newSalesforceStandardObjectConfiguration ::+  -- | 'name'+  SalesforceStandardObjectName ->+  -- | 'documentDataFieldName'+  Prelude.Text ->+  SalesforceStandardObjectConfiguration+newSalesforceStandardObjectConfiguration+  pName_+  pDocumentDataFieldName_ =+    SalesforceStandardObjectConfiguration'+      { documentTitleFieldName =+          Prelude.Nothing,+        fieldMappings = Prelude.Nothing,+        name = pName_,+        documentDataFieldName =+          pDocumentDataFieldName_+      }++-- | The name of the field in the standard object table that contains the+-- document title.+salesforceStandardObjectConfiguration_documentTitleFieldName :: Lens.Lens' SalesforceStandardObjectConfiguration (Prelude.Maybe Prelude.Text)+salesforceStandardObjectConfiguration_documentTitleFieldName = Lens.lens (\SalesforceStandardObjectConfiguration' {documentTitleFieldName} -> documentTitleFieldName) (\s@SalesforceStandardObjectConfiguration' {} a -> s {documentTitleFieldName = a} :: SalesforceStandardObjectConfiguration)++-- | Maps attributes or field names of the standard object to Amazon Kendra+-- index field names. To create custom fields, use the @UpdateIndex@ API+-- before you map to Salesforce fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Salesforce data source field names must exist in your Salesforce+-- custom metadata.+salesforceStandardObjectConfiguration_fieldMappings :: Lens.Lens' SalesforceStandardObjectConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+salesforceStandardObjectConfiguration_fieldMappings = Lens.lens (\SalesforceStandardObjectConfiguration' {fieldMappings} -> fieldMappings) (\s@SalesforceStandardObjectConfiguration' {} a -> s {fieldMappings = a} :: SalesforceStandardObjectConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The name of the standard object.+salesforceStandardObjectConfiguration_name :: Lens.Lens' SalesforceStandardObjectConfiguration SalesforceStandardObjectName+salesforceStandardObjectConfiguration_name = Lens.lens (\SalesforceStandardObjectConfiguration' {name} -> name) (\s@SalesforceStandardObjectConfiguration' {} a -> s {name = a} :: SalesforceStandardObjectConfiguration)++-- | The name of the field in the standard object table that contains the+-- document contents.+salesforceStandardObjectConfiguration_documentDataFieldName :: Lens.Lens' SalesforceStandardObjectConfiguration Prelude.Text+salesforceStandardObjectConfiguration_documentDataFieldName = Lens.lens (\SalesforceStandardObjectConfiguration' {documentDataFieldName} -> documentDataFieldName) (\s@SalesforceStandardObjectConfiguration' {} a -> s {documentDataFieldName = a} :: SalesforceStandardObjectConfiguration)++instance+  Data.FromJSON+    SalesforceStandardObjectConfiguration+  where+  parseJSON =+    Data.withObject+      "SalesforceStandardObjectConfiguration"+      ( \x ->+          SalesforceStandardObjectConfiguration'+            Prelude.<$> (x Data..:? "DocumentTitleFieldName")+            Prelude.<*> (x Data..:? "FieldMappings")+            Prelude.<*> (x Data..: "Name")+            Prelude.<*> (x Data..: "DocumentDataFieldName")+      )++instance+  Prelude.Hashable+    SalesforceStandardObjectConfiguration+  where+  hashWithSalt+    _salt+    SalesforceStandardObjectConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` documentTitleFieldName+        `Prelude.hashWithSalt` fieldMappings+        `Prelude.hashWithSalt` name+        `Prelude.hashWithSalt` documentDataFieldName++instance+  Prelude.NFData+    SalesforceStandardObjectConfiguration+  where+  rnf SalesforceStandardObjectConfiguration' {..} =+    Prelude.rnf documentTitleFieldName+      `Prelude.seq` Prelude.rnf fieldMappings+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf documentDataFieldName++instance+  Data.ToJSON+    SalesforceStandardObjectConfiguration+  where+  toJSON SalesforceStandardObjectConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DocumentTitleFieldName" Data..=)+              Prelude.<$> documentTitleFieldName,+            ("FieldMappings" Data..=) Prelude.<$> fieldMappings,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just+              ( "DocumentDataFieldName"+                  Data..= documentDataFieldName+              )+          ]+      )
+ gen/Amazonka/Kendra/Types/SalesforceStandardObjectName.hs view
@@ -0,0 +1,146 @@+{-# 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.Kendra.Types.SalesforceStandardObjectName+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SalesforceStandardObjectName+  ( SalesforceStandardObjectName+      ( ..,+        SalesforceStandardObjectName_ACCOUNT,+        SalesforceStandardObjectName_CAMPAIGN,+        SalesforceStandardObjectName_CASE,+        SalesforceStandardObjectName_CONTACT,+        SalesforceStandardObjectName_CONTRACT,+        SalesforceStandardObjectName_DOCUMENT,+        SalesforceStandardObjectName_GROUP,+        SalesforceStandardObjectName_IDEA,+        SalesforceStandardObjectName_LEAD,+        SalesforceStandardObjectName_OPPORTUNITY,+        SalesforceStandardObjectName_PARTNER,+        SalesforceStandardObjectName_PRICEBOOK,+        SalesforceStandardObjectName_PRODUCT,+        SalesforceStandardObjectName_PROFILE,+        SalesforceStandardObjectName_SOLUTION,+        SalesforceStandardObjectName_TASK,+        SalesforceStandardObjectName_USER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SalesforceStandardObjectName = SalesforceStandardObjectName'+  { fromSalesforceStandardObjectName ::+      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 SalesforceStandardObjectName_ACCOUNT :: SalesforceStandardObjectName+pattern SalesforceStandardObjectName_ACCOUNT = SalesforceStandardObjectName' "ACCOUNT"++pattern SalesforceStandardObjectName_CAMPAIGN :: SalesforceStandardObjectName+pattern SalesforceStandardObjectName_CAMPAIGN = SalesforceStandardObjectName' "CAMPAIGN"++pattern SalesforceStandardObjectName_CASE :: SalesforceStandardObjectName+pattern SalesforceStandardObjectName_CASE = SalesforceStandardObjectName' "CASE"++pattern SalesforceStandardObjectName_CONTACT :: SalesforceStandardObjectName+pattern SalesforceStandardObjectName_CONTACT = SalesforceStandardObjectName' "CONTACT"++pattern SalesforceStandardObjectName_CONTRACT :: SalesforceStandardObjectName+pattern SalesforceStandardObjectName_CONTRACT = SalesforceStandardObjectName' "CONTRACT"++pattern SalesforceStandardObjectName_DOCUMENT :: SalesforceStandardObjectName+pattern SalesforceStandardObjectName_DOCUMENT = SalesforceStandardObjectName' "DOCUMENT"++pattern SalesforceStandardObjectName_GROUP :: SalesforceStandardObjectName+pattern SalesforceStandardObjectName_GROUP = SalesforceStandardObjectName' "GROUP"++pattern SalesforceStandardObjectName_IDEA :: SalesforceStandardObjectName+pattern SalesforceStandardObjectName_IDEA = SalesforceStandardObjectName' "IDEA"++pattern SalesforceStandardObjectName_LEAD :: SalesforceStandardObjectName+pattern SalesforceStandardObjectName_LEAD = SalesforceStandardObjectName' "LEAD"++pattern SalesforceStandardObjectName_OPPORTUNITY :: SalesforceStandardObjectName+pattern SalesforceStandardObjectName_OPPORTUNITY = SalesforceStandardObjectName' "OPPORTUNITY"++pattern SalesforceStandardObjectName_PARTNER :: SalesforceStandardObjectName+pattern SalesforceStandardObjectName_PARTNER = SalesforceStandardObjectName' "PARTNER"++pattern SalesforceStandardObjectName_PRICEBOOK :: SalesforceStandardObjectName+pattern SalesforceStandardObjectName_PRICEBOOK = SalesforceStandardObjectName' "PRICEBOOK"++pattern SalesforceStandardObjectName_PRODUCT :: SalesforceStandardObjectName+pattern SalesforceStandardObjectName_PRODUCT = SalesforceStandardObjectName' "PRODUCT"++pattern SalesforceStandardObjectName_PROFILE :: SalesforceStandardObjectName+pattern SalesforceStandardObjectName_PROFILE = SalesforceStandardObjectName' "PROFILE"++pattern SalesforceStandardObjectName_SOLUTION :: SalesforceStandardObjectName+pattern SalesforceStandardObjectName_SOLUTION = SalesforceStandardObjectName' "SOLUTION"++pattern SalesforceStandardObjectName_TASK :: SalesforceStandardObjectName+pattern SalesforceStandardObjectName_TASK = SalesforceStandardObjectName' "TASK"++pattern SalesforceStandardObjectName_USER :: SalesforceStandardObjectName+pattern SalesforceStandardObjectName_USER = SalesforceStandardObjectName' "USER"++{-# COMPLETE+  SalesforceStandardObjectName_ACCOUNT,+  SalesforceStandardObjectName_CAMPAIGN,+  SalesforceStandardObjectName_CASE,+  SalesforceStandardObjectName_CONTACT,+  SalesforceStandardObjectName_CONTRACT,+  SalesforceStandardObjectName_DOCUMENT,+  SalesforceStandardObjectName_GROUP,+  SalesforceStandardObjectName_IDEA,+  SalesforceStandardObjectName_LEAD,+  SalesforceStandardObjectName_OPPORTUNITY,+  SalesforceStandardObjectName_PARTNER,+  SalesforceStandardObjectName_PRICEBOOK,+  SalesforceStandardObjectName_PRODUCT,+  SalesforceStandardObjectName_PROFILE,+  SalesforceStandardObjectName_SOLUTION,+  SalesforceStandardObjectName_TASK,+  SalesforceStandardObjectName_USER,+  SalesforceStandardObjectName'+  #-}
+ gen/Amazonka/Kendra/Types/ScoreAttributes.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.ScoreAttributes+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ScoreAttributes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ScoreConfidence+import qualified Amazonka.Prelude as Prelude++-- | Provides a relative ranking that indicates how confident Amazon Kendra+-- is that the response matches the query.+--+-- /See:/ 'newScoreAttributes' smart constructor.+data ScoreAttributes = ScoreAttributes'+  { -- | A relative ranking for how well the response matches the query.+    scoreConfidence :: Prelude.Maybe ScoreConfidence+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ScoreAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'scoreConfidence', 'scoreAttributes_scoreConfidence' - A relative ranking for how well the response matches the query.+newScoreAttributes ::+  ScoreAttributes+newScoreAttributes =+  ScoreAttributes' {scoreConfidence = Prelude.Nothing}++-- | A relative ranking for how well the response matches the query.+scoreAttributes_scoreConfidence :: Lens.Lens' ScoreAttributes (Prelude.Maybe ScoreConfidence)+scoreAttributes_scoreConfidence = Lens.lens (\ScoreAttributes' {scoreConfidence} -> scoreConfidence) (\s@ScoreAttributes' {} a -> s {scoreConfidence = a} :: ScoreAttributes)++instance Data.FromJSON ScoreAttributes where+  parseJSON =+    Data.withObject+      "ScoreAttributes"+      ( \x ->+          ScoreAttributes'+            Prelude.<$> (x Data..:? "ScoreConfidence")+      )++instance Prelude.Hashable ScoreAttributes where+  hashWithSalt _salt ScoreAttributes' {..} =+    _salt `Prelude.hashWithSalt` scoreConfidence++instance Prelude.NFData ScoreAttributes where+  rnf ScoreAttributes' {..} =+    Prelude.rnf scoreConfidence
+ gen/Amazonka/Kendra/Types/ScoreConfidence.hs view
@@ -0,0 +1,87 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.ScoreConfidence+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ScoreConfidence+  ( ScoreConfidence+      ( ..,+        ScoreConfidence_HIGH,+        ScoreConfidence_LOW,+        ScoreConfidence_MEDIUM,+        ScoreConfidence_NOT_AVAILABLE,+        ScoreConfidence_VERY_HIGH+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Enumeration for query score confidence.+newtype ScoreConfidence = ScoreConfidence'+  { fromScoreConfidence ::+      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 ScoreConfidence_HIGH :: ScoreConfidence+pattern ScoreConfidence_HIGH = ScoreConfidence' "HIGH"++pattern ScoreConfidence_LOW :: ScoreConfidence+pattern ScoreConfidence_LOW = ScoreConfidence' "LOW"++pattern ScoreConfidence_MEDIUM :: ScoreConfidence+pattern ScoreConfidence_MEDIUM = ScoreConfidence' "MEDIUM"++pattern ScoreConfidence_NOT_AVAILABLE :: ScoreConfidence+pattern ScoreConfidence_NOT_AVAILABLE = ScoreConfidence' "NOT_AVAILABLE"++pattern ScoreConfidence_VERY_HIGH :: ScoreConfidence+pattern ScoreConfidence_VERY_HIGH = ScoreConfidence' "VERY_HIGH"++{-# COMPLETE+  ScoreConfidence_HIGH,+  ScoreConfidence_LOW,+  ScoreConfidence_MEDIUM,+  ScoreConfidence_NOT_AVAILABLE,+  ScoreConfidence_VERY_HIGH,+  ScoreConfidence'+  #-}
+ gen/Amazonka/Kendra/Types/Search.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.Kendra.Types.Search+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.Search 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 how a custom index field is used during a+-- search.+--+-- /See:/ 'newSearch' smart constructor.+data Search = Search'+  { -- | Determines whether the field is returned in the query response. The+    -- default is @true@.+    displayable :: Prelude.Maybe Prelude.Bool,+    -- | Indicates that the field can be used to create search facets, a count of+    -- results for each value in the field. The default is @false@ .+    facetable :: Prelude.Maybe Prelude.Bool,+    -- | Determines whether the field is used in the search. If the @Searchable@+    -- field is @true@, you can use relevance tuning to manually tune how+    -- Amazon Kendra weights the field in the search. The default is @true@ for+    -- string fields and @false@ for number and date fields.+    searchable :: Prelude.Maybe Prelude.Bool,+    -- | Determines whether the field can be used to sort the results of a query.+    -- If you specify sorting on a field that does not have @Sortable@ set to+    -- @true@, Amazon Kendra returns an exception. The default is @false@.+    sortable :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Search' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'displayable', 'search_displayable' - Determines whether the field is returned in the query response. The+-- default is @true@.+--+-- 'facetable', 'search_facetable' - Indicates that the field can be used to create search facets, a count of+-- results for each value in the field. The default is @false@ .+--+-- 'searchable', 'search_searchable' - Determines whether the field is used in the search. If the @Searchable@+-- field is @true@, you can use relevance tuning to manually tune how+-- Amazon Kendra weights the field in the search. The default is @true@ for+-- string fields and @false@ for number and date fields.+--+-- 'sortable', 'search_sortable' - Determines whether the field can be used to sort the results of a query.+-- If you specify sorting on a field that does not have @Sortable@ set to+-- @true@, Amazon Kendra returns an exception. The default is @false@.+newSearch ::+  Search+newSearch =+  Search'+    { displayable = Prelude.Nothing,+      facetable = Prelude.Nothing,+      searchable = Prelude.Nothing,+      sortable = Prelude.Nothing+    }++-- | Determines whether the field is returned in the query response. The+-- default is @true@.+search_displayable :: Lens.Lens' Search (Prelude.Maybe Prelude.Bool)+search_displayable = Lens.lens (\Search' {displayable} -> displayable) (\s@Search' {} a -> s {displayable = a} :: Search)++-- | Indicates that the field can be used to create search facets, a count of+-- results for each value in the field. The default is @false@ .+search_facetable :: Lens.Lens' Search (Prelude.Maybe Prelude.Bool)+search_facetable = Lens.lens (\Search' {facetable} -> facetable) (\s@Search' {} a -> s {facetable = a} :: Search)++-- | Determines whether the field is used in the search. If the @Searchable@+-- field is @true@, you can use relevance tuning to manually tune how+-- Amazon Kendra weights the field in the search. The default is @true@ for+-- string fields and @false@ for number and date fields.+search_searchable :: Lens.Lens' Search (Prelude.Maybe Prelude.Bool)+search_searchable = Lens.lens (\Search' {searchable} -> searchable) (\s@Search' {} a -> s {searchable = a} :: Search)++-- | Determines whether the field can be used to sort the results of a query.+-- If you specify sorting on a field that does not have @Sortable@ set to+-- @true@, Amazon Kendra returns an exception. The default is @false@.+search_sortable :: Lens.Lens' Search (Prelude.Maybe Prelude.Bool)+search_sortable = Lens.lens (\Search' {sortable} -> sortable) (\s@Search' {} a -> s {sortable = a} :: Search)++instance Data.FromJSON Search where+  parseJSON =+    Data.withObject+      "Search"+      ( \x ->+          Search'+            Prelude.<$> (x Data..:? "Displayable")+            Prelude.<*> (x Data..:? "Facetable")+            Prelude.<*> (x Data..:? "Searchable")+            Prelude.<*> (x Data..:? "Sortable")+      )++instance Prelude.Hashable Search where+  hashWithSalt _salt Search' {..} =+    _salt+      `Prelude.hashWithSalt` displayable+      `Prelude.hashWithSalt` facetable+      `Prelude.hashWithSalt` searchable+      `Prelude.hashWithSalt` sortable++instance Prelude.NFData Search where+  rnf Search' {..} =+    Prelude.rnf displayable+      `Prelude.seq` Prelude.rnf facetable+      `Prelude.seq` Prelude.rnf searchable+      `Prelude.seq` Prelude.rnf sortable++instance Data.ToJSON Search where+  toJSON Search' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Displayable" Data..=) Prelude.<$> displayable,+            ("Facetable" Data..=) Prelude.<$> facetable,+            ("Searchable" Data..=) Prelude.<$> searchable,+            ("Sortable" Data..=) Prelude.<$> sortable+          ]+      )
+ gen/Amazonka/Kendra/Types/SeedUrlConfiguration.hs view
@@ -0,0 +1,151 @@+{-# 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.Kendra.Types.SeedUrlConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SeedUrlConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.WebCrawlerMode+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for the seed or starting point+-- URLs to crawl.+--+-- /When selecting websites to index, you must adhere to the+-- <https://aws.amazon.com/aup/ Amazon Acceptable Use Policy> and all other+-- Amazon terms. Remember that you must only use Amazon Kendra Web Crawler+-- to index your own webpages, or webpages that you have authorization to+-- index./+--+-- /See:/ 'newSeedUrlConfiguration' smart constructor.+data SeedUrlConfiguration = SeedUrlConfiguration'+  { -- | You can choose one of the following modes:+    --+    -- -   @HOST_ONLY@ – crawl only the website host names. For example, if the+    --     seed URL is \"abc.example.com\", then only URLs with host name+    --     \"abc.example.com\" are crawled.+    --+    -- -   @SUBDOMAINS@ – crawl the website host names with subdomains. For+    --     example, if the seed URL is \"abc.example.com\", then+    --     \"a.abc.example.com\" and \"b.abc.example.com\" are also crawled.+    --+    -- -   @EVERYTHING@ – crawl the website host names with subdomains and+    --     other domains that the webpages link to.+    --+    -- The default mode is set to @HOST_ONLY@.+    webCrawlerMode :: Prelude.Maybe WebCrawlerMode,+    -- | The list of seed or starting point URLs of the websites you want to+    -- crawl.+    --+    -- The list can include a maximum of 100 seed URLs.+    seedUrls :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SeedUrlConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'webCrawlerMode', 'seedUrlConfiguration_webCrawlerMode' - You can choose one of the following modes:+--+-- -   @HOST_ONLY@ – crawl only the website host names. For example, if the+--     seed URL is \"abc.example.com\", then only URLs with host name+--     \"abc.example.com\" are crawled.+--+-- -   @SUBDOMAINS@ – crawl the website host names with subdomains. For+--     example, if the seed URL is \"abc.example.com\", then+--     \"a.abc.example.com\" and \"b.abc.example.com\" are also crawled.+--+-- -   @EVERYTHING@ – crawl the website host names with subdomains and+--     other domains that the webpages link to.+--+-- The default mode is set to @HOST_ONLY@.+--+-- 'seedUrls', 'seedUrlConfiguration_seedUrls' - The list of seed or starting point URLs of the websites you want to+-- crawl.+--+-- The list can include a maximum of 100 seed URLs.+newSeedUrlConfiguration ::+  SeedUrlConfiguration+newSeedUrlConfiguration =+  SeedUrlConfiguration'+    { webCrawlerMode =+        Prelude.Nothing,+      seedUrls = Prelude.mempty+    }++-- | You can choose one of the following modes:+--+-- -   @HOST_ONLY@ – crawl only the website host names. For example, if the+--     seed URL is \"abc.example.com\", then only URLs with host name+--     \"abc.example.com\" are crawled.+--+-- -   @SUBDOMAINS@ – crawl the website host names with subdomains. For+--     example, if the seed URL is \"abc.example.com\", then+--     \"a.abc.example.com\" and \"b.abc.example.com\" are also crawled.+--+-- -   @EVERYTHING@ – crawl the website host names with subdomains and+--     other domains that the webpages link to.+--+-- The default mode is set to @HOST_ONLY@.+seedUrlConfiguration_webCrawlerMode :: Lens.Lens' SeedUrlConfiguration (Prelude.Maybe WebCrawlerMode)+seedUrlConfiguration_webCrawlerMode = Lens.lens (\SeedUrlConfiguration' {webCrawlerMode} -> webCrawlerMode) (\s@SeedUrlConfiguration' {} a -> s {webCrawlerMode = a} :: SeedUrlConfiguration)++-- | The list of seed or starting point URLs of the websites you want to+-- crawl.+--+-- The list can include a maximum of 100 seed URLs.+seedUrlConfiguration_seedUrls :: Lens.Lens' SeedUrlConfiguration [Prelude.Text]+seedUrlConfiguration_seedUrls = Lens.lens (\SeedUrlConfiguration' {seedUrls} -> seedUrls) (\s@SeedUrlConfiguration' {} a -> s {seedUrls = a} :: SeedUrlConfiguration) Prelude.. Lens.coerced++instance Data.FromJSON SeedUrlConfiguration where+  parseJSON =+    Data.withObject+      "SeedUrlConfiguration"+      ( \x ->+          SeedUrlConfiguration'+            Prelude.<$> (x Data..:? "WebCrawlerMode")+            Prelude.<*> (x Data..:? "SeedUrls" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable SeedUrlConfiguration where+  hashWithSalt _salt SeedUrlConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` webCrawlerMode+      `Prelude.hashWithSalt` seedUrls++instance Prelude.NFData SeedUrlConfiguration where+  rnf SeedUrlConfiguration' {..} =+    Prelude.rnf webCrawlerMode+      `Prelude.seq` Prelude.rnf seedUrls++instance Data.ToJSON SeedUrlConfiguration where+  toJSON SeedUrlConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("WebCrawlerMode" Data..=)+              Prelude.<$> webCrawlerMode,+            Prelude.Just ("SeedUrls" Data..= seedUrls)+          ]+      )
+ gen/Amazonka/Kendra/Types/ServerSideEncryptionConfiguration.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.Kendra.Types.ServerSideEncryptionConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ServerSideEncryptionConfiguration 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 identifier of the KMS key used to encrypt data indexed by+-- Amazon Kendra. Amazon Kendra doesn\'t support asymmetric keys.+--+-- /See:/ 'newServerSideEncryptionConfiguration' smart constructor.+data ServerSideEncryptionConfiguration = ServerSideEncryptionConfiguration'+  { -- | The identifier of the KMS key. Amazon Kendra doesn\'t support asymmetric+    -- keys.+    kmsKeyId :: Prelude.Maybe (Data.Sensitive Prelude.Text)+  }+  deriving (Prelude.Eq, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ServerSideEncryptionConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'kmsKeyId', 'serverSideEncryptionConfiguration_kmsKeyId' - The identifier of the KMS key. Amazon Kendra doesn\'t support asymmetric+-- keys.+newServerSideEncryptionConfiguration ::+  ServerSideEncryptionConfiguration+newServerSideEncryptionConfiguration =+  ServerSideEncryptionConfiguration'+    { kmsKeyId =+        Prelude.Nothing+    }++-- | The identifier of the KMS key. Amazon Kendra doesn\'t support asymmetric+-- keys.+serverSideEncryptionConfiguration_kmsKeyId :: Lens.Lens' ServerSideEncryptionConfiguration (Prelude.Maybe Prelude.Text)+serverSideEncryptionConfiguration_kmsKeyId = Lens.lens (\ServerSideEncryptionConfiguration' {kmsKeyId} -> kmsKeyId) (\s@ServerSideEncryptionConfiguration' {} a -> s {kmsKeyId = a} :: ServerSideEncryptionConfiguration) Prelude.. Lens.mapping Data._Sensitive++instance+  Data.FromJSON+    ServerSideEncryptionConfiguration+  where+  parseJSON =+    Data.withObject+      "ServerSideEncryptionConfiguration"+      ( \x ->+          ServerSideEncryptionConfiguration'+            Prelude.<$> (x Data..:? "KmsKeyId")+      )++instance+  Prelude.Hashable+    ServerSideEncryptionConfiguration+  where+  hashWithSalt+    _salt+    ServerSideEncryptionConfiguration' {..} =+      _salt `Prelude.hashWithSalt` kmsKeyId++instance+  Prelude.NFData+    ServerSideEncryptionConfiguration+  where+  rnf ServerSideEncryptionConfiguration' {..} =+    Prelude.rnf kmsKeyId++instance+  Data.ToJSON+    ServerSideEncryptionConfiguration+  where+  toJSON ServerSideEncryptionConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [("KmsKeyId" Data..=) Prelude.<$> kmsKeyId]+      )
+ gen/Amazonka/Kendra/Types/ServiceNowAuthenticationType.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.Kendra.Types.ServiceNowAuthenticationType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ServiceNowAuthenticationType+  ( ServiceNowAuthenticationType+      ( ..,+        ServiceNowAuthenticationType_HTTP_BASIC,+        ServiceNowAuthenticationType_OAUTH2+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ServiceNowAuthenticationType = ServiceNowAuthenticationType'+  { fromServiceNowAuthenticationType ::+      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 ServiceNowAuthenticationType_HTTP_BASIC :: ServiceNowAuthenticationType+pattern ServiceNowAuthenticationType_HTTP_BASIC = ServiceNowAuthenticationType' "HTTP_BASIC"++pattern ServiceNowAuthenticationType_OAUTH2 :: ServiceNowAuthenticationType+pattern ServiceNowAuthenticationType_OAUTH2 = ServiceNowAuthenticationType' "OAUTH2"++{-# COMPLETE+  ServiceNowAuthenticationType_HTTP_BASIC,+  ServiceNowAuthenticationType_OAUTH2,+  ServiceNowAuthenticationType'+  #-}
+ gen/Amazonka/Kendra/Types/ServiceNowBuildVersionType.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.Kendra.Types.ServiceNowBuildVersionType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ServiceNowBuildVersionType+  ( ServiceNowBuildVersionType+      ( ..,+        ServiceNowBuildVersionType_LONDON,+        ServiceNowBuildVersionType_OTHERS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ServiceNowBuildVersionType = ServiceNowBuildVersionType'+  { fromServiceNowBuildVersionType ::+      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 ServiceNowBuildVersionType_LONDON :: ServiceNowBuildVersionType+pattern ServiceNowBuildVersionType_LONDON = ServiceNowBuildVersionType' "LONDON"++pattern ServiceNowBuildVersionType_OTHERS :: ServiceNowBuildVersionType+pattern ServiceNowBuildVersionType_OTHERS = ServiceNowBuildVersionType' "OTHERS"++{-# COMPLETE+  ServiceNowBuildVersionType_LONDON,+  ServiceNowBuildVersionType_OTHERS,+  ServiceNowBuildVersionType'+  #-}
+ gen/Amazonka/Kendra/Types/ServiceNowConfiguration.hs view
@@ -0,0 +1,220 @@+{-# 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.Kendra.Types.ServiceNowConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ServiceNowConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ServiceNowAuthenticationType+import Amazonka.Kendra.Types.ServiceNowBuildVersionType+import Amazonka.Kendra.Types.ServiceNowKnowledgeArticleConfiguration+import Amazonka.Kendra.Types.ServiceNowServiceCatalogConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to ServiceNow as your+-- data source.+--+-- /See:/ 'newServiceNowConfiguration' smart constructor.+data ServiceNowConfiguration = ServiceNowConfiguration'+  { -- | The type of authentication used to connect to the ServiceNow instance.+    -- If you choose @HTTP_BASIC@, Amazon Kendra is authenticated using the+    -- user name and password provided in the Secrets Manager secret in the+    -- @SecretArn@ field. If you choose @OAUTH2@, Amazon Kendra is+    -- authenticated using the credentials of client ID, client secret, user+    -- name and password.+    --+    -- When you use @OAUTH2@ authentication, you must generate a token and a+    -- client secret using the ServiceNow console. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-servicenow.html Using a ServiceNow data source>.+    authenticationType :: Prelude.Maybe ServiceNowAuthenticationType,+    -- | Configuration information for crawling knowledge articles in the+    -- ServiceNow site.+    knowledgeArticleConfiguration :: Prelude.Maybe ServiceNowKnowledgeArticleConfiguration,+    -- | Configuration information for crawling service catalogs in the+    -- ServiceNow site.+    serviceCatalogConfiguration :: Prelude.Maybe ServiceNowServiceCatalogConfiguration,+    -- | The ServiceNow instance that the data source connects to. The host+    -- endpoint should look like the following: /{instance}.service-now.com./+    hostUrl :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of the Secrets Manager secret that+    -- contains the user name and password required to connect to the+    -- ServiceNow instance. You can also provide OAuth authentication+    -- credentials of user name, password, client ID, and client secret. For+    -- more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-servicenow.html Using a ServiceNow data source>.+    secretArn :: Prelude.Text,+    -- | The identifier of the release that the ServiceNow host is running. If+    -- the host is not running the @LONDON@ release, use @OTHERS@.+    serviceNowBuildVersion :: ServiceNowBuildVersionType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ServiceNowConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'authenticationType', 'serviceNowConfiguration_authenticationType' - The type of authentication used to connect to the ServiceNow instance.+-- If you choose @HTTP_BASIC@, Amazon Kendra is authenticated using the+-- user name and password provided in the Secrets Manager secret in the+-- @SecretArn@ field. If you choose @OAUTH2@, Amazon Kendra is+-- authenticated using the credentials of client ID, client secret, user+-- name and password.+--+-- When you use @OAUTH2@ authentication, you must generate a token and a+-- client secret using the ServiceNow console. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-servicenow.html Using a ServiceNow data source>.+--+-- 'knowledgeArticleConfiguration', 'serviceNowConfiguration_knowledgeArticleConfiguration' - Configuration information for crawling knowledge articles in the+-- ServiceNow site.+--+-- 'serviceCatalogConfiguration', 'serviceNowConfiguration_serviceCatalogConfiguration' - Configuration information for crawling service catalogs in the+-- ServiceNow site.+--+-- 'hostUrl', 'serviceNowConfiguration_hostUrl' - The ServiceNow instance that the data source connects to. The host+-- endpoint should look like the following: /{instance}.service-now.com./+--+-- 'secretArn', 'serviceNowConfiguration_secretArn' - The Amazon Resource Name (ARN) of the Secrets Manager secret that+-- contains the user name and password required to connect to the+-- ServiceNow instance. You can also provide OAuth authentication+-- credentials of user name, password, client ID, and client secret. For+-- more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-servicenow.html Using a ServiceNow data source>.+--+-- 'serviceNowBuildVersion', 'serviceNowConfiguration_serviceNowBuildVersion' - The identifier of the release that the ServiceNow host is running. If+-- the host is not running the @LONDON@ release, use @OTHERS@.+newServiceNowConfiguration ::+  -- | 'hostUrl'+  Prelude.Text ->+  -- | 'secretArn'+  Prelude.Text ->+  -- | 'serviceNowBuildVersion'+  ServiceNowBuildVersionType ->+  ServiceNowConfiguration+newServiceNowConfiguration+  pHostUrl_+  pSecretArn_+  pServiceNowBuildVersion_ =+    ServiceNowConfiguration'+      { authenticationType =+          Prelude.Nothing,+        knowledgeArticleConfiguration = Prelude.Nothing,+        serviceCatalogConfiguration = Prelude.Nothing,+        hostUrl = pHostUrl_,+        secretArn = pSecretArn_,+        serviceNowBuildVersion = pServiceNowBuildVersion_+      }++-- | The type of authentication used to connect to the ServiceNow instance.+-- If you choose @HTTP_BASIC@, Amazon Kendra is authenticated using the+-- user name and password provided in the Secrets Manager secret in the+-- @SecretArn@ field. If you choose @OAUTH2@, Amazon Kendra is+-- authenticated using the credentials of client ID, client secret, user+-- name and password.+--+-- When you use @OAUTH2@ authentication, you must generate a token and a+-- client secret using the ServiceNow console. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-servicenow.html Using a ServiceNow data source>.+serviceNowConfiguration_authenticationType :: Lens.Lens' ServiceNowConfiguration (Prelude.Maybe ServiceNowAuthenticationType)+serviceNowConfiguration_authenticationType = Lens.lens (\ServiceNowConfiguration' {authenticationType} -> authenticationType) (\s@ServiceNowConfiguration' {} a -> s {authenticationType = a} :: ServiceNowConfiguration)++-- | Configuration information for crawling knowledge articles in the+-- ServiceNow site.+serviceNowConfiguration_knowledgeArticleConfiguration :: Lens.Lens' ServiceNowConfiguration (Prelude.Maybe ServiceNowKnowledgeArticleConfiguration)+serviceNowConfiguration_knowledgeArticleConfiguration = Lens.lens (\ServiceNowConfiguration' {knowledgeArticleConfiguration} -> knowledgeArticleConfiguration) (\s@ServiceNowConfiguration' {} a -> s {knowledgeArticleConfiguration = a} :: ServiceNowConfiguration)++-- | Configuration information for crawling service catalogs in the+-- ServiceNow site.+serviceNowConfiguration_serviceCatalogConfiguration :: Lens.Lens' ServiceNowConfiguration (Prelude.Maybe ServiceNowServiceCatalogConfiguration)+serviceNowConfiguration_serviceCatalogConfiguration = Lens.lens (\ServiceNowConfiguration' {serviceCatalogConfiguration} -> serviceCatalogConfiguration) (\s@ServiceNowConfiguration' {} a -> s {serviceCatalogConfiguration = a} :: ServiceNowConfiguration)++-- | The ServiceNow instance that the data source connects to. The host+-- endpoint should look like the following: /{instance}.service-now.com./+serviceNowConfiguration_hostUrl :: Lens.Lens' ServiceNowConfiguration Prelude.Text+serviceNowConfiguration_hostUrl = Lens.lens (\ServiceNowConfiguration' {hostUrl} -> hostUrl) (\s@ServiceNowConfiguration' {} a -> s {hostUrl = a} :: ServiceNowConfiguration)++-- | The Amazon Resource Name (ARN) of the Secrets Manager secret that+-- contains the user name and password required to connect to the+-- ServiceNow instance. You can also provide OAuth authentication+-- credentials of user name, password, client ID, and client secret. For+-- more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-servicenow.html Using a ServiceNow data source>.+serviceNowConfiguration_secretArn :: Lens.Lens' ServiceNowConfiguration Prelude.Text+serviceNowConfiguration_secretArn = Lens.lens (\ServiceNowConfiguration' {secretArn} -> secretArn) (\s@ServiceNowConfiguration' {} a -> s {secretArn = a} :: ServiceNowConfiguration)++-- | The identifier of the release that the ServiceNow host is running. If+-- the host is not running the @LONDON@ release, use @OTHERS@.+serviceNowConfiguration_serviceNowBuildVersion :: Lens.Lens' ServiceNowConfiguration ServiceNowBuildVersionType+serviceNowConfiguration_serviceNowBuildVersion = Lens.lens (\ServiceNowConfiguration' {serviceNowBuildVersion} -> serviceNowBuildVersion) (\s@ServiceNowConfiguration' {} a -> s {serviceNowBuildVersion = a} :: ServiceNowConfiguration)++instance Data.FromJSON ServiceNowConfiguration where+  parseJSON =+    Data.withObject+      "ServiceNowConfiguration"+      ( \x ->+          ServiceNowConfiguration'+            Prelude.<$> (x Data..:? "AuthenticationType")+            Prelude.<*> (x Data..:? "KnowledgeArticleConfiguration")+            Prelude.<*> (x Data..:? "ServiceCatalogConfiguration")+            Prelude.<*> (x Data..: "HostUrl")+            Prelude.<*> (x Data..: "SecretArn")+            Prelude.<*> (x Data..: "ServiceNowBuildVersion")+      )++instance Prelude.Hashable ServiceNowConfiguration where+  hashWithSalt _salt ServiceNowConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` authenticationType+      `Prelude.hashWithSalt` knowledgeArticleConfiguration+      `Prelude.hashWithSalt` serviceCatalogConfiguration+      `Prelude.hashWithSalt` hostUrl+      `Prelude.hashWithSalt` secretArn+      `Prelude.hashWithSalt` serviceNowBuildVersion++instance Prelude.NFData ServiceNowConfiguration where+  rnf ServiceNowConfiguration' {..} =+    Prelude.rnf authenticationType+      `Prelude.seq` Prelude.rnf knowledgeArticleConfiguration+      `Prelude.seq` Prelude.rnf serviceCatalogConfiguration+      `Prelude.seq` Prelude.rnf hostUrl+      `Prelude.seq` Prelude.rnf secretArn+      `Prelude.seq` Prelude.rnf serviceNowBuildVersion++instance Data.ToJSON ServiceNowConfiguration where+  toJSON ServiceNowConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AuthenticationType" Data..=)+              Prelude.<$> authenticationType,+            ("KnowledgeArticleConfiguration" Data..=)+              Prelude.<$> knowledgeArticleConfiguration,+            ("ServiceCatalogConfiguration" Data..=)+              Prelude.<$> serviceCatalogConfiguration,+            Prelude.Just ("HostUrl" Data..= hostUrl),+            Prelude.Just ("SecretArn" Data..= secretArn),+            Prelude.Just+              ( "ServiceNowBuildVersion"+                  Data..= serviceNowBuildVersion+              )+          ]+      )
+ gen/Amazonka/Kendra/Types/ServiceNowKnowledgeArticleConfiguration.hs view
@@ -0,0 +1,276 @@+{-# 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.Kendra.Types.ServiceNowKnowledgeArticleConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ServiceNowKnowledgeArticleConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for crawling knowledge articles+-- in the ServiceNow site.+--+-- /See:/ 'newServiceNowKnowledgeArticleConfiguration' smart constructor.+data ServiceNowKnowledgeArticleConfiguration = ServiceNowKnowledgeArticleConfiguration'+  { -- | @TRUE@ to index attachments to knowledge articles.+    crawlAttachments :: Prelude.Maybe Prelude.Bool,+    -- | The name of the ServiceNow field that is mapped to the index document+    -- title field.+    documentTitleFieldName :: Prelude.Maybe Prelude.Text,+    -- | A list of regular expression patterns to exclude certain attachments of+    -- knowledge articles in your ServiceNow. Item that match the patterns are+    -- excluded from the index. Items that don\'t match the patterns are+    -- included in the index. If an item matches both an inclusion and+    -- exclusion pattern, the exclusion pattern takes precedence and the item+    -- isn\'t included in the index.+    --+    -- The regex is applied to the field specified in the @PatternTargetField@.+    excludeAttachmentFilePatterns :: Prelude.Maybe [Prelude.Text],+    -- | Maps attributes or field names of knoweldge articles to Amazon Kendra+    -- index field names. To create custom fields, use the @UpdateIndex@ API+    -- before you map to ServiceNow fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The ServiceNow data source field names must exist in your ServiceNow+    -- custom metadata.+    fieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A query that selects the knowledge articles to index. The query can+    -- return articles from multiple knowledge bases, and the knowledge bases+    -- can be public or private.+    --+    -- The query string must be one generated by the ServiceNow console. For+    -- more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/servicenow-query.html Specifying documents to index with a query>.+    filterQuery :: Prelude.Maybe Prelude.Text,+    -- | A list of regular expression patterns to include certain attachments of+    -- knowledge articles in your ServiceNow. Item that match the patterns are+    -- included in the index. Items that don\'t match the patterns are excluded+    -- from the index. If an item matches both an inclusion and exclusion+    -- pattern, the exclusion pattern takes precedence and the item isn\'t+    -- included in the index.+    --+    -- The regex is applied to the field specified in the @PatternTargetField@.+    includeAttachmentFilePatterns :: Prelude.Maybe [Prelude.Text],+    -- | The name of the ServiceNow field that is mapped to the index document+    -- contents field in the Amazon Kendra index.+    documentDataFieldName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ServiceNowKnowledgeArticleConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'crawlAttachments', 'serviceNowKnowledgeArticleConfiguration_crawlAttachments' - @TRUE@ to index attachments to knowledge articles.+--+-- 'documentTitleFieldName', 'serviceNowKnowledgeArticleConfiguration_documentTitleFieldName' - The name of the ServiceNow field that is mapped to the index document+-- title field.+--+-- 'excludeAttachmentFilePatterns', 'serviceNowKnowledgeArticleConfiguration_excludeAttachmentFilePatterns' - A list of regular expression patterns to exclude certain attachments of+-- knowledge articles in your ServiceNow. Item that match the patterns are+-- excluded from the index. Items that don\'t match the patterns are+-- included in the index. If an item matches both an inclusion and+-- exclusion pattern, the exclusion pattern takes precedence and the item+-- isn\'t included in the index.+--+-- The regex is applied to the field specified in the @PatternTargetField@.+--+-- 'fieldMappings', 'serviceNowKnowledgeArticleConfiguration_fieldMappings' - Maps attributes or field names of knoweldge articles to Amazon Kendra+-- index field names. To create custom fields, use the @UpdateIndex@ API+-- before you map to ServiceNow fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The ServiceNow data source field names must exist in your ServiceNow+-- custom metadata.+--+-- 'filterQuery', 'serviceNowKnowledgeArticleConfiguration_filterQuery' - A query that selects the knowledge articles to index. The query can+-- return articles from multiple knowledge bases, and the knowledge bases+-- can be public or private.+--+-- The query string must be one generated by the ServiceNow console. For+-- more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/servicenow-query.html Specifying documents to index with a query>.+--+-- 'includeAttachmentFilePatterns', 'serviceNowKnowledgeArticleConfiguration_includeAttachmentFilePatterns' - A list of regular expression patterns to include certain attachments of+-- knowledge articles in your ServiceNow. Item that match the patterns are+-- included in the index. Items that don\'t match the patterns are excluded+-- from the index. If an item matches both an inclusion and exclusion+-- pattern, the exclusion pattern takes precedence and the item isn\'t+-- included in the index.+--+-- The regex is applied to the field specified in the @PatternTargetField@.+--+-- 'documentDataFieldName', 'serviceNowKnowledgeArticleConfiguration_documentDataFieldName' - The name of the ServiceNow field that is mapped to the index document+-- contents field in the Amazon Kendra index.+newServiceNowKnowledgeArticleConfiguration ::+  -- | 'documentDataFieldName'+  Prelude.Text ->+  ServiceNowKnowledgeArticleConfiguration+newServiceNowKnowledgeArticleConfiguration+  pDocumentDataFieldName_ =+    ServiceNowKnowledgeArticleConfiguration'+      { crawlAttachments =+          Prelude.Nothing,+        documentTitleFieldName =+          Prelude.Nothing,+        excludeAttachmentFilePatterns =+          Prelude.Nothing,+        fieldMappings = Prelude.Nothing,+        filterQuery = Prelude.Nothing,+        includeAttachmentFilePatterns =+          Prelude.Nothing,+        documentDataFieldName =+          pDocumentDataFieldName_+      }++-- | @TRUE@ to index attachments to knowledge articles.+serviceNowKnowledgeArticleConfiguration_crawlAttachments :: Lens.Lens' ServiceNowKnowledgeArticleConfiguration (Prelude.Maybe Prelude.Bool)+serviceNowKnowledgeArticleConfiguration_crawlAttachments = Lens.lens (\ServiceNowKnowledgeArticleConfiguration' {crawlAttachments} -> crawlAttachments) (\s@ServiceNowKnowledgeArticleConfiguration' {} a -> s {crawlAttachments = a} :: ServiceNowKnowledgeArticleConfiguration)++-- | The name of the ServiceNow field that is mapped to the index document+-- title field.+serviceNowKnowledgeArticleConfiguration_documentTitleFieldName :: Lens.Lens' ServiceNowKnowledgeArticleConfiguration (Prelude.Maybe Prelude.Text)+serviceNowKnowledgeArticleConfiguration_documentTitleFieldName = Lens.lens (\ServiceNowKnowledgeArticleConfiguration' {documentTitleFieldName} -> documentTitleFieldName) (\s@ServiceNowKnowledgeArticleConfiguration' {} a -> s {documentTitleFieldName = a} :: ServiceNowKnowledgeArticleConfiguration)++-- | A list of regular expression patterns to exclude certain attachments of+-- knowledge articles in your ServiceNow. Item that match the patterns are+-- excluded from the index. Items that don\'t match the patterns are+-- included in the index. If an item matches both an inclusion and+-- exclusion pattern, the exclusion pattern takes precedence and the item+-- isn\'t included in the index.+--+-- The regex is applied to the field specified in the @PatternTargetField@.+serviceNowKnowledgeArticleConfiguration_excludeAttachmentFilePatterns :: Lens.Lens' ServiceNowKnowledgeArticleConfiguration (Prelude.Maybe [Prelude.Text])+serviceNowKnowledgeArticleConfiguration_excludeAttachmentFilePatterns = Lens.lens (\ServiceNowKnowledgeArticleConfiguration' {excludeAttachmentFilePatterns} -> excludeAttachmentFilePatterns) (\s@ServiceNowKnowledgeArticleConfiguration' {} a -> s {excludeAttachmentFilePatterns = a} :: ServiceNowKnowledgeArticleConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Maps attributes or field names of knoweldge articles to Amazon Kendra+-- index field names. To create custom fields, use the @UpdateIndex@ API+-- before you map to ServiceNow fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The ServiceNow data source field names must exist in your ServiceNow+-- custom metadata.+serviceNowKnowledgeArticleConfiguration_fieldMappings :: Lens.Lens' ServiceNowKnowledgeArticleConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+serviceNowKnowledgeArticleConfiguration_fieldMappings = Lens.lens (\ServiceNowKnowledgeArticleConfiguration' {fieldMappings} -> fieldMappings) (\s@ServiceNowKnowledgeArticleConfiguration' {} a -> s {fieldMappings = a} :: ServiceNowKnowledgeArticleConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A query that selects the knowledge articles to index. The query can+-- return articles from multiple knowledge bases, and the knowledge bases+-- can be public or private.+--+-- The query string must be one generated by the ServiceNow console. For+-- more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/servicenow-query.html Specifying documents to index with a query>.+serviceNowKnowledgeArticleConfiguration_filterQuery :: Lens.Lens' ServiceNowKnowledgeArticleConfiguration (Prelude.Maybe Prelude.Text)+serviceNowKnowledgeArticleConfiguration_filterQuery = Lens.lens (\ServiceNowKnowledgeArticleConfiguration' {filterQuery} -> filterQuery) (\s@ServiceNowKnowledgeArticleConfiguration' {} a -> s {filterQuery = a} :: ServiceNowKnowledgeArticleConfiguration)++-- | A list of regular expression patterns to include certain attachments of+-- knowledge articles in your ServiceNow. Item that match the patterns are+-- included in the index. Items that don\'t match the patterns are excluded+-- from the index. If an item matches both an inclusion and exclusion+-- pattern, the exclusion pattern takes precedence and the item isn\'t+-- included in the index.+--+-- The regex is applied to the field specified in the @PatternTargetField@.+serviceNowKnowledgeArticleConfiguration_includeAttachmentFilePatterns :: Lens.Lens' ServiceNowKnowledgeArticleConfiguration (Prelude.Maybe [Prelude.Text])+serviceNowKnowledgeArticleConfiguration_includeAttachmentFilePatterns = Lens.lens (\ServiceNowKnowledgeArticleConfiguration' {includeAttachmentFilePatterns} -> includeAttachmentFilePatterns) (\s@ServiceNowKnowledgeArticleConfiguration' {} a -> s {includeAttachmentFilePatterns = a} :: ServiceNowKnowledgeArticleConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The name of the ServiceNow field that is mapped to the index document+-- contents field in the Amazon Kendra index.+serviceNowKnowledgeArticleConfiguration_documentDataFieldName :: Lens.Lens' ServiceNowKnowledgeArticleConfiguration Prelude.Text+serviceNowKnowledgeArticleConfiguration_documentDataFieldName = Lens.lens (\ServiceNowKnowledgeArticleConfiguration' {documentDataFieldName} -> documentDataFieldName) (\s@ServiceNowKnowledgeArticleConfiguration' {} a -> s {documentDataFieldName = a} :: ServiceNowKnowledgeArticleConfiguration)++instance+  Data.FromJSON+    ServiceNowKnowledgeArticleConfiguration+  where+  parseJSON =+    Data.withObject+      "ServiceNowKnowledgeArticleConfiguration"+      ( \x ->+          ServiceNowKnowledgeArticleConfiguration'+            Prelude.<$> (x Data..:? "CrawlAttachments")+            Prelude.<*> (x Data..:? "DocumentTitleFieldName")+            Prelude.<*> ( x+                            Data..:? "ExcludeAttachmentFilePatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "FieldMappings")+            Prelude.<*> (x Data..:? "FilterQuery")+            Prelude.<*> ( x+                            Data..:? "IncludeAttachmentFilePatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "DocumentDataFieldName")+      )++instance+  Prelude.Hashable+    ServiceNowKnowledgeArticleConfiguration+  where+  hashWithSalt+    _salt+    ServiceNowKnowledgeArticleConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` crawlAttachments+        `Prelude.hashWithSalt` documentTitleFieldName+        `Prelude.hashWithSalt` excludeAttachmentFilePatterns+        `Prelude.hashWithSalt` fieldMappings+        `Prelude.hashWithSalt` filterQuery+        `Prelude.hashWithSalt` includeAttachmentFilePatterns+        `Prelude.hashWithSalt` documentDataFieldName++instance+  Prelude.NFData+    ServiceNowKnowledgeArticleConfiguration+  where+  rnf ServiceNowKnowledgeArticleConfiguration' {..} =+    Prelude.rnf crawlAttachments+      `Prelude.seq` Prelude.rnf documentTitleFieldName+      `Prelude.seq` Prelude.rnf excludeAttachmentFilePatterns+      `Prelude.seq` Prelude.rnf fieldMappings+      `Prelude.seq` Prelude.rnf filterQuery+      `Prelude.seq` Prelude.rnf includeAttachmentFilePatterns+      `Prelude.seq` Prelude.rnf documentDataFieldName++instance+  Data.ToJSON+    ServiceNowKnowledgeArticleConfiguration+  where+  toJSON ServiceNowKnowledgeArticleConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CrawlAttachments" Data..=)+              Prelude.<$> crawlAttachments,+            ("DocumentTitleFieldName" Data..=)+              Prelude.<$> documentTitleFieldName,+            ("ExcludeAttachmentFilePatterns" Data..=)+              Prelude.<$> excludeAttachmentFilePatterns,+            ("FieldMappings" Data..=) Prelude.<$> fieldMappings,+            ("FilterQuery" Data..=) Prelude.<$> filterQuery,+            ("IncludeAttachmentFilePatterns" Data..=)+              Prelude.<$> includeAttachmentFilePatterns,+            Prelude.Just+              ( "DocumentDataFieldName"+                  Data..= documentDataFieldName+              )+          ]+      )
+ gen/Amazonka/Kendra/Types/ServiceNowServiceCatalogConfiguration.hs view
@@ -0,0 +1,245 @@+{-# 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.Kendra.Types.ServiceNowServiceCatalogConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ServiceNowServiceCatalogConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for crawling service catalog+-- items in the ServiceNow site+--+-- /See:/ 'newServiceNowServiceCatalogConfiguration' smart constructor.+data ServiceNowServiceCatalogConfiguration = ServiceNowServiceCatalogConfiguration'+  { -- | @TRUE@ to index attachments to service catalog items.+    crawlAttachments :: Prelude.Maybe Prelude.Bool,+    -- | The name of the ServiceNow field that is mapped to the index document+    -- title field.+    documentTitleFieldName :: Prelude.Maybe Prelude.Text,+    -- | A list of regular expression patterns to exclude certain attachments of+    -- catalogs in your ServiceNow. Item that match the patterns are excluded+    -- from the index. Items that don\'t match the patterns are included in the+    -- index. If an item matches both an inclusion and exclusion pattern, the+    -- exclusion pattern takes precedence and the item isn\'t included in the+    -- index.+    --+    -- The regex is applied to the file name of the attachment.+    excludeAttachmentFilePatterns :: Prelude.Maybe [Prelude.Text],+    -- | Maps attributes or field names of catalogs to Amazon Kendra index field+    -- names. To create custom fields, use the @UpdateIndex@ API before you map+    -- to ServiceNow fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The ServiceNow data source field names must exist in your ServiceNow+    -- custom metadata.+    fieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of regular expression patterns to include certain attachments of+    -- catalogs in your ServiceNow. Item that match the patterns are included+    -- in the index. Items that don\'t match the patterns are excluded from the+    -- index. If an item matches both an inclusion and exclusion pattern, the+    -- exclusion pattern takes precedence and the item isn\'t included in the+    -- index.+    --+    -- The regex is applied to the file name of the attachment.+    includeAttachmentFilePatterns :: Prelude.Maybe [Prelude.Text],+    -- | The name of the ServiceNow field that is mapped to the index document+    -- contents field in the Amazon Kendra index.+    documentDataFieldName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ServiceNowServiceCatalogConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'crawlAttachments', 'serviceNowServiceCatalogConfiguration_crawlAttachments' - @TRUE@ to index attachments to service catalog items.+--+-- 'documentTitleFieldName', 'serviceNowServiceCatalogConfiguration_documentTitleFieldName' - The name of the ServiceNow field that is mapped to the index document+-- title field.+--+-- 'excludeAttachmentFilePatterns', 'serviceNowServiceCatalogConfiguration_excludeAttachmentFilePatterns' - A list of regular expression patterns to exclude certain attachments of+-- catalogs in your ServiceNow. Item that match the patterns are excluded+-- from the index. Items that don\'t match the patterns are included in the+-- index. If an item matches both an inclusion and exclusion pattern, the+-- exclusion pattern takes precedence and the item isn\'t included in the+-- index.+--+-- The regex is applied to the file name of the attachment.+--+-- 'fieldMappings', 'serviceNowServiceCatalogConfiguration_fieldMappings' - Maps attributes or field names of catalogs to Amazon Kendra index field+-- names. To create custom fields, use the @UpdateIndex@ API before you map+-- to ServiceNow fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The ServiceNow data source field names must exist in your ServiceNow+-- custom metadata.+--+-- 'includeAttachmentFilePatterns', 'serviceNowServiceCatalogConfiguration_includeAttachmentFilePatterns' - A list of regular expression patterns to include certain attachments of+-- catalogs in your ServiceNow. Item that match the patterns are included+-- in the index. Items that don\'t match the patterns are excluded from the+-- index. If an item matches both an inclusion and exclusion pattern, the+-- exclusion pattern takes precedence and the item isn\'t included in the+-- index.+--+-- The regex is applied to the file name of the attachment.+--+-- 'documentDataFieldName', 'serviceNowServiceCatalogConfiguration_documentDataFieldName' - The name of the ServiceNow field that is mapped to the index document+-- contents field in the Amazon Kendra index.+newServiceNowServiceCatalogConfiguration ::+  -- | 'documentDataFieldName'+  Prelude.Text ->+  ServiceNowServiceCatalogConfiguration+newServiceNowServiceCatalogConfiguration+  pDocumentDataFieldName_ =+    ServiceNowServiceCatalogConfiguration'+      { crawlAttachments =+          Prelude.Nothing,+        documentTitleFieldName =+          Prelude.Nothing,+        excludeAttachmentFilePatterns =+          Prelude.Nothing,+        fieldMappings = Prelude.Nothing,+        includeAttachmentFilePatterns =+          Prelude.Nothing,+        documentDataFieldName =+          pDocumentDataFieldName_+      }++-- | @TRUE@ to index attachments to service catalog items.+serviceNowServiceCatalogConfiguration_crawlAttachments :: Lens.Lens' ServiceNowServiceCatalogConfiguration (Prelude.Maybe Prelude.Bool)+serviceNowServiceCatalogConfiguration_crawlAttachments = Lens.lens (\ServiceNowServiceCatalogConfiguration' {crawlAttachments} -> crawlAttachments) (\s@ServiceNowServiceCatalogConfiguration' {} a -> s {crawlAttachments = a} :: ServiceNowServiceCatalogConfiguration)++-- | The name of the ServiceNow field that is mapped to the index document+-- title field.+serviceNowServiceCatalogConfiguration_documentTitleFieldName :: Lens.Lens' ServiceNowServiceCatalogConfiguration (Prelude.Maybe Prelude.Text)+serviceNowServiceCatalogConfiguration_documentTitleFieldName = Lens.lens (\ServiceNowServiceCatalogConfiguration' {documentTitleFieldName} -> documentTitleFieldName) (\s@ServiceNowServiceCatalogConfiguration' {} a -> s {documentTitleFieldName = a} :: ServiceNowServiceCatalogConfiguration)++-- | A list of regular expression patterns to exclude certain attachments of+-- catalogs in your ServiceNow. Item that match the patterns are excluded+-- from the index. Items that don\'t match the patterns are included in the+-- index. If an item matches both an inclusion and exclusion pattern, the+-- exclusion pattern takes precedence and the item isn\'t included in the+-- index.+--+-- The regex is applied to the file name of the attachment.+serviceNowServiceCatalogConfiguration_excludeAttachmentFilePatterns :: Lens.Lens' ServiceNowServiceCatalogConfiguration (Prelude.Maybe [Prelude.Text])+serviceNowServiceCatalogConfiguration_excludeAttachmentFilePatterns = Lens.lens (\ServiceNowServiceCatalogConfiguration' {excludeAttachmentFilePatterns} -> excludeAttachmentFilePatterns) (\s@ServiceNowServiceCatalogConfiguration' {} a -> s {excludeAttachmentFilePatterns = a} :: ServiceNowServiceCatalogConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Maps attributes or field names of catalogs to Amazon Kendra index field+-- names. To create custom fields, use the @UpdateIndex@ API before you map+-- to ServiceNow fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The ServiceNow data source field names must exist in your ServiceNow+-- custom metadata.+serviceNowServiceCatalogConfiguration_fieldMappings :: Lens.Lens' ServiceNowServiceCatalogConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+serviceNowServiceCatalogConfiguration_fieldMappings = Lens.lens (\ServiceNowServiceCatalogConfiguration' {fieldMappings} -> fieldMappings) (\s@ServiceNowServiceCatalogConfiguration' {} a -> s {fieldMappings = a} :: ServiceNowServiceCatalogConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to include certain attachments of+-- catalogs in your ServiceNow. Item that match the patterns are included+-- in the index. Items that don\'t match the patterns are excluded from the+-- index. If an item matches both an inclusion and exclusion pattern, the+-- exclusion pattern takes precedence and the item isn\'t included in the+-- index.+--+-- The regex is applied to the file name of the attachment.+serviceNowServiceCatalogConfiguration_includeAttachmentFilePatterns :: Lens.Lens' ServiceNowServiceCatalogConfiguration (Prelude.Maybe [Prelude.Text])+serviceNowServiceCatalogConfiguration_includeAttachmentFilePatterns = Lens.lens (\ServiceNowServiceCatalogConfiguration' {includeAttachmentFilePatterns} -> includeAttachmentFilePatterns) (\s@ServiceNowServiceCatalogConfiguration' {} a -> s {includeAttachmentFilePatterns = a} :: ServiceNowServiceCatalogConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The name of the ServiceNow field that is mapped to the index document+-- contents field in the Amazon Kendra index.+serviceNowServiceCatalogConfiguration_documentDataFieldName :: Lens.Lens' ServiceNowServiceCatalogConfiguration Prelude.Text+serviceNowServiceCatalogConfiguration_documentDataFieldName = Lens.lens (\ServiceNowServiceCatalogConfiguration' {documentDataFieldName} -> documentDataFieldName) (\s@ServiceNowServiceCatalogConfiguration' {} a -> s {documentDataFieldName = a} :: ServiceNowServiceCatalogConfiguration)++instance+  Data.FromJSON+    ServiceNowServiceCatalogConfiguration+  where+  parseJSON =+    Data.withObject+      "ServiceNowServiceCatalogConfiguration"+      ( \x ->+          ServiceNowServiceCatalogConfiguration'+            Prelude.<$> (x Data..:? "CrawlAttachments")+            Prelude.<*> (x Data..:? "DocumentTitleFieldName")+            Prelude.<*> ( x+                            Data..:? "ExcludeAttachmentFilePatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "FieldMappings")+            Prelude.<*> ( x+                            Data..:? "IncludeAttachmentFilePatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "DocumentDataFieldName")+      )++instance+  Prelude.Hashable+    ServiceNowServiceCatalogConfiguration+  where+  hashWithSalt+    _salt+    ServiceNowServiceCatalogConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` crawlAttachments+        `Prelude.hashWithSalt` documentTitleFieldName+        `Prelude.hashWithSalt` excludeAttachmentFilePatterns+        `Prelude.hashWithSalt` fieldMappings+        `Prelude.hashWithSalt` includeAttachmentFilePatterns+        `Prelude.hashWithSalt` documentDataFieldName++instance+  Prelude.NFData+    ServiceNowServiceCatalogConfiguration+  where+  rnf ServiceNowServiceCatalogConfiguration' {..} =+    Prelude.rnf crawlAttachments+      `Prelude.seq` Prelude.rnf documentTitleFieldName+      `Prelude.seq` Prelude.rnf excludeAttachmentFilePatterns+      `Prelude.seq` Prelude.rnf fieldMappings+      `Prelude.seq` Prelude.rnf includeAttachmentFilePatterns+      `Prelude.seq` Prelude.rnf documentDataFieldName++instance+  Data.ToJSON+    ServiceNowServiceCatalogConfiguration+  where+  toJSON ServiceNowServiceCatalogConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CrawlAttachments" Data..=)+              Prelude.<$> crawlAttachments,+            ("DocumentTitleFieldName" Data..=)+              Prelude.<$> documentTitleFieldName,+            ("ExcludeAttachmentFilePatterns" Data..=)+              Prelude.<$> excludeAttachmentFilePatterns,+            ("FieldMappings" Data..=) Prelude.<$> fieldMappings,+            ("IncludeAttachmentFilePatterns" Data..=)+              Prelude.<$> includeAttachmentFilePatterns,+            Prelude.Just+              ( "DocumentDataFieldName"+                  Data..= documentDataFieldName+              )+          ]+      )
+ gen/Amazonka/Kendra/Types/SharePointConfiguration.hs view
@@ -0,0 +1,474 @@+{-# 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.Kendra.Types.SharePointConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SharePointConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import Amazonka.Kendra.Types.DataSourceVpcConfiguration+import Amazonka.Kendra.Types.ProxyConfiguration+import Amazonka.Kendra.Types.S3Path+import Amazonka.Kendra.Types.SharePointOnlineAuthenticationType+import Amazonka.Kendra.Types.SharePointVersion+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to Microsoft+-- SharePoint as your data source.+--+-- /See:/ 'newSharePointConfiguration' smart constructor.+data SharePointConfiguration = SharePointConfiguration'+  { -- | Whether you want to connect to SharePoint using basic authentication of+    -- user name and password, or OAuth authentication of user name, password,+    -- client ID, and client secret. You can use OAuth authentication for+    -- SharePoint Online.+    authenticationType :: Prelude.Maybe SharePointOnlineAuthenticationType,+    -- | @TRUE@ to index document attachments.+    crawlAttachments :: Prelude.Maybe Prelude.Bool,+    -- | @TRUE@ to disable local groups information.+    disableLocalGroups :: Prelude.Maybe Prelude.Bool,+    -- | The Microsoft SharePoint attribute field that contains the title of the+    -- document.+    documentTitleFieldName :: Prelude.Maybe Prelude.Text,+    -- | A list of regular expression patterns to exclude certain documents in+    -- your SharePoint. Documents that match the patterns are excluded from the+    -- index. Documents that don\'t match the patterns are included in the+    -- index. If a document matches both an inclusion and exclusion pattern,+    -- the exclusion pattern takes precedence and the document isn\'t included+    -- in the index.+    --+    -- The regex applies to the display URL of the SharePoint document.+    exclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map SharePoint+    -- data source attributes or field names to Amazon Kendra index field+    -- names. To create custom fields, use the @UpdateIndex@ API before you map+    -- to SharePoint fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The SharePoint data source field names must exist in your SharePoint+    -- custom metadata.+    fieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of regular expression patterns to include certain documents in+    -- your SharePoint. Documents that match the patterns are included in the+    -- index. Documents that don\'t match the patterns are excluded from the+    -- index. If a document matches both an inclusion and exclusion pattern,+    -- the exclusion pattern takes precedence and the document isn\'t included+    -- in the index.+    --+    -- The regex applies to the display URL of the SharePoint document.+    inclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | Configuration information to connect to your Microsoft SharePoint site+    -- URLs via instance via a web proxy. You can use this option for+    -- SharePoint Server.+    --+    -- You must provide the website host name and port number. For example, the+    -- host name of /https:\/\/a.example.com\/page1.html/ is \"a.example.com\"+    -- and the port is 443, the standard port for HTTPS.+    --+    -- Web proxy credentials are optional and you can use them to connect to a+    -- web proxy server that requires basic authentication of user name and+    -- password. To store web proxy credentials, you use a secret in Secrets+    -- Manager.+    --+    -- It is recommended that you follow best security practices when+    -- configuring your web proxy. This includes setting up throttling, setting+    -- up logging and monitoring, and applying security patches on a regular+    -- basis. If you use your web proxy with multiple data sources, sync jobs+    -- that occur at the same time could strain the load on your proxy. It is+    -- recommended you prepare your proxy beforehand for any security and load+    -- requirements.+    proxyConfiguration :: Prelude.Maybe ProxyConfiguration,+    -- | The path to the SSL certificate stored in an Amazon S3 bucket. You use+    -- this to connect to SharePoint Server if you require a secure SSL+    -- connection.+    --+    -- You can simply generate a self-signed X509 certificate on any computer+    -- using OpenSSL. For an example of using OpenSSL to create an X509+    -- certificate, see+    -- <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl.html Create and sign an X509 certificate>.+    sslCertificateS3Path :: Prelude.Maybe S3Path,+    -- | @TRUE@ to use the SharePoint change log to determine which documents+    -- require updating in the index. Depending on the change log\'s size, it+    -- may take longer for Amazon Kendra to use the change log than to scan all+    -- of your documents in SharePoint.+    useChangeLog :: Prelude.Maybe Prelude.Bool,+    -- | Configuration information for an Amazon Virtual Private Cloud to connect+    -- to your Microsoft SharePoint. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+    vpcConfiguration :: Prelude.Maybe DataSourceVpcConfiguration,+    -- | The version of Microsoft SharePoint that you use.+    sharePointVersion :: SharePointVersion,+    -- | The Microsoft SharePoint site URLs for the documents you want to index.+    urls :: Prelude.NonEmpty Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an Secrets Manager secret that+    -- contains the user name and password required to connect to the+    -- SharePoint instance. If you use SharePoint Server, you also need to+    -- provide the sever domain name as part of the credentials. For more+    -- information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html Using a Microsoft SharePoint Data Source>.+    --+    -- You can also provide OAuth authentication credentials of user name,+    -- password, client ID, and client secret. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html Using a SharePoint data source>.+    secretArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SharePointConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'authenticationType', 'sharePointConfiguration_authenticationType' - Whether you want to connect to SharePoint using basic authentication of+-- user name and password, or OAuth authentication of user name, password,+-- client ID, and client secret. You can use OAuth authentication for+-- SharePoint Online.+--+-- 'crawlAttachments', 'sharePointConfiguration_crawlAttachments' - @TRUE@ to index document attachments.+--+-- 'disableLocalGroups', 'sharePointConfiguration_disableLocalGroups' - @TRUE@ to disable local groups information.+--+-- 'documentTitleFieldName', 'sharePointConfiguration_documentTitleFieldName' - The Microsoft SharePoint attribute field that contains the title of the+-- document.+--+-- 'exclusionPatterns', 'sharePointConfiguration_exclusionPatterns' - A list of regular expression patterns to exclude certain documents in+-- your SharePoint. Documents that match the patterns are excluded from the+-- index. Documents that don\'t match the patterns are included in the+-- index. If a document matches both an inclusion and exclusion pattern,+-- the exclusion pattern takes precedence and the document isn\'t included+-- in the index.+--+-- The regex applies to the display URL of the SharePoint document.+--+-- 'fieldMappings', 'sharePointConfiguration_fieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map SharePoint+-- data source attributes or field names to Amazon Kendra index field+-- names. To create custom fields, use the @UpdateIndex@ API before you map+-- to SharePoint fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The SharePoint data source field names must exist in your SharePoint+-- custom metadata.+--+-- 'inclusionPatterns', 'sharePointConfiguration_inclusionPatterns' - A list of regular expression patterns to include certain documents in+-- your SharePoint. Documents that match the patterns are included in the+-- index. Documents that don\'t match the patterns are excluded from the+-- index. If a document matches both an inclusion and exclusion pattern,+-- the exclusion pattern takes precedence and the document isn\'t included+-- in the index.+--+-- The regex applies to the display URL of the SharePoint document.+--+-- 'proxyConfiguration', 'sharePointConfiguration_proxyConfiguration' - Configuration information to connect to your Microsoft SharePoint site+-- URLs via instance via a web proxy. You can use this option for+-- SharePoint Server.+--+-- You must provide the website host name and port number. For example, the+-- host name of /https:\/\/a.example.com\/page1.html/ is \"a.example.com\"+-- and the port is 443, the standard port for HTTPS.+--+-- Web proxy credentials are optional and you can use them to connect to a+-- web proxy server that requires basic authentication of user name and+-- password. To store web proxy credentials, you use a secret in Secrets+-- Manager.+--+-- It is recommended that you follow best security practices when+-- configuring your web proxy. This includes setting up throttling, setting+-- up logging and monitoring, and applying security patches on a regular+-- basis. If you use your web proxy with multiple data sources, sync jobs+-- that occur at the same time could strain the load on your proxy. It is+-- recommended you prepare your proxy beforehand for any security and load+-- requirements.+--+-- 'sslCertificateS3Path', 'sharePointConfiguration_sslCertificateS3Path' - The path to the SSL certificate stored in an Amazon S3 bucket. You use+-- this to connect to SharePoint Server if you require a secure SSL+-- connection.+--+-- You can simply generate a self-signed X509 certificate on any computer+-- using OpenSSL. For an example of using OpenSSL to create an X509+-- certificate, see+-- <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl.html Create and sign an X509 certificate>.+--+-- 'useChangeLog', 'sharePointConfiguration_useChangeLog' - @TRUE@ to use the SharePoint change log to determine which documents+-- require updating in the index. Depending on the change log\'s size, it+-- may take longer for Amazon Kendra to use the change log than to scan all+-- of your documents in SharePoint.+--+-- 'vpcConfiguration', 'sharePointConfiguration_vpcConfiguration' - Configuration information for an Amazon Virtual Private Cloud to connect+-- to your Microsoft SharePoint. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+--+-- 'sharePointVersion', 'sharePointConfiguration_sharePointVersion' - The version of Microsoft SharePoint that you use.+--+-- 'urls', 'sharePointConfiguration_urls' - The Microsoft SharePoint site URLs for the documents you want to index.+--+-- 'secretArn', 'sharePointConfiguration_secretArn' - The Amazon Resource Name (ARN) of an Secrets Manager secret that+-- contains the user name and password required to connect to the+-- SharePoint instance. If you use SharePoint Server, you also need to+-- provide the sever domain name as part of the credentials. For more+-- information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html Using a Microsoft SharePoint Data Source>.+--+-- You can also provide OAuth authentication credentials of user name,+-- password, client ID, and client secret. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html Using a SharePoint data source>.+newSharePointConfiguration ::+  -- | 'sharePointVersion'+  SharePointVersion ->+  -- | 'urls'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'secretArn'+  Prelude.Text ->+  SharePointConfiguration+newSharePointConfiguration+  pSharePointVersion_+  pUrls_+  pSecretArn_ =+    SharePointConfiguration'+      { authenticationType =+          Prelude.Nothing,+        crawlAttachments = Prelude.Nothing,+        disableLocalGroups = Prelude.Nothing,+        documentTitleFieldName = Prelude.Nothing,+        exclusionPatterns = Prelude.Nothing,+        fieldMappings = Prelude.Nothing,+        inclusionPatterns = Prelude.Nothing,+        proxyConfiguration = Prelude.Nothing,+        sslCertificateS3Path = Prelude.Nothing,+        useChangeLog = Prelude.Nothing,+        vpcConfiguration = Prelude.Nothing,+        sharePointVersion = pSharePointVersion_,+        urls = Lens.coerced Lens.# pUrls_,+        secretArn = pSecretArn_+      }++-- | Whether you want to connect to SharePoint using basic authentication of+-- user name and password, or OAuth authentication of user name, password,+-- client ID, and client secret. You can use OAuth authentication for+-- SharePoint Online.+sharePointConfiguration_authenticationType :: Lens.Lens' SharePointConfiguration (Prelude.Maybe SharePointOnlineAuthenticationType)+sharePointConfiguration_authenticationType = Lens.lens (\SharePointConfiguration' {authenticationType} -> authenticationType) (\s@SharePointConfiguration' {} a -> s {authenticationType = a} :: SharePointConfiguration)++-- | @TRUE@ to index document attachments.+sharePointConfiguration_crawlAttachments :: Lens.Lens' SharePointConfiguration (Prelude.Maybe Prelude.Bool)+sharePointConfiguration_crawlAttachments = Lens.lens (\SharePointConfiguration' {crawlAttachments} -> crawlAttachments) (\s@SharePointConfiguration' {} a -> s {crawlAttachments = a} :: SharePointConfiguration)++-- | @TRUE@ to disable local groups information.+sharePointConfiguration_disableLocalGroups :: Lens.Lens' SharePointConfiguration (Prelude.Maybe Prelude.Bool)+sharePointConfiguration_disableLocalGroups = Lens.lens (\SharePointConfiguration' {disableLocalGroups} -> disableLocalGroups) (\s@SharePointConfiguration' {} a -> s {disableLocalGroups = a} :: SharePointConfiguration)++-- | The Microsoft SharePoint attribute field that contains the title of the+-- document.+sharePointConfiguration_documentTitleFieldName :: Lens.Lens' SharePointConfiguration (Prelude.Maybe Prelude.Text)+sharePointConfiguration_documentTitleFieldName = Lens.lens (\SharePointConfiguration' {documentTitleFieldName} -> documentTitleFieldName) (\s@SharePointConfiguration' {} a -> s {documentTitleFieldName = a} :: SharePointConfiguration)++-- | A list of regular expression patterns to exclude certain documents in+-- your SharePoint. Documents that match the patterns are excluded from the+-- index. Documents that don\'t match the patterns are included in the+-- index. If a document matches both an inclusion and exclusion pattern,+-- the exclusion pattern takes precedence and the document isn\'t included+-- in the index.+--+-- The regex applies to the display URL of the SharePoint document.+sharePointConfiguration_exclusionPatterns :: Lens.Lens' SharePointConfiguration (Prelude.Maybe [Prelude.Text])+sharePointConfiguration_exclusionPatterns = Lens.lens (\SharePointConfiguration' {exclusionPatterns} -> exclusionPatterns) (\s@SharePointConfiguration' {} a -> s {exclusionPatterns = a} :: SharePointConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of @DataSourceToIndexFieldMapping@ objects that map SharePoint+-- data source attributes or field names to Amazon Kendra index field+-- names. To create custom fields, use the @UpdateIndex@ API before you map+-- to SharePoint fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The SharePoint data source field names must exist in your SharePoint+-- custom metadata.+sharePointConfiguration_fieldMappings :: Lens.Lens' SharePointConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+sharePointConfiguration_fieldMappings = Lens.lens (\SharePointConfiguration' {fieldMappings} -> fieldMappings) (\s@SharePointConfiguration' {} a -> s {fieldMappings = a} :: SharePointConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to include certain documents in+-- your SharePoint. Documents that match the patterns are included in the+-- index. Documents that don\'t match the patterns are excluded from the+-- index. If a document matches both an inclusion and exclusion pattern,+-- the exclusion pattern takes precedence and the document isn\'t included+-- in the index.+--+-- The regex applies to the display URL of the SharePoint document.+sharePointConfiguration_inclusionPatterns :: Lens.Lens' SharePointConfiguration (Prelude.Maybe [Prelude.Text])+sharePointConfiguration_inclusionPatterns = Lens.lens (\SharePointConfiguration' {inclusionPatterns} -> inclusionPatterns) (\s@SharePointConfiguration' {} a -> s {inclusionPatterns = a} :: SharePointConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Configuration information to connect to your Microsoft SharePoint site+-- URLs via instance via a web proxy. You can use this option for+-- SharePoint Server.+--+-- You must provide the website host name and port number. For example, the+-- host name of /https:\/\/a.example.com\/page1.html/ is \"a.example.com\"+-- and the port is 443, the standard port for HTTPS.+--+-- Web proxy credentials are optional and you can use them to connect to a+-- web proxy server that requires basic authentication of user name and+-- password. To store web proxy credentials, you use a secret in Secrets+-- Manager.+--+-- It is recommended that you follow best security practices when+-- configuring your web proxy. This includes setting up throttling, setting+-- up logging and monitoring, and applying security patches on a regular+-- basis. If you use your web proxy with multiple data sources, sync jobs+-- that occur at the same time could strain the load on your proxy. It is+-- recommended you prepare your proxy beforehand for any security and load+-- requirements.+sharePointConfiguration_proxyConfiguration :: Lens.Lens' SharePointConfiguration (Prelude.Maybe ProxyConfiguration)+sharePointConfiguration_proxyConfiguration = Lens.lens (\SharePointConfiguration' {proxyConfiguration} -> proxyConfiguration) (\s@SharePointConfiguration' {} a -> s {proxyConfiguration = a} :: SharePointConfiguration)++-- | The path to the SSL certificate stored in an Amazon S3 bucket. You use+-- this to connect to SharePoint Server if you require a secure SSL+-- connection.+--+-- You can simply generate a self-signed X509 certificate on any computer+-- using OpenSSL. For an example of using OpenSSL to create an X509+-- certificate, see+-- <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl.html Create and sign an X509 certificate>.+sharePointConfiguration_sslCertificateS3Path :: Lens.Lens' SharePointConfiguration (Prelude.Maybe S3Path)+sharePointConfiguration_sslCertificateS3Path = Lens.lens (\SharePointConfiguration' {sslCertificateS3Path} -> sslCertificateS3Path) (\s@SharePointConfiguration' {} a -> s {sslCertificateS3Path = a} :: SharePointConfiguration)++-- | @TRUE@ to use the SharePoint change log to determine which documents+-- require updating in the index. Depending on the change log\'s size, it+-- may take longer for Amazon Kendra to use the change log than to scan all+-- of your documents in SharePoint.+sharePointConfiguration_useChangeLog :: Lens.Lens' SharePointConfiguration (Prelude.Maybe Prelude.Bool)+sharePointConfiguration_useChangeLog = Lens.lens (\SharePointConfiguration' {useChangeLog} -> useChangeLog) (\s@SharePointConfiguration' {} a -> s {useChangeLog = a} :: SharePointConfiguration)++-- | Configuration information for an Amazon Virtual Private Cloud to connect+-- to your Microsoft SharePoint. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+sharePointConfiguration_vpcConfiguration :: Lens.Lens' SharePointConfiguration (Prelude.Maybe DataSourceVpcConfiguration)+sharePointConfiguration_vpcConfiguration = Lens.lens (\SharePointConfiguration' {vpcConfiguration} -> vpcConfiguration) (\s@SharePointConfiguration' {} a -> s {vpcConfiguration = a} :: SharePointConfiguration)++-- | The version of Microsoft SharePoint that you use.+sharePointConfiguration_sharePointVersion :: Lens.Lens' SharePointConfiguration SharePointVersion+sharePointConfiguration_sharePointVersion = Lens.lens (\SharePointConfiguration' {sharePointVersion} -> sharePointVersion) (\s@SharePointConfiguration' {} a -> s {sharePointVersion = a} :: SharePointConfiguration)++-- | The Microsoft SharePoint site URLs for the documents you want to index.+sharePointConfiguration_urls :: Lens.Lens' SharePointConfiguration (Prelude.NonEmpty Prelude.Text)+sharePointConfiguration_urls = Lens.lens (\SharePointConfiguration' {urls} -> urls) (\s@SharePointConfiguration' {} a -> s {urls = a} :: SharePointConfiguration) Prelude.. Lens.coerced++-- | The Amazon Resource Name (ARN) of an Secrets Manager secret that+-- contains the user name and password required to connect to the+-- SharePoint instance. If you use SharePoint Server, you also need to+-- provide the sever domain name as part of the credentials. For more+-- information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html Using a Microsoft SharePoint Data Source>.+--+-- You can also provide OAuth authentication credentials of user name,+-- password, client ID, and client secret. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html Using a SharePoint data source>.+sharePointConfiguration_secretArn :: Lens.Lens' SharePointConfiguration Prelude.Text+sharePointConfiguration_secretArn = Lens.lens (\SharePointConfiguration' {secretArn} -> secretArn) (\s@SharePointConfiguration' {} a -> s {secretArn = a} :: SharePointConfiguration)++instance Data.FromJSON SharePointConfiguration where+  parseJSON =+    Data.withObject+      "SharePointConfiguration"+      ( \x ->+          SharePointConfiguration'+            Prelude.<$> (x Data..:? "AuthenticationType")+            Prelude.<*> (x Data..:? "CrawlAttachments")+            Prelude.<*> (x Data..:? "DisableLocalGroups")+            Prelude.<*> (x Data..:? "DocumentTitleFieldName")+            Prelude.<*> ( x+                            Data..:? "ExclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "FieldMappings")+            Prelude.<*> ( x+                            Data..:? "InclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "ProxyConfiguration")+            Prelude.<*> (x Data..:? "SslCertificateS3Path")+            Prelude.<*> (x Data..:? "UseChangeLog")+            Prelude.<*> (x Data..:? "VpcConfiguration")+            Prelude.<*> (x Data..: "SharePointVersion")+            Prelude.<*> (x Data..: "Urls")+            Prelude.<*> (x Data..: "SecretArn")+      )++instance Prelude.Hashable SharePointConfiguration where+  hashWithSalt _salt SharePointConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` authenticationType+      `Prelude.hashWithSalt` crawlAttachments+      `Prelude.hashWithSalt` disableLocalGroups+      `Prelude.hashWithSalt` documentTitleFieldName+      `Prelude.hashWithSalt` exclusionPatterns+      `Prelude.hashWithSalt` fieldMappings+      `Prelude.hashWithSalt` inclusionPatterns+      `Prelude.hashWithSalt` proxyConfiguration+      `Prelude.hashWithSalt` sslCertificateS3Path+      `Prelude.hashWithSalt` useChangeLog+      `Prelude.hashWithSalt` vpcConfiguration+      `Prelude.hashWithSalt` sharePointVersion+      `Prelude.hashWithSalt` urls+      `Prelude.hashWithSalt` secretArn++instance Prelude.NFData SharePointConfiguration where+  rnf SharePointConfiguration' {..} =+    Prelude.rnf authenticationType+      `Prelude.seq` Prelude.rnf crawlAttachments+      `Prelude.seq` Prelude.rnf disableLocalGroups+      `Prelude.seq` Prelude.rnf documentTitleFieldName+      `Prelude.seq` Prelude.rnf exclusionPatterns+      `Prelude.seq` Prelude.rnf fieldMappings+      `Prelude.seq` Prelude.rnf inclusionPatterns+      `Prelude.seq` Prelude.rnf proxyConfiguration+      `Prelude.seq` Prelude.rnf sslCertificateS3Path+      `Prelude.seq` Prelude.rnf useChangeLog+      `Prelude.seq` Prelude.rnf vpcConfiguration+      `Prelude.seq` Prelude.rnf sharePointVersion+      `Prelude.seq` Prelude.rnf urls+      `Prelude.seq` Prelude.rnf secretArn++instance Data.ToJSON SharePointConfiguration where+  toJSON SharePointConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AuthenticationType" Data..=)+              Prelude.<$> authenticationType,+            ("CrawlAttachments" Data..=)+              Prelude.<$> crawlAttachments,+            ("DisableLocalGroups" Data..=)+              Prelude.<$> disableLocalGroups,+            ("DocumentTitleFieldName" Data..=)+              Prelude.<$> documentTitleFieldName,+            ("ExclusionPatterns" Data..=)+              Prelude.<$> exclusionPatterns,+            ("FieldMappings" Data..=) Prelude.<$> fieldMappings,+            ("InclusionPatterns" Data..=)+              Prelude.<$> inclusionPatterns,+            ("ProxyConfiguration" Data..=)+              Prelude.<$> proxyConfiguration,+            ("SslCertificateS3Path" Data..=)+              Prelude.<$> sslCertificateS3Path,+            ("UseChangeLog" Data..=) Prelude.<$> useChangeLog,+            ("VpcConfiguration" Data..=)+              Prelude.<$> vpcConfiguration,+            Prelude.Just+              ("SharePointVersion" Data..= sharePointVersion),+            Prelude.Just ("Urls" Data..= urls),+            Prelude.Just ("SecretArn" Data..= secretArn)+          ]+      )
+ gen/Amazonka/Kendra/Types/SharePointOnlineAuthenticationType.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.Kendra.Types.SharePointOnlineAuthenticationType+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SharePointOnlineAuthenticationType+  ( SharePointOnlineAuthenticationType+      ( ..,+        SharePointOnlineAuthenticationType_HTTP_BASIC,+        SharePointOnlineAuthenticationType_OAUTH2+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SharePointOnlineAuthenticationType = SharePointOnlineAuthenticationType'+  { fromSharePointOnlineAuthenticationType ::+      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 SharePointOnlineAuthenticationType_HTTP_BASIC :: SharePointOnlineAuthenticationType+pattern SharePointOnlineAuthenticationType_HTTP_BASIC = SharePointOnlineAuthenticationType' "HTTP_BASIC"++pattern SharePointOnlineAuthenticationType_OAUTH2 :: SharePointOnlineAuthenticationType+pattern SharePointOnlineAuthenticationType_OAUTH2 = SharePointOnlineAuthenticationType' "OAUTH2"++{-# COMPLETE+  SharePointOnlineAuthenticationType_HTTP_BASIC,+  SharePointOnlineAuthenticationType_OAUTH2,+  SharePointOnlineAuthenticationType'+  #-}
+ gen/Amazonka/Kendra/Types/SharePointVersion.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.Kendra.Types.SharePointVersion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SharePointVersion+  ( SharePointVersion+      ( ..,+        SharePointVersion_SHAREPOINT_2013,+        SharePointVersion_SHAREPOINT_2016,+        SharePointVersion_SHAREPOINT_2019,+        SharePointVersion_SHAREPOINT_ONLINE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SharePointVersion = SharePointVersion'+  { fromSharePointVersion ::+      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 SharePointVersion_SHAREPOINT_2013 :: SharePointVersion+pattern SharePointVersion_SHAREPOINT_2013 = SharePointVersion' "SHAREPOINT_2013"++pattern SharePointVersion_SHAREPOINT_2016 :: SharePointVersion+pattern SharePointVersion_SHAREPOINT_2016 = SharePointVersion' "SHAREPOINT_2016"++pattern SharePointVersion_SHAREPOINT_2019 :: SharePointVersion+pattern SharePointVersion_SHAREPOINT_2019 = SharePointVersion' "SHAREPOINT_2019"++pattern SharePointVersion_SHAREPOINT_ONLINE :: SharePointVersion+pattern SharePointVersion_SHAREPOINT_ONLINE = SharePointVersion' "SHAREPOINT_ONLINE"++{-# COMPLETE+  SharePointVersion_SHAREPOINT_2013,+  SharePointVersion_SHAREPOINT_2016,+  SharePointVersion_SHAREPOINT_2019,+  SharePointVersion_SHAREPOINT_ONLINE,+  SharePointVersion'+  #-}
+ gen/Amazonka/Kendra/Types/SiteMapsConfiguration.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.Kendra.Types.SiteMapsConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SiteMapsConfiguration 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 configuration information for the sitemap URLs to crawl.+--+-- /When selecting websites to index, you must adhere to the+-- <https://aws.amazon.com/aup/ Amazon Acceptable Use Policy> and all other+-- Amazon terms. Remember that you must only use Amazon Kendra Web Crawler+-- to index your own webpages, or webpages that you have authorization to+-- index./+--+-- /See:/ 'newSiteMapsConfiguration' smart constructor.+data SiteMapsConfiguration = SiteMapsConfiguration'+  { -- | The list of sitemap URLs of the websites you want to crawl.+    --+    -- The list can include a maximum of three sitemap URLs.+    siteMaps :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SiteMapsConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'siteMaps', 'siteMapsConfiguration_siteMaps' - The list of sitemap URLs of the websites you want to crawl.+--+-- The list can include a maximum of three sitemap URLs.+newSiteMapsConfiguration ::+  SiteMapsConfiguration+newSiteMapsConfiguration =+  SiteMapsConfiguration' {siteMaps = Prelude.mempty}++-- | The list of sitemap URLs of the websites you want to crawl.+--+-- The list can include a maximum of three sitemap URLs.+siteMapsConfiguration_siteMaps :: Lens.Lens' SiteMapsConfiguration [Prelude.Text]+siteMapsConfiguration_siteMaps = Lens.lens (\SiteMapsConfiguration' {siteMaps} -> siteMaps) (\s@SiteMapsConfiguration' {} a -> s {siteMaps = a} :: SiteMapsConfiguration) Prelude.. Lens.coerced++instance Data.FromJSON SiteMapsConfiguration where+  parseJSON =+    Data.withObject+      "SiteMapsConfiguration"+      ( \x ->+          SiteMapsConfiguration'+            Prelude.<$> (x Data..:? "SiteMaps" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable SiteMapsConfiguration where+  hashWithSalt _salt SiteMapsConfiguration' {..} =+    _salt `Prelude.hashWithSalt` siteMaps++instance Prelude.NFData SiteMapsConfiguration where+  rnf SiteMapsConfiguration' {..} = Prelude.rnf siteMaps++instance Data.ToJSON SiteMapsConfiguration where+  toJSON SiteMapsConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("SiteMaps" Data..= siteMaps)]+      )
+ gen/Amazonka/Kendra/Types/SlackConfiguration.hs view
@@ -0,0 +1,439 @@+{-# 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.Kendra.Types.SlackConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SlackConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import Amazonka.Kendra.Types.DataSourceVpcConfiguration+import Amazonka.Kendra.Types.SlackEntity+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to Slack as your data+-- source.+--+-- /See:/ 'newSlackConfiguration' smart constructor.+data SlackConfiguration = SlackConfiguration'+  { -- | @TRUE@ to index bot messages from your Slack workspace team.+    crawlBotMessage :: Prelude.Maybe Prelude.Bool,+    -- | @TRUE@ to exclude archived messages to index from your Slack workspace+    -- team.+    excludeArchived :: Prelude.Maybe Prelude.Bool,+    -- | A list of regular expression patterns to exclude certain attached files+    -- in your Slack workspace team. Files that match the patterns are excluded+    -- from the index. Files that don’t match the patterns are included in the+    -- index. If a file matches both an inclusion and exclusion pattern, the+    -- exclusion pattern takes precedence and the file isn\'t included in the+    -- index.+    exclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map Slack data+    -- source attributes or field names to Amazon Kendra index field names. To+    -- create custom fields, use the @UpdateIndex@ API before you map to Slack+    -- fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Slack data source field names must exist in your Slack custom+    -- metadata.+    fieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of regular expression patterns to include certain attached files+    -- in your Slack workspace team. Files that match the patterns are included+    -- in the index. Files that don\'t match the patterns are excluded from the+    -- index. If a file matches both an inclusion and exclusion pattern, the+    -- exclusion pattern takes precedence and the file isn\'t included in the+    -- index.+    inclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | The number of hours for change log to look back from when you last+    -- synchronized your data. You can look back up to 7 days or 168 hours.+    --+    -- Change log updates your index only if new content was added since you+    -- last synced your data. Updated or deleted content from before you last+    -- synced does not get updated in your index. To capture updated or deleted+    -- content before you last synced, set the @LookBackPeriod@ to the number+    -- of hours you want change log to look back.+    lookBackPeriod :: Prelude.Maybe Prelude.Natural,+    -- | The list of private channel names from your Slack workspace team. You+    -- use this if you want to index specific private channels, not all private+    -- channels. You can also use regular expression patterns to filter private+    -- channels.+    privateChannelFilter :: Prelude.Maybe [Prelude.Text],+    -- | The list of public channel names to index from your Slack workspace+    -- team. You use this if you want to index specific public channels, not+    -- all public channels. You can also use regular expression patterns to+    -- filter public channels.+    publicChannelFilter :: Prelude.Maybe [Prelude.Text],+    -- | @TRUE@ to use the Slack change log to determine which documents require+    -- updating in the index. Depending on the Slack change log\'s size, it may+    -- take longer for Amazon Kendra to use the change log than to scan all of+    -- your documents in Slack.+    useChangeLog :: Prelude.Maybe Prelude.Bool,+    -- | Configuration information for an Amazon Virtual Private Cloud to connect+    -- to your Slack. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+    vpcConfiguration :: Prelude.Maybe DataSourceVpcConfiguration,+    -- | The identifier of the team in the Slack workspace. For example,+    -- /T0123456789/.+    --+    -- You can find your team ID in the URL of the main page of your Slack+    -- workspace. When you log in to Slack via a browser, you are directed to+    -- the URL of the main page. For example,+    -- /https:\/\/app.slack.com\/client\/__T0123456789__\/.../.+    teamId :: Prelude.Text,+    -- | The Amazon Resource Name (ARN) of an Secrets Manager secret that+    -- contains the key-value pairs required to connect to your Slack workspace+    -- team. The secret must contain a JSON structure with the following keys:+    --+    -- -   slackToken—The user or bot token created in Slack. For more+    --     information on creating a token in Slack, see+    --     <https://docs.aws.amazon.com/kendra/latest/dg/data-source-slack.html#slack-authentication Authentication for a Slack data source>.+    secretArn :: Prelude.Text,+    -- | Specify whether to index public channels, private channels, group+    -- messages, and direct messages. You can specify one or more of these+    -- options.+    slackEntityList :: Prelude.NonEmpty SlackEntity,+    -- | The date to start crawling your data from your Slack workspace team. The+    -- date must follow this format: @yyyy-mm-dd@.+    sinceCrawlDate :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SlackConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'crawlBotMessage', 'slackConfiguration_crawlBotMessage' - @TRUE@ to index bot messages from your Slack workspace team.+--+-- 'excludeArchived', 'slackConfiguration_excludeArchived' - @TRUE@ to exclude archived messages to index from your Slack workspace+-- team.+--+-- 'exclusionPatterns', 'slackConfiguration_exclusionPatterns' - A list of regular expression patterns to exclude certain attached files+-- in your Slack workspace team. Files that match the patterns are excluded+-- from the index. Files that don’t match the patterns are included in the+-- index. If a file matches both an inclusion and exclusion pattern, the+-- exclusion pattern takes precedence and the file isn\'t included in the+-- index.+--+-- 'fieldMappings', 'slackConfiguration_fieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map Slack data+-- source attributes or field names to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to Slack+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Slack data source field names must exist in your Slack custom+-- metadata.+--+-- 'inclusionPatterns', 'slackConfiguration_inclusionPatterns' - A list of regular expression patterns to include certain attached files+-- in your Slack workspace team. Files that match the patterns are included+-- in the index. Files that don\'t match the patterns are excluded from the+-- index. If a file matches both an inclusion and exclusion pattern, the+-- exclusion pattern takes precedence and the file isn\'t included in the+-- index.+--+-- 'lookBackPeriod', 'slackConfiguration_lookBackPeriod' - The number of hours for change log to look back from when you last+-- synchronized your data. You can look back up to 7 days or 168 hours.+--+-- Change log updates your index only if new content was added since you+-- last synced your data. Updated or deleted content from before you last+-- synced does not get updated in your index. To capture updated or deleted+-- content before you last synced, set the @LookBackPeriod@ to the number+-- of hours you want change log to look back.+--+-- 'privateChannelFilter', 'slackConfiguration_privateChannelFilter' - The list of private channel names from your Slack workspace team. You+-- use this if you want to index specific private channels, not all private+-- channels. You can also use regular expression patterns to filter private+-- channels.+--+-- 'publicChannelFilter', 'slackConfiguration_publicChannelFilter' - The list of public channel names to index from your Slack workspace+-- team. You use this if you want to index specific public channels, not+-- all public channels. You can also use regular expression patterns to+-- filter public channels.+--+-- 'useChangeLog', 'slackConfiguration_useChangeLog' - @TRUE@ to use the Slack change log to determine which documents require+-- updating in the index. Depending on the Slack change log\'s size, it may+-- take longer for Amazon Kendra to use the change log than to scan all of+-- your documents in Slack.+--+-- 'vpcConfiguration', 'slackConfiguration_vpcConfiguration' - Configuration information for an Amazon Virtual Private Cloud to connect+-- to your Slack. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+--+-- 'teamId', 'slackConfiguration_teamId' - The identifier of the team in the Slack workspace. For example,+-- /T0123456789/.+--+-- You can find your team ID in the URL of the main page of your Slack+-- workspace. When you log in to Slack via a browser, you are directed to+-- the URL of the main page. For example,+-- /https:\/\/app.slack.com\/client\/__T0123456789__\/.../.+--+-- 'secretArn', 'slackConfiguration_secretArn' - The Amazon Resource Name (ARN) of an Secrets Manager secret that+-- contains the key-value pairs required to connect to your Slack workspace+-- team. The secret must contain a JSON structure with the following keys:+--+-- -   slackToken—The user or bot token created in Slack. For more+--     information on creating a token in Slack, see+--     <https://docs.aws.amazon.com/kendra/latest/dg/data-source-slack.html#slack-authentication Authentication for a Slack data source>.+--+-- 'slackEntityList', 'slackConfiguration_slackEntityList' - Specify whether to index public channels, private channels, group+-- messages, and direct messages. You can specify one or more of these+-- options.+--+-- 'sinceCrawlDate', 'slackConfiguration_sinceCrawlDate' - The date to start crawling your data from your Slack workspace team. The+-- date must follow this format: @yyyy-mm-dd@.+newSlackConfiguration ::+  -- | 'teamId'+  Prelude.Text ->+  -- | 'secretArn'+  Prelude.Text ->+  -- | 'slackEntityList'+  Prelude.NonEmpty SlackEntity ->+  -- | 'sinceCrawlDate'+  Prelude.Text ->+  SlackConfiguration+newSlackConfiguration+  pTeamId_+  pSecretArn_+  pSlackEntityList_+  pSinceCrawlDate_ =+    SlackConfiguration'+      { crawlBotMessage =+          Prelude.Nothing,+        excludeArchived = Prelude.Nothing,+        exclusionPatterns = Prelude.Nothing,+        fieldMappings = Prelude.Nothing,+        inclusionPatterns = Prelude.Nothing,+        lookBackPeriod = Prelude.Nothing,+        privateChannelFilter = Prelude.Nothing,+        publicChannelFilter = Prelude.Nothing,+        useChangeLog = Prelude.Nothing,+        vpcConfiguration = Prelude.Nothing,+        teamId = pTeamId_,+        secretArn = pSecretArn_,+        slackEntityList =+          Lens.coerced Lens.# pSlackEntityList_,+        sinceCrawlDate = pSinceCrawlDate_+      }++-- | @TRUE@ to index bot messages from your Slack workspace team.+slackConfiguration_crawlBotMessage :: Lens.Lens' SlackConfiguration (Prelude.Maybe Prelude.Bool)+slackConfiguration_crawlBotMessage = Lens.lens (\SlackConfiguration' {crawlBotMessage} -> crawlBotMessage) (\s@SlackConfiguration' {} a -> s {crawlBotMessage = a} :: SlackConfiguration)++-- | @TRUE@ to exclude archived messages to index from your Slack workspace+-- team.+slackConfiguration_excludeArchived :: Lens.Lens' SlackConfiguration (Prelude.Maybe Prelude.Bool)+slackConfiguration_excludeArchived = Lens.lens (\SlackConfiguration' {excludeArchived} -> excludeArchived) (\s@SlackConfiguration' {} a -> s {excludeArchived = a} :: SlackConfiguration)++-- | A list of regular expression patterns to exclude certain attached files+-- in your Slack workspace team. Files that match the patterns are excluded+-- from the index. Files that don’t match the patterns are included in the+-- index. If a file matches both an inclusion and exclusion pattern, the+-- exclusion pattern takes precedence and the file isn\'t included in the+-- index.+slackConfiguration_exclusionPatterns :: Lens.Lens' SlackConfiguration (Prelude.Maybe [Prelude.Text])+slackConfiguration_exclusionPatterns = Lens.lens (\SlackConfiguration' {exclusionPatterns} -> exclusionPatterns) (\s@SlackConfiguration' {} a -> s {exclusionPatterns = a} :: SlackConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of @DataSourceToIndexFieldMapping@ objects that map Slack data+-- source attributes or field names to Amazon Kendra index field names. To+-- create custom fields, use the @UpdateIndex@ API before you map to Slack+-- fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Slack data source field names must exist in your Slack custom+-- metadata.+slackConfiguration_fieldMappings :: Lens.Lens' SlackConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+slackConfiguration_fieldMappings = Lens.lens (\SlackConfiguration' {fieldMappings} -> fieldMappings) (\s@SlackConfiguration' {} a -> s {fieldMappings = a} :: SlackConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to include certain attached files+-- in your Slack workspace team. Files that match the patterns are included+-- in the index. Files that don\'t match the patterns are excluded from the+-- index. If a file matches both an inclusion and exclusion pattern, the+-- exclusion pattern takes precedence and the file isn\'t included in the+-- index.+slackConfiguration_inclusionPatterns :: Lens.Lens' SlackConfiguration (Prelude.Maybe [Prelude.Text])+slackConfiguration_inclusionPatterns = Lens.lens (\SlackConfiguration' {inclusionPatterns} -> inclusionPatterns) (\s@SlackConfiguration' {} a -> s {inclusionPatterns = a} :: SlackConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The number of hours for change log to look back from when you last+-- synchronized your data. You can look back up to 7 days or 168 hours.+--+-- Change log updates your index only if new content was added since you+-- last synced your data. Updated or deleted content from before you last+-- synced does not get updated in your index. To capture updated or deleted+-- content before you last synced, set the @LookBackPeriod@ to the number+-- of hours you want change log to look back.+slackConfiguration_lookBackPeriod :: Lens.Lens' SlackConfiguration (Prelude.Maybe Prelude.Natural)+slackConfiguration_lookBackPeriod = Lens.lens (\SlackConfiguration' {lookBackPeriod} -> lookBackPeriod) (\s@SlackConfiguration' {} a -> s {lookBackPeriod = a} :: SlackConfiguration)++-- | The list of private channel names from your Slack workspace team. You+-- use this if you want to index specific private channels, not all private+-- channels. You can also use regular expression patterns to filter private+-- channels.+slackConfiguration_privateChannelFilter :: Lens.Lens' SlackConfiguration (Prelude.Maybe [Prelude.Text])+slackConfiguration_privateChannelFilter = Lens.lens (\SlackConfiguration' {privateChannelFilter} -> privateChannelFilter) (\s@SlackConfiguration' {} a -> s {privateChannelFilter = a} :: SlackConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | The list of public channel names to index from your Slack workspace+-- team. You use this if you want to index specific public channels, not+-- all public channels. You can also use regular expression patterns to+-- filter public channels.+slackConfiguration_publicChannelFilter :: Lens.Lens' SlackConfiguration (Prelude.Maybe [Prelude.Text])+slackConfiguration_publicChannelFilter = Lens.lens (\SlackConfiguration' {publicChannelFilter} -> publicChannelFilter) (\s@SlackConfiguration' {} a -> s {publicChannelFilter = a} :: SlackConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | @TRUE@ to use the Slack change log to determine which documents require+-- updating in the index. Depending on the Slack change log\'s size, it may+-- take longer for Amazon Kendra to use the change log than to scan all of+-- your documents in Slack.+slackConfiguration_useChangeLog :: Lens.Lens' SlackConfiguration (Prelude.Maybe Prelude.Bool)+slackConfiguration_useChangeLog = Lens.lens (\SlackConfiguration' {useChangeLog} -> useChangeLog) (\s@SlackConfiguration' {} a -> s {useChangeLog = a} :: SlackConfiguration)++-- | Configuration information for an Amazon Virtual Private Cloud to connect+-- to your Slack. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+slackConfiguration_vpcConfiguration :: Lens.Lens' SlackConfiguration (Prelude.Maybe DataSourceVpcConfiguration)+slackConfiguration_vpcConfiguration = Lens.lens (\SlackConfiguration' {vpcConfiguration} -> vpcConfiguration) (\s@SlackConfiguration' {} a -> s {vpcConfiguration = a} :: SlackConfiguration)++-- | The identifier of the team in the Slack workspace. For example,+-- /T0123456789/.+--+-- You can find your team ID in the URL of the main page of your Slack+-- workspace. When you log in to Slack via a browser, you are directed to+-- the URL of the main page. For example,+-- /https:\/\/app.slack.com\/client\/__T0123456789__\/.../.+slackConfiguration_teamId :: Lens.Lens' SlackConfiguration Prelude.Text+slackConfiguration_teamId = Lens.lens (\SlackConfiguration' {teamId} -> teamId) (\s@SlackConfiguration' {} a -> s {teamId = a} :: SlackConfiguration)++-- | The Amazon Resource Name (ARN) of an Secrets Manager secret that+-- contains the key-value pairs required to connect to your Slack workspace+-- team. The secret must contain a JSON structure with the following keys:+--+-- -   slackToken—The user or bot token created in Slack. For more+--     information on creating a token in Slack, see+--     <https://docs.aws.amazon.com/kendra/latest/dg/data-source-slack.html#slack-authentication Authentication for a Slack data source>.+slackConfiguration_secretArn :: Lens.Lens' SlackConfiguration Prelude.Text+slackConfiguration_secretArn = Lens.lens (\SlackConfiguration' {secretArn} -> secretArn) (\s@SlackConfiguration' {} a -> s {secretArn = a} :: SlackConfiguration)++-- | Specify whether to index public channels, private channels, group+-- messages, and direct messages. You can specify one or more of these+-- options.+slackConfiguration_slackEntityList :: Lens.Lens' SlackConfiguration (Prelude.NonEmpty SlackEntity)+slackConfiguration_slackEntityList = Lens.lens (\SlackConfiguration' {slackEntityList} -> slackEntityList) (\s@SlackConfiguration' {} a -> s {slackEntityList = a} :: SlackConfiguration) Prelude.. Lens.coerced++-- | The date to start crawling your data from your Slack workspace team. The+-- date must follow this format: @yyyy-mm-dd@.+slackConfiguration_sinceCrawlDate :: Lens.Lens' SlackConfiguration Prelude.Text+slackConfiguration_sinceCrawlDate = Lens.lens (\SlackConfiguration' {sinceCrawlDate} -> sinceCrawlDate) (\s@SlackConfiguration' {} a -> s {sinceCrawlDate = a} :: SlackConfiguration)++instance Data.FromJSON SlackConfiguration where+  parseJSON =+    Data.withObject+      "SlackConfiguration"+      ( \x ->+          SlackConfiguration'+            Prelude.<$> (x Data..:? "CrawlBotMessage")+            Prelude.<*> (x Data..:? "ExcludeArchived")+            Prelude.<*> ( x+                            Data..:? "ExclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "FieldMappings")+            Prelude.<*> ( x+                            Data..:? "InclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "LookBackPeriod")+            Prelude.<*> ( x+                            Data..:? "PrivateChannelFilter"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "PublicChannelFilter"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "UseChangeLog")+            Prelude.<*> (x Data..:? "VpcConfiguration")+            Prelude.<*> (x Data..: "TeamId")+            Prelude.<*> (x Data..: "SecretArn")+            Prelude.<*> (x Data..: "SlackEntityList")+            Prelude.<*> (x Data..: "SinceCrawlDate")+      )++instance Prelude.Hashable SlackConfiguration where+  hashWithSalt _salt SlackConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` crawlBotMessage+      `Prelude.hashWithSalt` excludeArchived+      `Prelude.hashWithSalt` exclusionPatterns+      `Prelude.hashWithSalt` fieldMappings+      `Prelude.hashWithSalt` inclusionPatterns+      `Prelude.hashWithSalt` lookBackPeriod+      `Prelude.hashWithSalt` privateChannelFilter+      `Prelude.hashWithSalt` publicChannelFilter+      `Prelude.hashWithSalt` useChangeLog+      `Prelude.hashWithSalt` vpcConfiguration+      `Prelude.hashWithSalt` teamId+      `Prelude.hashWithSalt` secretArn+      `Prelude.hashWithSalt` slackEntityList+      `Prelude.hashWithSalt` sinceCrawlDate++instance Prelude.NFData SlackConfiguration where+  rnf SlackConfiguration' {..} =+    Prelude.rnf crawlBotMessage+      `Prelude.seq` Prelude.rnf excludeArchived+      `Prelude.seq` Prelude.rnf exclusionPatterns+      `Prelude.seq` Prelude.rnf fieldMappings+      `Prelude.seq` Prelude.rnf inclusionPatterns+      `Prelude.seq` Prelude.rnf lookBackPeriod+      `Prelude.seq` Prelude.rnf privateChannelFilter+      `Prelude.seq` Prelude.rnf publicChannelFilter+      `Prelude.seq` Prelude.rnf useChangeLog+      `Prelude.seq` Prelude.rnf vpcConfiguration+      `Prelude.seq` Prelude.rnf teamId+      `Prelude.seq` Prelude.rnf secretArn+      `Prelude.seq` Prelude.rnf slackEntityList+      `Prelude.seq` Prelude.rnf sinceCrawlDate++instance Data.ToJSON SlackConfiguration where+  toJSON SlackConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CrawlBotMessage" Data..=)+              Prelude.<$> crawlBotMessage,+            ("ExcludeArchived" Data..=)+              Prelude.<$> excludeArchived,+            ("ExclusionPatterns" Data..=)+              Prelude.<$> exclusionPatterns,+            ("FieldMappings" Data..=) Prelude.<$> fieldMappings,+            ("InclusionPatterns" Data..=)+              Prelude.<$> inclusionPatterns,+            ("LookBackPeriod" Data..=)+              Prelude.<$> lookBackPeriod,+            ("PrivateChannelFilter" Data..=)+              Prelude.<$> privateChannelFilter,+            ("PublicChannelFilter" Data..=)+              Prelude.<$> publicChannelFilter,+            ("UseChangeLog" Data..=) Prelude.<$> useChangeLog,+            ("VpcConfiguration" Data..=)+              Prelude.<$> vpcConfiguration,+            Prelude.Just ("TeamId" Data..= teamId),+            Prelude.Just ("SecretArn" Data..= secretArn),+            Prelude.Just+              ("SlackEntityList" Data..= slackEntityList),+            Prelude.Just+              ("SinceCrawlDate" Data..= sinceCrawlDate)+          ]+      )
+ gen/Amazonka/Kendra/Types/SlackEntity.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.Kendra.Types.SlackEntity+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SlackEntity+  ( SlackEntity+      ( ..,+        SlackEntity_DIRECT_MESSAGE,+        SlackEntity_GROUP_MESSAGE,+        SlackEntity_PRIVATE_CHANNEL,+        SlackEntity_PUBLIC_CHANNEL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SlackEntity = SlackEntity'+  { fromSlackEntity ::+      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 SlackEntity_DIRECT_MESSAGE :: SlackEntity+pattern SlackEntity_DIRECT_MESSAGE = SlackEntity' "DIRECT_MESSAGE"++pattern SlackEntity_GROUP_MESSAGE :: SlackEntity+pattern SlackEntity_GROUP_MESSAGE = SlackEntity' "GROUP_MESSAGE"++pattern SlackEntity_PRIVATE_CHANNEL :: SlackEntity+pattern SlackEntity_PRIVATE_CHANNEL = SlackEntity' "PRIVATE_CHANNEL"++pattern SlackEntity_PUBLIC_CHANNEL :: SlackEntity+pattern SlackEntity_PUBLIC_CHANNEL = SlackEntity' "PUBLIC_CHANNEL"++{-# COMPLETE+  SlackEntity_DIRECT_MESSAGE,+  SlackEntity_GROUP_MESSAGE,+  SlackEntity_PRIVATE_CHANNEL,+  SlackEntity_PUBLIC_CHANNEL,+  SlackEntity'+  #-}
+ gen/Amazonka/Kendra/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.Kendra.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.Kendra.Types.SortOrder+  ( SortOrder+      ( ..,+        SortOrder_ASC,+        SortOrder_DESC+      ),+  )+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_ASC :: SortOrder+pattern SortOrder_ASC = SortOrder' "ASC"++pattern SortOrder_DESC :: SortOrder+pattern SortOrder_DESC = SortOrder' "DESC"++{-# COMPLETE+  SortOrder_ASC,+  SortOrder_DESC,+  SortOrder'+  #-}
+ gen/Amazonka/Kendra/Types/SortingConfiguration.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.Kendra.Types.SortingConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SortingConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.SortOrder+import qualified Amazonka.Prelude as Prelude++-- | Specifies the document attribute to use to sort the response to a Amazon+-- Kendra query. You can specify a single attribute for sorting. The+-- attribute must have the @Sortable@ flag set to @true@, otherwise Amazon+-- Kendra returns an exception.+--+-- You can sort attributes of the following types.+--+-- -   Date value+--+-- -   Long value+--+-- -   String value+--+-- You can\'t sort attributes of the following type.+--+-- -   String list value+--+-- /See:/ 'newSortingConfiguration' smart constructor.+data SortingConfiguration = SortingConfiguration'+  { -- | The name of the document attribute used to sort the response. You can+    -- use any field that has the @Sortable@ flag set to true.+    --+    -- You can also sort by any of the following built-in attributes:+    --+    -- -   _category+    --+    -- -   _created_at+    --+    -- -   _last_updated_at+    --+    -- -   _version+    --+    -- -   _view_count+    documentAttributeKey :: Prelude.Text,+    -- | The order that the results should be returned in. In case of ties, the+    -- relevance assigned to the result by Amazon Kendra is used as the+    -- tie-breaker.+    sortOrder :: SortOrder+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SortingConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'documentAttributeKey', 'sortingConfiguration_documentAttributeKey' - The name of the document attribute used to sort the response. You can+-- use any field that has the @Sortable@ flag set to true.+--+-- You can also sort by any of the following built-in attributes:+--+-- -   _category+--+-- -   _created_at+--+-- -   _last_updated_at+--+-- -   _version+--+-- -   _view_count+--+-- 'sortOrder', 'sortingConfiguration_sortOrder' - The order that the results should be returned in. In case of ties, the+-- relevance assigned to the result by Amazon Kendra is used as the+-- tie-breaker.+newSortingConfiguration ::+  -- | 'documentAttributeKey'+  Prelude.Text ->+  -- | 'sortOrder'+  SortOrder ->+  SortingConfiguration+newSortingConfiguration+  pDocumentAttributeKey_+  pSortOrder_ =+    SortingConfiguration'+      { documentAttributeKey =+          pDocumentAttributeKey_,+        sortOrder = pSortOrder_+      }++-- | The name of the document attribute used to sort the response. You can+-- use any field that has the @Sortable@ flag set to true.+--+-- You can also sort by any of the following built-in attributes:+--+-- -   _category+--+-- -   _created_at+--+-- -   _last_updated_at+--+-- -   _version+--+-- -   _view_count+sortingConfiguration_documentAttributeKey :: Lens.Lens' SortingConfiguration Prelude.Text+sortingConfiguration_documentAttributeKey = Lens.lens (\SortingConfiguration' {documentAttributeKey} -> documentAttributeKey) (\s@SortingConfiguration' {} a -> s {documentAttributeKey = a} :: SortingConfiguration)++-- | The order that the results should be returned in. In case of ties, the+-- relevance assigned to the result by Amazon Kendra is used as the+-- tie-breaker.+sortingConfiguration_sortOrder :: Lens.Lens' SortingConfiguration SortOrder+sortingConfiguration_sortOrder = Lens.lens (\SortingConfiguration' {sortOrder} -> sortOrder) (\s@SortingConfiguration' {} a -> s {sortOrder = a} :: SortingConfiguration)++instance Prelude.Hashable SortingConfiguration where+  hashWithSalt _salt SortingConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` documentAttributeKey+      `Prelude.hashWithSalt` sortOrder++instance Prelude.NFData SortingConfiguration where+  rnf SortingConfiguration' {..} =+    Prelude.rnf documentAttributeKey+      `Prelude.seq` Prelude.rnf sortOrder++instance Data.ToJSON SortingConfiguration where+  toJSON SortingConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "DocumentAttributeKey"+                  Data..= documentAttributeKey+              ),+            Prelude.Just ("SortOrder" Data..= sortOrder)+          ]+      )
+ gen/Amazonka/Kendra/Types/SpellCorrectedQuery.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.SpellCorrectedQuery+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SpellCorrectedQuery where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.Correction+import qualified Amazonka.Prelude as Prelude++-- | A query with suggested spell corrections.+--+-- /See:/ 'newSpellCorrectedQuery' smart constructor.+data SpellCorrectedQuery = SpellCorrectedQuery'+  { -- | The corrected misspelled word or words in a query.+    corrections :: Prelude.Maybe [Correction],+    -- | The query with the suggested spell corrections.+    suggestedQueryText :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SpellCorrectedQuery' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'corrections', 'spellCorrectedQuery_corrections' - The corrected misspelled word or words in a query.+--+-- 'suggestedQueryText', 'spellCorrectedQuery_suggestedQueryText' - The query with the suggested spell corrections.+newSpellCorrectedQuery ::+  SpellCorrectedQuery+newSpellCorrectedQuery =+  SpellCorrectedQuery'+    { corrections = Prelude.Nothing,+      suggestedQueryText = Prelude.Nothing+    }++-- | The corrected misspelled word or words in a query.+spellCorrectedQuery_corrections :: Lens.Lens' SpellCorrectedQuery (Prelude.Maybe [Correction])+spellCorrectedQuery_corrections = Lens.lens (\SpellCorrectedQuery' {corrections} -> corrections) (\s@SpellCorrectedQuery' {} a -> s {corrections = a} :: SpellCorrectedQuery) Prelude.. Lens.mapping Lens.coerced++-- | The query with the suggested spell corrections.+spellCorrectedQuery_suggestedQueryText :: Lens.Lens' SpellCorrectedQuery (Prelude.Maybe Prelude.Text)+spellCorrectedQuery_suggestedQueryText = Lens.lens (\SpellCorrectedQuery' {suggestedQueryText} -> suggestedQueryText) (\s@SpellCorrectedQuery' {} a -> s {suggestedQueryText = a} :: SpellCorrectedQuery)++instance Data.FromJSON SpellCorrectedQuery where+  parseJSON =+    Data.withObject+      "SpellCorrectedQuery"+      ( \x ->+          SpellCorrectedQuery'+            Prelude.<$> (x Data..:? "Corrections" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "SuggestedQueryText")+      )++instance Prelude.Hashable SpellCorrectedQuery where+  hashWithSalt _salt SpellCorrectedQuery' {..} =+    _salt+      `Prelude.hashWithSalt` corrections+      `Prelude.hashWithSalt` suggestedQueryText++instance Prelude.NFData SpellCorrectedQuery where+  rnf SpellCorrectedQuery' {..} =+    Prelude.rnf corrections+      `Prelude.seq` Prelude.rnf suggestedQueryText
+ gen/Amazonka/Kendra/Types/SpellCorrectionConfiguration.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.SpellCorrectionConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SpellCorrectionConfiguration 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 configuration information for suggested query spell+-- corrections.+--+-- Suggested spell corrections are based on words that appear in your+-- indexed documents and how closely a corrected word matches a misspelled+-- word.+--+-- This feature is designed with certain defaults or limits. For+-- information on the current limits and how to request more support for+-- some limits, see the+-- <https://docs.aws.amazon.com/kendra/latest/dg/query-spell-check.html Spell Checker documentation>.+--+-- /See:/ 'newSpellCorrectionConfiguration' smart constructor.+data SpellCorrectionConfiguration = SpellCorrectionConfiguration'+  { -- | @TRUE@ to suggest spell corrections for queries.+    includeQuerySpellCheckSuggestions :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SpellCorrectionConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'includeQuerySpellCheckSuggestions', 'spellCorrectionConfiguration_includeQuerySpellCheckSuggestions' - @TRUE@ to suggest spell corrections for queries.+newSpellCorrectionConfiguration ::+  -- | 'includeQuerySpellCheckSuggestions'+  Prelude.Bool ->+  SpellCorrectionConfiguration+newSpellCorrectionConfiguration+  pIncludeQuerySpellCheckSuggestions_ =+    SpellCorrectionConfiguration'+      { includeQuerySpellCheckSuggestions =+          pIncludeQuerySpellCheckSuggestions_+      }++-- | @TRUE@ to suggest spell corrections for queries.+spellCorrectionConfiguration_includeQuerySpellCheckSuggestions :: Lens.Lens' SpellCorrectionConfiguration Prelude.Bool+spellCorrectionConfiguration_includeQuerySpellCheckSuggestions = Lens.lens (\SpellCorrectionConfiguration' {includeQuerySpellCheckSuggestions} -> includeQuerySpellCheckSuggestions) (\s@SpellCorrectionConfiguration' {} a -> s {includeQuerySpellCheckSuggestions = a} :: SpellCorrectionConfiguration)++instance+  Prelude.Hashable+    SpellCorrectionConfiguration+  where+  hashWithSalt _salt SpellCorrectionConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` includeQuerySpellCheckSuggestions++instance Prelude.NFData SpellCorrectionConfiguration where+  rnf SpellCorrectionConfiguration' {..} =+    Prelude.rnf includeQuerySpellCheckSuggestions++instance Data.ToJSON SpellCorrectionConfiguration where+  toJSON SpellCorrectionConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "IncludeQuerySpellCheckSuggestions"+                  Data..= includeQuerySpellCheckSuggestions+              )+          ]+      )
+ gen/Amazonka/Kendra/Types/SqlConfiguration.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.Kendra.Types.SqlConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SqlConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.QueryIdentifiersEnclosingOption+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to use a SQL database.+--+-- /See:/ 'newSqlConfiguration' smart constructor.+data SqlConfiguration = SqlConfiguration'+  { -- | Determines whether Amazon Kendra encloses SQL identifiers for tables and+    -- column names in double quotes (\") when making a database query.+    --+    -- By default, Amazon Kendra passes SQL identifiers the way that they are+    -- entered into the data source configuration. It does not change the case+    -- of identifiers or enclose them in quotes.+    --+    -- PostgreSQL internally converts uppercase characters to lower case+    -- characters in identifiers unless they are quoted. Choosing this option+    -- encloses identifiers in quotes so that PostgreSQL does not convert the+    -- character\'s case.+    --+    -- For MySQL databases, you must enable the @ansi_quotes@ option when you+    -- set this field to @DOUBLE_QUOTES@.+    queryIdentifiersEnclosingOption :: Prelude.Maybe QueryIdentifiersEnclosingOption+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SqlConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'queryIdentifiersEnclosingOption', 'sqlConfiguration_queryIdentifiersEnclosingOption' - Determines whether Amazon Kendra encloses SQL identifiers for tables and+-- column names in double quotes (\") when making a database query.+--+-- By default, Amazon Kendra passes SQL identifiers the way that they are+-- entered into the data source configuration. It does not change the case+-- of identifiers or enclose them in quotes.+--+-- PostgreSQL internally converts uppercase characters to lower case+-- characters in identifiers unless they are quoted. Choosing this option+-- encloses identifiers in quotes so that PostgreSQL does not convert the+-- character\'s case.+--+-- For MySQL databases, you must enable the @ansi_quotes@ option when you+-- set this field to @DOUBLE_QUOTES@.+newSqlConfiguration ::+  SqlConfiguration+newSqlConfiguration =+  SqlConfiguration'+    { queryIdentifiersEnclosingOption =+        Prelude.Nothing+    }++-- | Determines whether Amazon Kendra encloses SQL identifiers for tables and+-- column names in double quotes (\") when making a database query.+--+-- By default, Amazon Kendra passes SQL identifiers the way that they are+-- entered into the data source configuration. It does not change the case+-- of identifiers or enclose them in quotes.+--+-- PostgreSQL internally converts uppercase characters to lower case+-- characters in identifiers unless they are quoted. Choosing this option+-- encloses identifiers in quotes so that PostgreSQL does not convert the+-- character\'s case.+--+-- For MySQL databases, you must enable the @ansi_quotes@ option when you+-- set this field to @DOUBLE_QUOTES@.+sqlConfiguration_queryIdentifiersEnclosingOption :: Lens.Lens' SqlConfiguration (Prelude.Maybe QueryIdentifiersEnclosingOption)+sqlConfiguration_queryIdentifiersEnclosingOption = Lens.lens (\SqlConfiguration' {queryIdentifiersEnclosingOption} -> queryIdentifiersEnclosingOption) (\s@SqlConfiguration' {} a -> s {queryIdentifiersEnclosingOption = a} :: SqlConfiguration)++instance Data.FromJSON SqlConfiguration where+  parseJSON =+    Data.withObject+      "SqlConfiguration"+      ( \x ->+          SqlConfiguration'+            Prelude.<$> (x Data..:? "QueryIdentifiersEnclosingOption")+      )++instance Prelude.Hashable SqlConfiguration where+  hashWithSalt _salt SqlConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` queryIdentifiersEnclosingOption++instance Prelude.NFData SqlConfiguration where+  rnf SqlConfiguration' {..} =+    Prelude.rnf queryIdentifiersEnclosingOption++instance Data.ToJSON SqlConfiguration where+  toJSON SqlConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("QueryIdentifiersEnclosingOption" Data..=)+              Prelude.<$> queryIdentifiersEnclosingOption+          ]+      )
+ gen/Amazonka/Kendra/Types/Status.hs view
@@ -0,0 +1,125 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.Status+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.Status where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DocumentStatus+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the status of documents submitted for+-- indexing.+--+-- /See:/ 'newStatus' smart constructor.+data Status = Status'+  { -- | The identifier of the document.+    documentId :: Prelude.Maybe Prelude.Text,+    -- | The current status of a document.+    --+    -- If the document was submitted for deletion, the status is @NOT_FOUND@+    -- after the document is deleted.+    documentStatus :: Prelude.Maybe DocumentStatus,+    -- | Indicates the source of the error.+    failureCode :: Prelude.Maybe Prelude.Text,+    -- | Provides detailed information about why the document couldn\'t be+    -- indexed. Use this information to correct the error before you resubmit+    -- the document for indexing.+    failureReason :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Status' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'documentId', 'status_documentId' - The identifier of the document.+--+-- 'documentStatus', 'status_documentStatus' - The current status of a document.+--+-- If the document was submitted for deletion, the status is @NOT_FOUND@+-- after the document is deleted.+--+-- 'failureCode', 'status_failureCode' - Indicates the source of the error.+--+-- 'failureReason', 'status_failureReason' - Provides detailed information about why the document couldn\'t be+-- indexed. Use this information to correct the error before you resubmit+-- the document for indexing.+newStatus ::+  Status+newStatus =+  Status'+    { documentId = Prelude.Nothing,+      documentStatus = Prelude.Nothing,+      failureCode = Prelude.Nothing,+      failureReason = Prelude.Nothing+    }++-- | The identifier of the document.+status_documentId :: Lens.Lens' Status (Prelude.Maybe Prelude.Text)+status_documentId = Lens.lens (\Status' {documentId} -> documentId) (\s@Status' {} a -> s {documentId = a} :: Status)++-- | The current status of a document.+--+-- If the document was submitted for deletion, the status is @NOT_FOUND@+-- after the document is deleted.+status_documentStatus :: Lens.Lens' Status (Prelude.Maybe DocumentStatus)+status_documentStatus = Lens.lens (\Status' {documentStatus} -> documentStatus) (\s@Status' {} a -> s {documentStatus = a} :: Status)++-- | Indicates the source of the error.+status_failureCode :: Lens.Lens' Status (Prelude.Maybe Prelude.Text)+status_failureCode = Lens.lens (\Status' {failureCode} -> failureCode) (\s@Status' {} a -> s {failureCode = a} :: Status)++-- | Provides detailed information about why the document couldn\'t be+-- indexed. Use this information to correct the error before you resubmit+-- the document for indexing.+status_failureReason :: Lens.Lens' Status (Prelude.Maybe Prelude.Text)+status_failureReason = Lens.lens (\Status' {failureReason} -> failureReason) (\s@Status' {} a -> s {failureReason = a} :: Status)++instance Data.FromJSON Status where+  parseJSON =+    Data.withObject+      "Status"+      ( \x ->+          Status'+            Prelude.<$> (x Data..:? "DocumentId")+            Prelude.<*> (x Data..:? "DocumentStatus")+            Prelude.<*> (x Data..:? "FailureCode")+            Prelude.<*> (x Data..:? "FailureReason")+      )++instance Prelude.Hashable Status where+  hashWithSalt _salt Status' {..} =+    _salt+      `Prelude.hashWithSalt` documentId+      `Prelude.hashWithSalt` documentStatus+      `Prelude.hashWithSalt` failureCode+      `Prelude.hashWithSalt` failureReason++instance Prelude.NFData Status where+  rnf Status' {..} =+    Prelude.rnf documentId+      `Prelude.seq` Prelude.rnf documentStatus+      `Prelude.seq` Prelude.rnf failureCode+      `Prelude.seq` Prelude.rnf failureReason
+ gen/Amazonka/Kendra/Types/Suggestion.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.Kendra.Types.Suggestion+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.Suggestion where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.SuggestionValue+import qualified Amazonka.Prelude as Prelude++-- | A single query suggestion.+--+-- /See:/ 'newSuggestion' smart constructor.+data Suggestion = Suggestion'+  { -- | The UUID (universally unique identifier) of a single query suggestion.+    id :: Prelude.Maybe Prelude.Text,+    -- | The value for the UUID (universally unique identifier) of a single query+    -- suggestion.+    --+    -- The value is the text string of a suggestion.+    value :: Prelude.Maybe SuggestionValue+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Suggestion' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'id', 'suggestion_id' - The UUID (universally unique identifier) of a single query suggestion.+--+-- 'value', 'suggestion_value' - The value for the UUID (universally unique identifier) of a single query+-- suggestion.+--+-- The value is the text string of a suggestion.+newSuggestion ::+  Suggestion+newSuggestion =+  Suggestion'+    { id = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The UUID (universally unique identifier) of a single query suggestion.+suggestion_id :: Lens.Lens' Suggestion (Prelude.Maybe Prelude.Text)+suggestion_id = Lens.lens (\Suggestion' {id} -> id) (\s@Suggestion' {} a -> s {id = a} :: Suggestion)++-- | The value for the UUID (universally unique identifier) of a single query+-- suggestion.+--+-- The value is the text string of a suggestion.+suggestion_value :: Lens.Lens' Suggestion (Prelude.Maybe SuggestionValue)+suggestion_value = Lens.lens (\Suggestion' {value} -> value) (\s@Suggestion' {} a -> s {value = a} :: Suggestion)++instance Data.FromJSON Suggestion where+  parseJSON =+    Data.withObject+      "Suggestion"+      ( \x ->+          Suggestion'+            Prelude.<$> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "Value")+      )++instance Prelude.Hashable Suggestion where+  hashWithSalt _salt Suggestion' {..} =+    _salt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` value++instance Prelude.NFData Suggestion where+  rnf Suggestion' {..} =+    Prelude.rnf id `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/Kendra/Types/SuggestionHighlight.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.Kendra.Types.SuggestionHighlight+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SuggestionHighlight 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 text highlights for a single query suggestion.+--+-- /See:/ 'newSuggestionHighlight' smart constructor.+data SuggestionHighlight = SuggestionHighlight'+  { -- | The zero-based location in the response string where the highlight+    -- starts.+    beginOffset :: Prelude.Maybe Prelude.Int,+    -- | The zero-based location in the response string where the highlight ends.+    endOffset :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SuggestionHighlight' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'beginOffset', 'suggestionHighlight_beginOffset' - The zero-based location in the response string where the highlight+-- starts.+--+-- 'endOffset', 'suggestionHighlight_endOffset' - The zero-based location in the response string where the highlight ends.+newSuggestionHighlight ::+  SuggestionHighlight+newSuggestionHighlight =+  SuggestionHighlight'+    { beginOffset = Prelude.Nothing,+      endOffset = Prelude.Nothing+    }++-- | The zero-based location in the response string where the highlight+-- starts.+suggestionHighlight_beginOffset :: Lens.Lens' SuggestionHighlight (Prelude.Maybe Prelude.Int)+suggestionHighlight_beginOffset = Lens.lens (\SuggestionHighlight' {beginOffset} -> beginOffset) (\s@SuggestionHighlight' {} a -> s {beginOffset = a} :: SuggestionHighlight)++-- | The zero-based location in the response string where the highlight ends.+suggestionHighlight_endOffset :: Lens.Lens' SuggestionHighlight (Prelude.Maybe Prelude.Int)+suggestionHighlight_endOffset = Lens.lens (\SuggestionHighlight' {endOffset} -> endOffset) (\s@SuggestionHighlight' {} a -> s {endOffset = a} :: SuggestionHighlight)++instance Data.FromJSON SuggestionHighlight where+  parseJSON =+    Data.withObject+      "SuggestionHighlight"+      ( \x ->+          SuggestionHighlight'+            Prelude.<$> (x Data..:? "BeginOffset")+            Prelude.<*> (x Data..:? "EndOffset")+      )++instance Prelude.Hashable SuggestionHighlight where+  hashWithSalt _salt SuggestionHighlight' {..} =+    _salt+      `Prelude.hashWithSalt` beginOffset+      `Prelude.hashWithSalt` endOffset++instance Prelude.NFData SuggestionHighlight where+  rnf SuggestionHighlight' {..} =+    Prelude.rnf beginOffset+      `Prelude.seq` Prelude.rnf endOffset
+ gen/Amazonka/Kendra/Types/SuggestionTextWithHighlights.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.Kendra.Types.SuggestionTextWithHighlights+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SuggestionTextWithHighlights where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.SuggestionHighlight+import qualified Amazonka.Prelude as Prelude++-- | Provides text and information about where to highlight the query+-- suggestion text.+--+-- /See:/ 'newSuggestionTextWithHighlights' smart constructor.+data SuggestionTextWithHighlights = SuggestionTextWithHighlights'+  { -- | The beginning and end of the query suggestion text that should be+    -- highlighted.+    highlights :: Prelude.Maybe [SuggestionHighlight],+    -- | The query suggestion text to display to the user.+    text :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SuggestionTextWithHighlights' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'highlights', 'suggestionTextWithHighlights_highlights' - The beginning and end of the query suggestion text that should be+-- highlighted.+--+-- 'text', 'suggestionTextWithHighlights_text' - The query suggestion text to display to the user.+newSuggestionTextWithHighlights ::+  SuggestionTextWithHighlights+newSuggestionTextWithHighlights =+  SuggestionTextWithHighlights'+    { highlights =+        Prelude.Nothing,+      text = Prelude.Nothing+    }++-- | The beginning and end of the query suggestion text that should be+-- highlighted.+suggestionTextWithHighlights_highlights :: Lens.Lens' SuggestionTextWithHighlights (Prelude.Maybe [SuggestionHighlight])+suggestionTextWithHighlights_highlights = Lens.lens (\SuggestionTextWithHighlights' {highlights} -> highlights) (\s@SuggestionTextWithHighlights' {} a -> s {highlights = a} :: SuggestionTextWithHighlights) Prelude.. Lens.mapping Lens.coerced++-- | The query suggestion text to display to the user.+suggestionTextWithHighlights_text :: Lens.Lens' SuggestionTextWithHighlights (Prelude.Maybe Prelude.Text)+suggestionTextWithHighlights_text = Lens.lens (\SuggestionTextWithHighlights' {text} -> text) (\s@SuggestionTextWithHighlights' {} a -> s {text = a} :: SuggestionTextWithHighlights)++instance Data.FromJSON SuggestionTextWithHighlights where+  parseJSON =+    Data.withObject+      "SuggestionTextWithHighlights"+      ( \x ->+          SuggestionTextWithHighlights'+            Prelude.<$> (x Data..:? "Highlights" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Text")+      )++instance+  Prelude.Hashable+    SuggestionTextWithHighlights+  where+  hashWithSalt _salt SuggestionTextWithHighlights' {..} =+    _salt+      `Prelude.hashWithSalt` highlights+      `Prelude.hashWithSalt` text++instance Prelude.NFData SuggestionTextWithHighlights where+  rnf SuggestionTextWithHighlights' {..} =+    Prelude.rnf highlights+      `Prelude.seq` Prelude.rnf text
+ gen/Amazonka/Kendra/Types/SuggestionValue.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.SuggestionValue+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.SuggestionValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.SuggestionTextWithHighlights+import qualified Amazonka.Prelude as Prelude++-- | The @SuggestionTextWithHighlights@ structure information.+--+-- /See:/ 'newSuggestionValue' smart constructor.+data SuggestionValue = SuggestionValue'+  { -- | The @SuggestionTextWithHighlights@ structure that contains the query+    -- suggestion text and highlights.+    text :: Prelude.Maybe SuggestionTextWithHighlights+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SuggestionValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'suggestionValue_text' - The @SuggestionTextWithHighlights@ structure that contains the query+-- suggestion text and highlights.+newSuggestionValue ::+  SuggestionValue+newSuggestionValue =+  SuggestionValue' {text = Prelude.Nothing}++-- | The @SuggestionTextWithHighlights@ structure that contains the query+-- suggestion text and highlights.+suggestionValue_text :: Lens.Lens' SuggestionValue (Prelude.Maybe SuggestionTextWithHighlights)+suggestionValue_text = Lens.lens (\SuggestionValue' {text} -> text) (\s@SuggestionValue' {} a -> s {text = a} :: SuggestionValue)++instance Data.FromJSON SuggestionValue where+  parseJSON =+    Data.withObject+      "SuggestionValue"+      ( \x ->+          SuggestionValue' Prelude.<$> (x Data..:? "Text")+      )++instance Prelude.Hashable SuggestionValue where+  hashWithSalt _salt SuggestionValue' {..} =+    _salt `Prelude.hashWithSalt` text++instance Prelude.NFData SuggestionValue where+  rnf SuggestionValue' {..} = Prelude.rnf text
+ gen/Amazonka/Kendra/Types/TableCell.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.Kendra.Types.TableCell+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.TableCell 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 a table cell in a table excerpt.+--+-- /See:/ 'newTableCell' smart constructor.+data TableCell = TableCell'+  { -- | @TRUE@ means that the table cell should be treated as a header.+    header :: Prelude.Maybe Prelude.Bool,+    -- | @TRUE@ means that the table cell has a high enough confidence and is+    -- relevant to the query, so the value or content should be highlighted.+    highlighted :: Prelude.Maybe Prelude.Bool,+    -- | @TRUE@ if the response of the table cell is the top answer. This is the+    -- cell value or content with the highest confidence score or is the most+    -- relevant to the query.+    topAnswer :: Prelude.Maybe Prelude.Bool,+    -- | The actual value or content within a table cell. A table cell could+    -- contain a date value of a year, or a string value of text, for example.+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TableCell' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'header', 'tableCell_header' - @TRUE@ means that the table cell should be treated as a header.+--+-- 'highlighted', 'tableCell_highlighted' - @TRUE@ means that the table cell has a high enough confidence and is+-- relevant to the query, so the value or content should be highlighted.+--+-- 'topAnswer', 'tableCell_topAnswer' - @TRUE@ if the response of the table cell is the top answer. This is the+-- cell value or content with the highest confidence score or is the most+-- relevant to the query.+--+-- 'value', 'tableCell_value' - The actual value or content within a table cell. A table cell could+-- contain a date value of a year, or a string value of text, for example.+newTableCell ::+  TableCell+newTableCell =+  TableCell'+    { header = Prelude.Nothing,+      highlighted = Prelude.Nothing,+      topAnswer = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | @TRUE@ means that the table cell should be treated as a header.+tableCell_header :: Lens.Lens' TableCell (Prelude.Maybe Prelude.Bool)+tableCell_header = Lens.lens (\TableCell' {header} -> header) (\s@TableCell' {} a -> s {header = a} :: TableCell)++-- | @TRUE@ means that the table cell has a high enough confidence and is+-- relevant to the query, so the value or content should be highlighted.+tableCell_highlighted :: Lens.Lens' TableCell (Prelude.Maybe Prelude.Bool)+tableCell_highlighted = Lens.lens (\TableCell' {highlighted} -> highlighted) (\s@TableCell' {} a -> s {highlighted = a} :: TableCell)++-- | @TRUE@ if the response of the table cell is the top answer. This is the+-- cell value or content with the highest confidence score or is the most+-- relevant to the query.+tableCell_topAnswer :: Lens.Lens' TableCell (Prelude.Maybe Prelude.Bool)+tableCell_topAnswer = Lens.lens (\TableCell' {topAnswer} -> topAnswer) (\s@TableCell' {} a -> s {topAnswer = a} :: TableCell)++-- | The actual value or content within a table cell. A table cell could+-- contain a date value of a year, or a string value of text, for example.+tableCell_value :: Lens.Lens' TableCell (Prelude.Maybe Prelude.Text)+tableCell_value = Lens.lens (\TableCell' {value} -> value) (\s@TableCell' {} a -> s {value = a} :: TableCell)++instance Data.FromJSON TableCell where+  parseJSON =+    Data.withObject+      "TableCell"+      ( \x ->+          TableCell'+            Prelude.<$> (x Data..:? "Header")+            Prelude.<*> (x Data..:? "Highlighted")+            Prelude.<*> (x Data..:? "TopAnswer")+            Prelude.<*> (x Data..:? "Value")+      )++instance Prelude.Hashable TableCell where+  hashWithSalt _salt TableCell' {..} =+    _salt+      `Prelude.hashWithSalt` header+      `Prelude.hashWithSalt` highlighted+      `Prelude.hashWithSalt` topAnswer+      `Prelude.hashWithSalt` value++instance Prelude.NFData TableCell where+  rnf TableCell' {..} =+    Prelude.rnf header+      `Prelude.seq` Prelude.rnf highlighted+      `Prelude.seq` Prelude.rnf topAnswer+      `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/Kendra/Types/TableExcerpt.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.Kendra.Types.TableExcerpt+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.TableExcerpt where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.TableRow+import qualified Amazonka.Prelude as Prelude++-- | An excerpt from a table within a document. The table excerpt displays up+-- to five columns and three rows, depending on how many table cells are+-- relevant to the query and how many columns are available in the original+-- table. The top most relevant cell is displayed in the table excerpt,+-- along with the next most relevant cells.+--+-- /See:/ 'newTableExcerpt' smart constructor.+data TableExcerpt = TableExcerpt'+  { -- | A list of rows in the table excerpt.+    rows :: Prelude.Maybe [TableRow],+    -- | A count of the number of rows in the original table within the document.+    totalNumberOfRows :: Prelude.Maybe Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TableExcerpt' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'rows', 'tableExcerpt_rows' - A list of rows in the table excerpt.+--+-- 'totalNumberOfRows', 'tableExcerpt_totalNumberOfRows' - A count of the number of rows in the original table within the document.+newTableExcerpt ::+  TableExcerpt+newTableExcerpt =+  TableExcerpt'+    { rows = Prelude.Nothing,+      totalNumberOfRows = Prelude.Nothing+    }++-- | A list of rows in the table excerpt.+tableExcerpt_rows :: Lens.Lens' TableExcerpt (Prelude.Maybe [TableRow])+tableExcerpt_rows = Lens.lens (\TableExcerpt' {rows} -> rows) (\s@TableExcerpt' {} a -> s {rows = a} :: TableExcerpt) Prelude.. Lens.mapping Lens.coerced++-- | A count of the number of rows in the original table within the document.+tableExcerpt_totalNumberOfRows :: Lens.Lens' TableExcerpt (Prelude.Maybe Prelude.Int)+tableExcerpt_totalNumberOfRows = Lens.lens (\TableExcerpt' {totalNumberOfRows} -> totalNumberOfRows) (\s@TableExcerpt' {} a -> s {totalNumberOfRows = a} :: TableExcerpt)++instance Data.FromJSON TableExcerpt where+  parseJSON =+    Data.withObject+      "TableExcerpt"+      ( \x ->+          TableExcerpt'+            Prelude.<$> (x Data..:? "Rows" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "TotalNumberOfRows")+      )++instance Prelude.Hashable TableExcerpt where+  hashWithSalt _salt TableExcerpt' {..} =+    _salt+      `Prelude.hashWithSalt` rows+      `Prelude.hashWithSalt` totalNumberOfRows++instance Prelude.NFData TableExcerpt where+  rnf TableExcerpt' {..} =+    Prelude.rnf rows+      `Prelude.seq` Prelude.rnf totalNumberOfRows
+ gen/Amazonka/Kendra/Types/TableRow.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.Kendra.Types.TableRow+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.TableRow where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.TableCell+import qualified Amazonka.Prelude as Prelude++-- | Information about a row in a table excerpt.+--+-- /See:/ 'newTableRow' smart constructor.+data TableRow = TableRow'+  { -- | A list of table cells in a row.+    cells :: Prelude.Maybe [TableCell]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TableRow' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'cells', 'tableRow_cells' - A list of table cells in a row.+newTableRow ::+  TableRow+newTableRow = TableRow' {cells = Prelude.Nothing}++-- | A list of table cells in a row.+tableRow_cells :: Lens.Lens' TableRow (Prelude.Maybe [TableCell])+tableRow_cells = Lens.lens (\TableRow' {cells} -> cells) (\s@TableRow' {} a -> s {cells = a} :: TableRow) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON TableRow where+  parseJSON =+    Data.withObject+      "TableRow"+      ( \x ->+          TableRow'+            Prelude.<$> (x Data..:? "Cells" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable TableRow where+  hashWithSalt _salt TableRow' {..} =+    _salt `Prelude.hashWithSalt` cells++instance Prelude.NFData TableRow where+  rnf TableRow' {..} = Prelude.rnf cells
+ gen/Amazonka/Kendra/Types/Tag.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.Tag+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.Tag 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 list of key\/value pairs that identify an index, FAQ, or data source.+-- Tag keys and values can consist of Unicode letters, digits, white space,+-- and any of the following symbols: _ . : \/ = + - \@.+--+-- /See:/ 'newTag' smart constructor.+data Tag = Tag'+  { -- | The key for the tag. Keys are not case sensitive and must be unique for+    -- the index, FAQ, or data source.+    key :: Prelude.Text,+    -- | The value associated with the tag. The value may be an empty string but+    -- it can\'t be null.+    value :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Tag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'tag_key' - The key for the tag. Keys are not case sensitive and must be unique for+-- the index, FAQ, or data source.+--+-- 'value', 'tag_value' - The value associated with the tag. The value may be an empty string but+-- it can\'t be null.+newTag ::+  -- | 'key'+  Prelude.Text ->+  -- | 'value'+  Prelude.Text ->+  Tag+newTag pKey_ pValue_ =+  Tag' {key = pKey_, value = pValue_}++-- | The key for the tag. Keys are not case sensitive and must be unique for+-- the index, FAQ, or data source.+tag_key :: Lens.Lens' Tag Prelude.Text+tag_key = Lens.lens (\Tag' {key} -> key) (\s@Tag' {} a -> s {key = a} :: Tag)++-- | The value associated with the tag. The value may be an empty string but+-- it can\'t be null.+tag_value :: Lens.Lens' Tag Prelude.Text+tag_value = Lens.lens (\Tag' {value} -> value) (\s@Tag' {} a -> s {value = a} :: Tag)++instance Data.FromJSON Tag where+  parseJSON =+    Data.withObject+      "Tag"+      ( \x ->+          Tag'+            Prelude.<$> (x Data..: "Key")+            Prelude.<*> (x Data..: "Value")+      )++instance Prelude.Hashable Tag where+  hashWithSalt _salt Tag' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` value++instance Prelude.NFData Tag where+  rnf Tag' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Tag where+  toJSON Tag' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Key" Data..= key),+            Prelude.Just ("Value" Data..= value)+          ]+      )
+ gen/Amazonka/Kendra/Types/Template.hs view
@@ -0,0 +1,61 @@+{-# 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.Kendra.Types.Template+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.Template 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 template schema used for the data source, where templates schemas+-- are supported.+--+-- See+-- <https://docs.aws.amazon.com/kendra/latest/dg/ds-schemas.html Data source template schemas>.+--+-- /See:/ 'newTemplate' smart constructor.+data Template = Template'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Template' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newTemplate ::+  Template+newTemplate = Template'++instance Data.FromJSON Template where+  parseJSON =+    Data.withObject+      "Template"+      (\x -> Prelude.pure Template')++instance Prelude.Hashable Template where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance Prelude.NFData Template where+  rnf _ = ()++instance Data.ToJSON Template where+  toJSON = Prelude.const (Data.Object Prelude.mempty)
+ gen/Amazonka/Kendra/Types/TemplateConfiguration.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.Kendra.Types.TemplateConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.TemplateConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.Template+import qualified Amazonka.Prelude as Prelude++-- | Provides a template for the configuration information to connect to your+-- data source.+--+-- /See:/ 'newTemplateConfiguration' smart constructor.+data TemplateConfiguration = TemplateConfiguration'+  { -- | The template schema used for the data source, where templates schemas+    -- are supported.+    --+    -- See+    -- <https://docs.aws.amazon.com/kendra/latest/dg/ds-schemas.html Data source template schemas>.+    template :: Prelude.Maybe Template+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TemplateConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'template', 'templateConfiguration_template' - The template schema used for the data source, where templates schemas+-- are supported.+--+-- See+-- <https://docs.aws.amazon.com/kendra/latest/dg/ds-schemas.html Data source template schemas>.+newTemplateConfiguration ::+  TemplateConfiguration+newTemplateConfiguration =+  TemplateConfiguration' {template = Prelude.Nothing}++-- | The template schema used for the data source, where templates schemas+-- are supported.+--+-- See+-- <https://docs.aws.amazon.com/kendra/latest/dg/ds-schemas.html Data source template schemas>.+templateConfiguration_template :: Lens.Lens' TemplateConfiguration (Prelude.Maybe Template)+templateConfiguration_template = Lens.lens (\TemplateConfiguration' {template} -> template) (\s@TemplateConfiguration' {} a -> s {template = a} :: TemplateConfiguration)++instance Data.FromJSON TemplateConfiguration where+  parseJSON =+    Data.withObject+      "TemplateConfiguration"+      ( \x ->+          TemplateConfiguration'+            Prelude.<$> (x Data..:? "Template")+      )++instance Prelude.Hashable TemplateConfiguration where+  hashWithSalt _salt TemplateConfiguration' {..} =+    _salt `Prelude.hashWithSalt` template++instance Prelude.NFData TemplateConfiguration where+  rnf TemplateConfiguration' {..} = Prelude.rnf template++instance Data.ToJSON TemplateConfiguration where+  toJSON TemplateConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [("Template" Data..=) Prelude.<$> template]+      )
+ gen/Amazonka/Kendra/Types/TextDocumentStatistics.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.TextDocumentStatistics+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.TextDocumentStatistics 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 text documents indexed in an index.+--+-- /See:/ 'newTextDocumentStatistics' smart constructor.+data TextDocumentStatistics = TextDocumentStatistics'+  { -- | The number of text documents indexed.+    indexedTextDocumentsCount :: Prelude.Natural,+    -- | The total size, in bytes, of the indexed documents.+    indexedTextBytes :: Prelude.Natural+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TextDocumentStatistics' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'indexedTextDocumentsCount', 'textDocumentStatistics_indexedTextDocumentsCount' - The number of text documents indexed.+--+-- 'indexedTextBytes', 'textDocumentStatistics_indexedTextBytes' - The total size, in bytes, of the indexed documents.+newTextDocumentStatistics ::+  -- | 'indexedTextDocumentsCount'+  Prelude.Natural ->+  -- | 'indexedTextBytes'+  Prelude.Natural ->+  TextDocumentStatistics+newTextDocumentStatistics+  pIndexedTextDocumentsCount_+  pIndexedTextBytes_ =+    TextDocumentStatistics'+      { indexedTextDocumentsCount =+          pIndexedTextDocumentsCount_,+        indexedTextBytes = pIndexedTextBytes_+      }++-- | The number of text documents indexed.+textDocumentStatistics_indexedTextDocumentsCount :: Lens.Lens' TextDocumentStatistics Prelude.Natural+textDocumentStatistics_indexedTextDocumentsCount = Lens.lens (\TextDocumentStatistics' {indexedTextDocumentsCount} -> indexedTextDocumentsCount) (\s@TextDocumentStatistics' {} a -> s {indexedTextDocumentsCount = a} :: TextDocumentStatistics)++-- | The total size, in bytes, of the indexed documents.+textDocumentStatistics_indexedTextBytes :: Lens.Lens' TextDocumentStatistics Prelude.Natural+textDocumentStatistics_indexedTextBytes = Lens.lens (\TextDocumentStatistics' {indexedTextBytes} -> indexedTextBytes) (\s@TextDocumentStatistics' {} a -> s {indexedTextBytes = a} :: TextDocumentStatistics)++instance Data.FromJSON TextDocumentStatistics where+  parseJSON =+    Data.withObject+      "TextDocumentStatistics"+      ( \x ->+          TextDocumentStatistics'+            Prelude.<$> (x Data..: "IndexedTextDocumentsCount")+            Prelude.<*> (x Data..: "IndexedTextBytes")+      )++instance Prelude.Hashable TextDocumentStatistics where+  hashWithSalt _salt TextDocumentStatistics' {..} =+    _salt+      `Prelude.hashWithSalt` indexedTextDocumentsCount+      `Prelude.hashWithSalt` indexedTextBytes++instance Prelude.NFData TextDocumentStatistics where+  rnf TextDocumentStatistics' {..} =+    Prelude.rnf indexedTextDocumentsCount+      `Prelude.seq` Prelude.rnf indexedTextBytes
+ gen/Amazonka/Kendra/Types/TextWithHighlights.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.TextWithHighlights+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.TextWithHighlights where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.Highlight+import qualified Amazonka.Prelude as Prelude++-- | Provides text and information about where to highlight the text.+--+-- /See:/ 'newTextWithHighlights' smart constructor.+data TextWithHighlights = TextWithHighlights'+  { -- | The beginning and end of the text that should be highlighted.+    highlights :: Prelude.Maybe [Highlight],+    -- | The text to display to the user.+    text :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TextWithHighlights' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'highlights', 'textWithHighlights_highlights' - The beginning and end of the text that should be highlighted.+--+-- 'text', 'textWithHighlights_text' - The text to display to the user.+newTextWithHighlights ::+  TextWithHighlights+newTextWithHighlights =+  TextWithHighlights'+    { highlights = Prelude.Nothing,+      text = Prelude.Nothing+    }++-- | The beginning and end of the text that should be highlighted.+textWithHighlights_highlights :: Lens.Lens' TextWithHighlights (Prelude.Maybe [Highlight])+textWithHighlights_highlights = Lens.lens (\TextWithHighlights' {highlights} -> highlights) (\s@TextWithHighlights' {} a -> s {highlights = a} :: TextWithHighlights) Prelude.. Lens.mapping Lens.coerced++-- | The text to display to the user.+textWithHighlights_text :: Lens.Lens' TextWithHighlights (Prelude.Maybe Prelude.Text)+textWithHighlights_text = Lens.lens (\TextWithHighlights' {text} -> text) (\s@TextWithHighlights' {} a -> s {text = a} :: TextWithHighlights)++instance Data.FromJSON TextWithHighlights where+  parseJSON =+    Data.withObject+      "TextWithHighlights"+      ( \x ->+          TextWithHighlights'+            Prelude.<$> (x Data..:? "Highlights" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Text")+      )++instance Prelude.Hashable TextWithHighlights where+  hashWithSalt _salt TextWithHighlights' {..} =+    _salt+      `Prelude.hashWithSalt` highlights+      `Prelude.hashWithSalt` text++instance Prelude.NFData TextWithHighlights where+  rnf TextWithHighlights' {..} =+    Prelude.rnf highlights+      `Prelude.seq` Prelude.rnf text
+ gen/Amazonka/Kendra/Types/ThesaurusStatus.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.Types.ThesaurusStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ThesaurusStatus+  ( ThesaurusStatus+      ( ..,+        ThesaurusStatus_ACTIVE,+        ThesaurusStatus_ACTIVE_BUT_UPDATE_FAILED,+        ThesaurusStatus_CREATING,+        ThesaurusStatus_DELETING,+        ThesaurusStatus_FAILED,+        ThesaurusStatus_UPDATING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype ThesaurusStatus = ThesaurusStatus'+  { fromThesaurusStatus ::+      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 ThesaurusStatus_ACTIVE :: ThesaurusStatus+pattern ThesaurusStatus_ACTIVE = ThesaurusStatus' "ACTIVE"++pattern ThesaurusStatus_ACTIVE_BUT_UPDATE_FAILED :: ThesaurusStatus+pattern ThesaurusStatus_ACTIVE_BUT_UPDATE_FAILED = ThesaurusStatus' "ACTIVE_BUT_UPDATE_FAILED"++pattern ThesaurusStatus_CREATING :: ThesaurusStatus+pattern ThesaurusStatus_CREATING = ThesaurusStatus' "CREATING"++pattern ThesaurusStatus_DELETING :: ThesaurusStatus+pattern ThesaurusStatus_DELETING = ThesaurusStatus' "DELETING"++pattern ThesaurusStatus_FAILED :: ThesaurusStatus+pattern ThesaurusStatus_FAILED = ThesaurusStatus' "FAILED"++pattern ThesaurusStatus_UPDATING :: ThesaurusStatus+pattern ThesaurusStatus_UPDATING = ThesaurusStatus' "UPDATING"++{-# COMPLETE+  ThesaurusStatus_ACTIVE,+  ThesaurusStatus_ACTIVE_BUT_UPDATE_FAILED,+  ThesaurusStatus_CREATING,+  ThesaurusStatus_DELETING,+  ThesaurusStatus_FAILED,+  ThesaurusStatus_UPDATING,+  ThesaurusStatus'+  #-}
+ gen/Amazonka/Kendra/Types/ThesaurusSummary.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.Kendra.Types.ThesaurusSummary+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.ThesaurusSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.ThesaurusStatus+import qualified Amazonka.Prelude as Prelude++-- | An array of summary information for a thesaurus or multiple thesauri.+--+-- /See:/ 'newThesaurusSummary' smart constructor.+data ThesaurusSummary = ThesaurusSummary'+  { -- | The Unix datetime that the thesaurus was created.+    createdAt :: Prelude.Maybe Data.POSIX,+    -- | The identifier of the thesaurus.+    id :: Prelude.Maybe Prelude.Text,+    -- | The name of the thesaurus.+    name :: Prelude.Maybe Prelude.Text,+    -- | The status of the thesaurus.+    status :: Prelude.Maybe ThesaurusStatus,+    -- | The Unix datetime that the thesaurus was last updated.+    updatedAt :: Prelude.Maybe Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ThesaurusSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'createdAt', 'thesaurusSummary_createdAt' - The Unix datetime that the thesaurus was created.+--+-- 'id', 'thesaurusSummary_id' - The identifier of the thesaurus.+--+-- 'name', 'thesaurusSummary_name' - The name of the thesaurus.+--+-- 'status', 'thesaurusSummary_status' - The status of the thesaurus.+--+-- 'updatedAt', 'thesaurusSummary_updatedAt' - The Unix datetime that the thesaurus was last updated.+newThesaurusSummary ::+  ThesaurusSummary+newThesaurusSummary =+  ThesaurusSummary'+    { createdAt = Prelude.Nothing,+      id = Prelude.Nothing,+      name = Prelude.Nothing,+      status = Prelude.Nothing,+      updatedAt = Prelude.Nothing+    }++-- | The Unix datetime that the thesaurus was created.+thesaurusSummary_createdAt :: Lens.Lens' ThesaurusSummary (Prelude.Maybe Prelude.UTCTime)+thesaurusSummary_createdAt = Lens.lens (\ThesaurusSummary' {createdAt} -> createdAt) (\s@ThesaurusSummary' {} a -> s {createdAt = a} :: ThesaurusSummary) Prelude.. Lens.mapping Data._Time++-- | The identifier of the thesaurus.+thesaurusSummary_id :: Lens.Lens' ThesaurusSummary (Prelude.Maybe Prelude.Text)+thesaurusSummary_id = Lens.lens (\ThesaurusSummary' {id} -> id) (\s@ThesaurusSummary' {} a -> s {id = a} :: ThesaurusSummary)++-- | The name of the thesaurus.+thesaurusSummary_name :: Lens.Lens' ThesaurusSummary (Prelude.Maybe Prelude.Text)+thesaurusSummary_name = Lens.lens (\ThesaurusSummary' {name} -> name) (\s@ThesaurusSummary' {} a -> s {name = a} :: ThesaurusSummary)++-- | The status of the thesaurus.+thesaurusSummary_status :: Lens.Lens' ThesaurusSummary (Prelude.Maybe ThesaurusStatus)+thesaurusSummary_status = Lens.lens (\ThesaurusSummary' {status} -> status) (\s@ThesaurusSummary' {} a -> s {status = a} :: ThesaurusSummary)++-- | The Unix datetime that the thesaurus was last updated.+thesaurusSummary_updatedAt :: Lens.Lens' ThesaurusSummary (Prelude.Maybe Prelude.UTCTime)+thesaurusSummary_updatedAt = Lens.lens (\ThesaurusSummary' {updatedAt} -> updatedAt) (\s@ThesaurusSummary' {} a -> s {updatedAt = a} :: ThesaurusSummary) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON ThesaurusSummary where+  parseJSON =+    Data.withObject+      "ThesaurusSummary"+      ( \x ->+          ThesaurusSummary'+            Prelude.<$> (x Data..:? "CreatedAt")+            Prelude.<*> (x Data..:? "Id")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "UpdatedAt")+      )++instance Prelude.Hashable ThesaurusSummary where+  hashWithSalt _salt ThesaurusSummary' {..} =+    _salt+      `Prelude.hashWithSalt` createdAt+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` updatedAt++instance Prelude.NFData ThesaurusSummary where+  rnf ThesaurusSummary' {..} =+    Prelude.rnf createdAt+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf updatedAt
+ gen/Amazonka/Kendra/Types/TimeRange.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.Kendra.Types.TimeRange+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.TimeRange 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 range of time.+--+-- /See:/ 'newTimeRange' smart constructor.+data TimeRange = TimeRange'+  { -- | The UNIX datetime of the end of the time range.+    endTime :: Prelude.Maybe Data.POSIX,+    -- | The UNIX datetime of the beginning of the time range.+    startTime :: Prelude.Maybe Data.POSIX+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TimeRange' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endTime', 'timeRange_endTime' - The UNIX datetime of the end of the time range.+--+-- 'startTime', 'timeRange_startTime' - The UNIX datetime of the beginning of the time range.+newTimeRange ::+  TimeRange+newTimeRange =+  TimeRange'+    { endTime = Prelude.Nothing,+      startTime = Prelude.Nothing+    }++-- | The UNIX datetime of the end of the time range.+timeRange_endTime :: Lens.Lens' TimeRange (Prelude.Maybe Prelude.UTCTime)+timeRange_endTime = Lens.lens (\TimeRange' {endTime} -> endTime) (\s@TimeRange' {} a -> s {endTime = a} :: TimeRange) Prelude.. Lens.mapping Data._Time++-- | The UNIX datetime of the beginning of the time range.+timeRange_startTime :: Lens.Lens' TimeRange (Prelude.Maybe Prelude.UTCTime)+timeRange_startTime = Lens.lens (\TimeRange' {startTime} -> startTime) (\s@TimeRange' {} a -> s {startTime = a} :: TimeRange) Prelude.. Lens.mapping Data._Time++instance Data.FromJSON TimeRange where+  parseJSON =+    Data.withObject+      "TimeRange"+      ( \x ->+          TimeRange'+            Prelude.<$> (x Data..:? "EndTime")+            Prelude.<*> (x Data..:? "StartTime")+      )++instance Prelude.Hashable TimeRange where+  hashWithSalt _salt TimeRange' {..} =+    _salt+      `Prelude.hashWithSalt` endTime+      `Prelude.hashWithSalt` startTime++instance Prelude.NFData TimeRange where+  rnf TimeRange' {..} =+    Prelude.rnf endTime+      `Prelude.seq` Prelude.rnf startTime++instance Data.ToJSON TimeRange where+  toJSON TimeRange' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("EndTime" Data..=) Prelude.<$> endTime,+            ("StartTime" Data..=) Prelude.<$> startTime+          ]+      )
+ gen/Amazonka/Kendra/Types/Type.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.Kendra.Types.Type+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.Type+  ( Type+      ( ..,+        Type_ON_PREMISE,+        Type_SAAS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Type = Type' {fromType :: 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 Type_ON_PREMISE :: Type+pattern Type_ON_PREMISE = Type' "ON_PREMISE"++pattern Type_SAAS :: Type+pattern Type_SAAS = Type' "SAAS"++{-# COMPLETE+  Type_ON_PREMISE,+  Type_SAAS,+  Type'+  #-}
+ gen/Amazonka/Kendra/Types/Urls.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.Kendra.Types.Urls+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.Urls where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.SeedUrlConfiguration+import Amazonka.Kendra.Types.SiteMapsConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information of the URLs to crawl.+--+-- You can only crawl websites that use the secure communication protocol,+-- Hypertext Transfer Protocol Secure (HTTPS). If you receive an error when+-- crawling a website, it could be that the website is blocked from+-- crawling.+--+-- /When selecting websites to index, you must adhere to the+-- <https://aws.amazon.com/aup/ Amazon Acceptable Use Policy> and all other+-- Amazon terms. Remember that you must only use Amazon Kendra Web Crawler+-- to index your own webpages, or webpages that you have authorization to+-- index./+--+-- /See:/ 'newUrls' smart constructor.+data Urls = Urls'+  { -- | Configuration of the seed or starting point URLs of the websites you+    -- want to crawl.+    --+    -- You can choose to crawl only the website host names, or the website host+    -- names with subdomains, or the website host names with subdomains and+    -- other domains that the webpages link to.+    --+    -- You can list up to 100 seed URLs.+    seedUrlConfiguration :: Prelude.Maybe SeedUrlConfiguration,+    -- | Configuration of the sitemap URLs of the websites you want to crawl.+    --+    -- Only URLs belonging to the same website host names are crawled. You can+    -- list up to three sitemap URLs.+    siteMapsConfiguration :: Prelude.Maybe SiteMapsConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Urls' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'seedUrlConfiguration', 'urls_seedUrlConfiguration' - Configuration of the seed or starting point URLs of the websites you+-- want to crawl.+--+-- You can choose to crawl only the website host names, or the website host+-- names with subdomains, or the website host names with subdomains and+-- other domains that the webpages link to.+--+-- You can list up to 100 seed URLs.+--+-- 'siteMapsConfiguration', 'urls_siteMapsConfiguration' - Configuration of the sitemap URLs of the websites you want to crawl.+--+-- Only URLs belonging to the same website host names are crawled. You can+-- list up to three sitemap URLs.+newUrls ::+  Urls+newUrls =+  Urls'+    { seedUrlConfiguration = Prelude.Nothing,+      siteMapsConfiguration = Prelude.Nothing+    }++-- | Configuration of the seed or starting point URLs of the websites you+-- want to crawl.+--+-- You can choose to crawl only the website host names, or the website host+-- names with subdomains, or the website host names with subdomains and+-- other domains that the webpages link to.+--+-- You can list up to 100 seed URLs.+urls_seedUrlConfiguration :: Lens.Lens' Urls (Prelude.Maybe SeedUrlConfiguration)+urls_seedUrlConfiguration = Lens.lens (\Urls' {seedUrlConfiguration} -> seedUrlConfiguration) (\s@Urls' {} a -> s {seedUrlConfiguration = a} :: Urls)++-- | Configuration of the sitemap URLs of the websites you want to crawl.+--+-- Only URLs belonging to the same website host names are crawled. You can+-- list up to three sitemap URLs.+urls_siteMapsConfiguration :: Lens.Lens' Urls (Prelude.Maybe SiteMapsConfiguration)+urls_siteMapsConfiguration = Lens.lens (\Urls' {siteMapsConfiguration} -> siteMapsConfiguration) (\s@Urls' {} a -> s {siteMapsConfiguration = a} :: Urls)++instance Data.FromJSON Urls where+  parseJSON =+    Data.withObject+      "Urls"+      ( \x ->+          Urls'+            Prelude.<$> (x Data..:? "SeedUrlConfiguration")+            Prelude.<*> (x Data..:? "SiteMapsConfiguration")+      )++instance Prelude.Hashable Urls where+  hashWithSalt _salt Urls' {..} =+    _salt+      `Prelude.hashWithSalt` seedUrlConfiguration+      `Prelude.hashWithSalt` siteMapsConfiguration++instance Prelude.NFData Urls where+  rnf Urls' {..} =+    Prelude.rnf seedUrlConfiguration+      `Prelude.seq` Prelude.rnf siteMapsConfiguration++instance Data.ToJSON Urls where+  toJSON Urls' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("SeedUrlConfiguration" Data..=)+              Prelude.<$> seedUrlConfiguration,+            ("SiteMapsConfiguration" Data..=)+              Prelude.<$> siteMapsConfiguration+          ]+      )
+ gen/Amazonka/Kendra/Types/UserContext.hs view
@@ -0,0 +1,137 @@+{-# 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.Kendra.Types.UserContext+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.UserContext where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceGroup+import qualified Amazonka.Prelude as Prelude++-- | Provides information about the user context for an Amazon Kendra index.+--+-- User context filtering is a kind of personalized search with the benefit+-- of controlling access to documents. For example, not all teams that+-- search the company portal for information should access top-secret+-- company documents, nor are these documents relevant to all users. Only+-- specific users or groups of teams given access to top-secret documents+-- should see these documents in their search results.+--+-- You provide one of the following:+--+-- -   User token+--+-- -   User ID, the groups the user belongs to, and any data sources the+--     groups can access.+--+-- If you provide both, an exception is thrown.+--+-- /See:/ 'newUserContext' smart constructor.+data UserContext = UserContext'+  { -- | The list of data source groups you want to filter search results based+    -- on groups\' access to documents in that data source.+    dataSourceGroups :: Prelude.Maybe (Prelude.NonEmpty DataSourceGroup),+    -- | The list of groups you want to filter search results based on the+    -- groups\' access to documents.+    groups :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The user context token for filtering search results for a user. It must+    -- be a JWT or a JSON token.+    token :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the user you want to filter search results based on+    -- their access to documents.+    userId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UserContext' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataSourceGroups', 'userContext_dataSourceGroups' - The list of data source groups you want to filter search results based+-- on groups\' access to documents in that data source.+--+-- 'groups', 'userContext_groups' - The list of groups you want to filter search results based on the+-- groups\' access to documents.+--+-- 'token', 'userContext_token' - The user context token for filtering search results for a user. It must+-- be a JWT or a JSON token.+--+-- 'userId', 'userContext_userId' - The identifier of the user you want to filter search results based on+-- their access to documents.+newUserContext ::+  UserContext+newUserContext =+  UserContext'+    { dataSourceGroups = Prelude.Nothing,+      groups = Prelude.Nothing,+      token = Prelude.Nothing,+      userId = Prelude.Nothing+    }++-- | The list of data source groups you want to filter search results based+-- on groups\' access to documents in that data source.+userContext_dataSourceGroups :: Lens.Lens' UserContext (Prelude.Maybe (Prelude.NonEmpty DataSourceGroup))+userContext_dataSourceGroups = Lens.lens (\UserContext' {dataSourceGroups} -> dataSourceGroups) (\s@UserContext' {} a -> s {dataSourceGroups = a} :: UserContext) Prelude.. Lens.mapping Lens.coerced++-- | The list of groups you want to filter search results based on the+-- groups\' access to documents.+userContext_groups :: Lens.Lens' UserContext (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+userContext_groups = Lens.lens (\UserContext' {groups} -> groups) (\s@UserContext' {} a -> s {groups = a} :: UserContext) Prelude.. Lens.mapping Lens.coerced++-- | The user context token for filtering search results for a user. It must+-- be a JWT or a JSON token.+userContext_token :: Lens.Lens' UserContext (Prelude.Maybe Prelude.Text)+userContext_token = Lens.lens (\UserContext' {token} -> token) (\s@UserContext' {} a -> s {token = a} :: UserContext)++-- | The identifier of the user you want to filter search results based on+-- their access to documents.+userContext_userId :: Lens.Lens' UserContext (Prelude.Maybe Prelude.Text)+userContext_userId = Lens.lens (\UserContext' {userId} -> userId) (\s@UserContext' {} a -> s {userId = a} :: UserContext)++instance Prelude.Hashable UserContext where+  hashWithSalt _salt UserContext' {..} =+    _salt+      `Prelude.hashWithSalt` dataSourceGroups+      `Prelude.hashWithSalt` groups+      `Prelude.hashWithSalt` token+      `Prelude.hashWithSalt` userId++instance Prelude.NFData UserContext where+  rnf UserContext' {..} =+    Prelude.rnf dataSourceGroups+      `Prelude.seq` Prelude.rnf groups+      `Prelude.seq` Prelude.rnf token+      `Prelude.seq` Prelude.rnf userId++instance Data.ToJSON UserContext where+  toJSON UserContext' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataSourceGroups" Data..=)+              Prelude.<$> dataSourceGroups,+            ("Groups" Data..=) Prelude.<$> groups,+            ("Token" Data..=) Prelude.<$> token,+            ("UserId" Data..=) Prelude.<$> userId+          ]+      )
+ gen/Amazonka/Kendra/Types/UserContextPolicy.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.Kendra.Types.UserContextPolicy+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.UserContextPolicy+  ( UserContextPolicy+      ( ..,+        UserContextPolicy_ATTRIBUTE_FILTER,+        UserContextPolicy_USER_TOKEN+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype UserContextPolicy = UserContextPolicy'+  { fromUserContextPolicy ::+      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 UserContextPolicy_ATTRIBUTE_FILTER :: UserContextPolicy+pattern UserContextPolicy_ATTRIBUTE_FILTER = UserContextPolicy' "ATTRIBUTE_FILTER"++pattern UserContextPolicy_USER_TOKEN :: UserContextPolicy+pattern UserContextPolicy_USER_TOKEN = UserContextPolicy' "USER_TOKEN"++{-# COMPLETE+  UserContextPolicy_ATTRIBUTE_FILTER,+  UserContextPolicy_USER_TOKEN,+  UserContextPolicy'+  #-}
+ gen/Amazonka/Kendra/Types/UserGroupResolutionConfiguration.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.Kendra.Types.UserGroupResolutionConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.UserGroupResolutionConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.UserGroupResolutionMode+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to fetch access levels of groups+-- and users from an IAM Identity Center (successor to Single Sign-On)+-- identity source. This is useful for user context filtering, where search+-- results are filtered based on the user or their group access to+-- documents. You can also use the+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_PutPrincipalMapping.html PutPrincipalMapping>+-- API to map users to their groups so that you only need to provide the+-- user ID when you issue the query.+--+-- To set up an IAM Identity Center identity source in the console to use+-- with Amazon Kendra, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/getting-started-aws-sso.html Getting started with an IAM Identity Center identity source>.+-- You must also grant the required permissions to use IAM Identity Center+-- with Amazon Kendra. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html#iam-roles-aws-sso IAM roles for IAM Identity Center>.+--+-- Amazon Kendra currently does not support using+-- @UserGroupResolutionConfiguration@ with an Amazon Web Services+-- organization member account for your IAM Identity Center identify+-- source. You must create your index in the management account for the+-- organization in order to use @UserGroupResolutionConfiguration@.+--+-- /See:/ 'newUserGroupResolutionConfiguration' smart constructor.+data UserGroupResolutionConfiguration = UserGroupResolutionConfiguration'+  { -- | The identity store provider (mode) you want to use to fetch access+    -- levels of groups and users. IAM Identity Center (successor to Single+    -- Sign-On) is currently the only available mode. Your users and groups+    -- must exist in an IAM Identity Center identity source in order to use+    -- this mode.+    userGroupResolutionMode :: UserGroupResolutionMode+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UserGroupResolutionConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'userGroupResolutionMode', 'userGroupResolutionConfiguration_userGroupResolutionMode' - The identity store provider (mode) you want to use to fetch access+-- levels of groups and users. IAM Identity Center (successor to Single+-- Sign-On) is currently the only available mode. Your users and groups+-- must exist in an IAM Identity Center identity source in order to use+-- this mode.+newUserGroupResolutionConfiguration ::+  -- | 'userGroupResolutionMode'+  UserGroupResolutionMode ->+  UserGroupResolutionConfiguration+newUserGroupResolutionConfiguration+  pUserGroupResolutionMode_ =+    UserGroupResolutionConfiguration'+      { userGroupResolutionMode =+          pUserGroupResolutionMode_+      }++-- | The identity store provider (mode) you want to use to fetch access+-- levels of groups and users. IAM Identity Center (successor to Single+-- Sign-On) is currently the only available mode. Your users and groups+-- must exist in an IAM Identity Center identity source in order to use+-- this mode.+userGroupResolutionConfiguration_userGroupResolutionMode :: Lens.Lens' UserGroupResolutionConfiguration UserGroupResolutionMode+userGroupResolutionConfiguration_userGroupResolutionMode = Lens.lens (\UserGroupResolutionConfiguration' {userGroupResolutionMode} -> userGroupResolutionMode) (\s@UserGroupResolutionConfiguration' {} a -> s {userGroupResolutionMode = a} :: UserGroupResolutionConfiguration)++instance+  Data.FromJSON+    UserGroupResolutionConfiguration+  where+  parseJSON =+    Data.withObject+      "UserGroupResolutionConfiguration"+      ( \x ->+          UserGroupResolutionConfiguration'+            Prelude.<$> (x Data..: "UserGroupResolutionMode")+      )++instance+  Prelude.Hashable+    UserGroupResolutionConfiguration+  where+  hashWithSalt+    _salt+    UserGroupResolutionConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` userGroupResolutionMode++instance+  Prelude.NFData+    UserGroupResolutionConfiguration+  where+  rnf UserGroupResolutionConfiguration' {..} =+    Prelude.rnf userGroupResolutionMode++instance Data.ToJSON UserGroupResolutionConfiguration where+  toJSON UserGroupResolutionConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "UserGroupResolutionMode"+                  Data..= userGroupResolutionMode+              )+          ]+      )
+ gen/Amazonka/Kendra/Types/UserGroupResolutionMode.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.Kendra.Types.UserGroupResolutionMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.UserGroupResolutionMode+  ( UserGroupResolutionMode+      ( ..,+        UserGroupResolutionMode_AWS_SSO,+        UserGroupResolutionMode_NONE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype UserGroupResolutionMode = UserGroupResolutionMode'+  { fromUserGroupResolutionMode ::+      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 UserGroupResolutionMode_AWS_SSO :: UserGroupResolutionMode+pattern UserGroupResolutionMode_AWS_SSO = UserGroupResolutionMode' "AWS_SSO"++pattern UserGroupResolutionMode_NONE :: UserGroupResolutionMode+pattern UserGroupResolutionMode_NONE = UserGroupResolutionMode' "NONE"++{-# COMPLETE+  UserGroupResolutionMode_AWS_SSO,+  UserGroupResolutionMode_NONE,+  UserGroupResolutionMode'+  #-}
+ gen/Amazonka/Kendra/Types/UserIdentityConfiguration.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.Kendra.Types.UserIdentityConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.UserIdentityConfiguration 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 configuration information for the identifiers of your+-- users.+--+-- /See:/ 'newUserIdentityConfiguration' smart constructor.+data UserIdentityConfiguration = UserIdentityConfiguration'+  { -- | The IAM Identity Center field name that contains the identifiers of your+    -- users, such as their emails. This is used for+    -- <https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html user context filtering>+    -- and for granting access to your Amazon Kendra experience. You must set+    -- up IAM Identity Center with Amazon Kendra. You must include your users+    -- and groups in your Access Control List when you ingest documents into+    -- your index. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/getting-started-aws-sso.html Getting started with an IAM Identity Center identity source>.+    identityAttributeName :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UserIdentityConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'identityAttributeName', 'userIdentityConfiguration_identityAttributeName' - The IAM Identity Center field name that contains the identifiers of your+-- users, such as their emails. This is used for+-- <https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html user context filtering>+-- and for granting access to your Amazon Kendra experience. You must set+-- up IAM Identity Center with Amazon Kendra. You must include your users+-- and groups in your Access Control List when you ingest documents into+-- your index. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/getting-started-aws-sso.html Getting started with an IAM Identity Center identity source>.+newUserIdentityConfiguration ::+  UserIdentityConfiguration+newUserIdentityConfiguration =+  UserIdentityConfiguration'+    { identityAttributeName =+        Prelude.Nothing+    }++-- | The IAM Identity Center field name that contains the identifiers of your+-- users, such as their emails. This is used for+-- <https://docs.aws.amazon.com/kendra/latest/dg/user-context-filter.html user context filtering>+-- and for granting access to your Amazon Kendra experience. You must set+-- up IAM Identity Center with Amazon Kendra. You must include your users+-- and groups in your Access Control List when you ingest documents into+-- your index. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/getting-started-aws-sso.html Getting started with an IAM Identity Center identity source>.+userIdentityConfiguration_identityAttributeName :: Lens.Lens' UserIdentityConfiguration (Prelude.Maybe Prelude.Text)+userIdentityConfiguration_identityAttributeName = Lens.lens (\UserIdentityConfiguration' {identityAttributeName} -> identityAttributeName) (\s@UserIdentityConfiguration' {} a -> s {identityAttributeName = a} :: UserIdentityConfiguration)++instance Data.FromJSON UserIdentityConfiguration where+  parseJSON =+    Data.withObject+      "UserIdentityConfiguration"+      ( \x ->+          UserIdentityConfiguration'+            Prelude.<$> (x Data..:? "IdentityAttributeName")+      )++instance Prelude.Hashable UserIdentityConfiguration where+  hashWithSalt _salt UserIdentityConfiguration' {..} =+    _salt `Prelude.hashWithSalt` identityAttributeName++instance Prelude.NFData UserIdentityConfiguration where+  rnf UserIdentityConfiguration' {..} =+    Prelude.rnf identityAttributeName++instance Data.ToJSON UserIdentityConfiguration where+  toJSON UserIdentityConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("IdentityAttributeName" Data..=)+              Prelude.<$> identityAttributeName+          ]+      )
+ gen/Amazonka/Kendra/Types/UserTokenConfiguration.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.Kendra.Types.UserTokenConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.UserTokenConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.JsonTokenTypeConfiguration+import Amazonka.Kendra.Types.JwtTokenTypeConfiguration+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information for a token.+--+-- /See:/ 'newUserTokenConfiguration' smart constructor.+data UserTokenConfiguration = UserTokenConfiguration'+  { -- | Information about the JSON token type configuration.+    jsonTokenTypeConfiguration :: Prelude.Maybe JsonTokenTypeConfiguration,+    -- | Information about the JWT token type configuration.+    jwtTokenTypeConfiguration :: Prelude.Maybe JwtTokenTypeConfiguration+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UserTokenConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'jsonTokenTypeConfiguration', 'userTokenConfiguration_jsonTokenTypeConfiguration' - Information about the JSON token type configuration.+--+-- 'jwtTokenTypeConfiguration', 'userTokenConfiguration_jwtTokenTypeConfiguration' - Information about the JWT token type configuration.+newUserTokenConfiguration ::+  UserTokenConfiguration+newUserTokenConfiguration =+  UserTokenConfiguration'+    { jsonTokenTypeConfiguration =+        Prelude.Nothing,+      jwtTokenTypeConfiguration = Prelude.Nothing+    }++-- | Information about the JSON token type configuration.+userTokenConfiguration_jsonTokenTypeConfiguration :: Lens.Lens' UserTokenConfiguration (Prelude.Maybe JsonTokenTypeConfiguration)+userTokenConfiguration_jsonTokenTypeConfiguration = Lens.lens (\UserTokenConfiguration' {jsonTokenTypeConfiguration} -> jsonTokenTypeConfiguration) (\s@UserTokenConfiguration' {} a -> s {jsonTokenTypeConfiguration = a} :: UserTokenConfiguration)++-- | Information about the JWT token type configuration.+userTokenConfiguration_jwtTokenTypeConfiguration :: Lens.Lens' UserTokenConfiguration (Prelude.Maybe JwtTokenTypeConfiguration)+userTokenConfiguration_jwtTokenTypeConfiguration = Lens.lens (\UserTokenConfiguration' {jwtTokenTypeConfiguration} -> jwtTokenTypeConfiguration) (\s@UserTokenConfiguration' {} a -> s {jwtTokenTypeConfiguration = a} :: UserTokenConfiguration)++instance Data.FromJSON UserTokenConfiguration where+  parseJSON =+    Data.withObject+      "UserTokenConfiguration"+      ( \x ->+          UserTokenConfiguration'+            Prelude.<$> (x Data..:? "JsonTokenTypeConfiguration")+            Prelude.<*> (x Data..:? "JwtTokenTypeConfiguration")+      )++instance Prelude.Hashable UserTokenConfiguration where+  hashWithSalt _salt UserTokenConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` jsonTokenTypeConfiguration+      `Prelude.hashWithSalt` jwtTokenTypeConfiguration++instance Prelude.NFData UserTokenConfiguration where+  rnf UserTokenConfiguration' {..} =+    Prelude.rnf jsonTokenTypeConfiguration+      `Prelude.seq` Prelude.rnf jwtTokenTypeConfiguration++instance Data.ToJSON UserTokenConfiguration where+  toJSON UserTokenConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("JsonTokenTypeConfiguration" Data..=)+              Prelude.<$> jsonTokenTypeConfiguration,+            ("JwtTokenTypeConfiguration" Data..=)+              Prelude.<$> jwtTokenTypeConfiguration+          ]+      )
+ gen/Amazonka/Kendra/Types/Warning.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.Kendra.Types.Warning+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.Warning where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.WarningCode+import qualified Amazonka.Prelude as Prelude++-- | The warning code and message that explains a problem with a query.+--+-- /See:/ 'newWarning' smart constructor.+data Warning = Warning'+  { -- | The code used to show the type of warning for the query.+    code :: Prelude.Maybe WarningCode,+    -- | The message that explains the problem with the query.+    message :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Warning' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'code', 'warning_code' - The code used to show the type of warning for the query.+--+-- 'message', 'warning_message' - The message that explains the problem with the query.+newWarning ::+  Warning+newWarning =+  Warning'+    { code = Prelude.Nothing,+      message = Prelude.Nothing+    }++-- | The code used to show the type of warning for the query.+warning_code :: Lens.Lens' Warning (Prelude.Maybe WarningCode)+warning_code = Lens.lens (\Warning' {code} -> code) (\s@Warning' {} a -> s {code = a} :: Warning)++-- | The message that explains the problem with the query.+warning_message :: Lens.Lens' Warning (Prelude.Maybe Prelude.Text)+warning_message = Lens.lens (\Warning' {message} -> message) (\s@Warning' {} a -> s {message = a} :: Warning)++instance Data.FromJSON Warning where+  parseJSON =+    Data.withObject+      "Warning"+      ( \x ->+          Warning'+            Prelude.<$> (x Data..:? "Code")+            Prelude.<*> (x Data..:? "Message")+      )++instance Prelude.Hashable Warning where+  hashWithSalt _salt Warning' {..} =+    _salt+      `Prelude.hashWithSalt` code+      `Prelude.hashWithSalt` message++instance Prelude.NFData Warning where+  rnf Warning' {..} =+    Prelude.rnf code `Prelude.seq` Prelude.rnf message
+ gen/Amazonka/Kendra/Types/WarningCode.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.Kendra.Types.WarningCode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.WarningCode+  ( WarningCode+      ( ..,+        WarningCode_QUERY_LANGUAGE_INVALID_SYNTAX+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype WarningCode = WarningCode'+  { fromWarningCode ::+      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 WarningCode_QUERY_LANGUAGE_INVALID_SYNTAX :: WarningCode+pattern WarningCode_QUERY_LANGUAGE_INVALID_SYNTAX = WarningCode' "QUERY_LANGUAGE_INVALID_SYNTAX"++{-# COMPLETE+  WarningCode_QUERY_LANGUAGE_INVALID_SYNTAX,+  WarningCode'+  #-}
+ gen/Amazonka/Kendra/Types/WebCrawlerConfiguration.hs view
@@ -0,0 +1,402 @@+{-# 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.Kendra.Types.WebCrawlerConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.WebCrawlerConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.AuthenticationConfiguration+import Amazonka.Kendra.Types.ProxyConfiguration+import Amazonka.Kendra.Types.Urls+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information required for Amazon Kendra Web+-- Crawler.+--+-- /See:/ 'newWebCrawlerConfiguration' smart constructor.+data WebCrawlerConfiguration = WebCrawlerConfiguration'+  { -- | Configuration information required to connect to websites using+    -- authentication.+    --+    -- You can connect to websites using basic authentication of user name and+    -- password. You use a secret in+    -- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html Secrets Manager>+    -- to store your authentication credentials.+    --+    -- You must provide the website host name and port number. For example, the+    -- host name of https:\/\/a.example.com\/page1.html is \"a.example.com\"+    -- and the port is 443, the standard port for HTTPS.+    authenticationConfiguration :: Prelude.Maybe AuthenticationConfiguration,+    -- | Specifies the number of levels in a website that you want to crawl.+    --+    -- The first level begins from the website seed or starting point URL. For+    -- example, if a website has 3 levels – index level (i.e. seed in this+    -- example), sections level, and subsections level – and you are only+    -- interested in crawling information up to the sections level (i.e. levels+    -- 0-1), you can set your depth to 1.+    --+    -- The default crawl depth is set to 2.+    crawlDepth :: Prelude.Maybe Prelude.Natural,+    -- | The maximum size (in MB) of a webpage or attachment to crawl.+    --+    -- Files larger than this size (in MB) are skipped\/not crawled.+    --+    -- The default maximum size of a webpage or attachment is set to 50 MB.+    maxContentSizePerPageInMegaBytes :: Prelude.Maybe Prelude.Double,+    -- | The maximum number of URLs on a webpage to include when crawling a+    -- website. This number is per webpage.+    --+    -- As a website’s webpages are crawled, any URLs the webpages link to are+    -- also crawled. URLs on a webpage are crawled in order of appearance.+    --+    -- The default maximum links per page is 100.+    maxLinksPerPage :: Prelude.Maybe Prelude.Natural,+    -- | The maximum number of URLs crawled per website host per minute.+    --+    -- A minimum of one URL is required.+    --+    -- The default maximum number of URLs crawled per website host per minute+    -- is 300.+    maxUrlsPerMinuteCrawlRate :: Prelude.Maybe Prelude.Natural,+    -- | Configuration information required to connect to your internal websites+    -- via a web proxy.+    --+    -- You must provide the website host name and port number. For example, the+    -- host name of https:\/\/a.example.com\/page1.html is \"a.example.com\"+    -- and the port is 443, the standard port for HTTPS.+    --+    -- Web proxy credentials are optional and you can use them to connect to a+    -- web proxy server that requires basic authentication. To store web proxy+    -- credentials, you use a secret in+    -- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html Secrets Manager>.+    proxyConfiguration :: Prelude.Maybe ProxyConfiguration,+    -- | A list of regular expression patterns to exclude certain URLs to crawl.+    -- URLs that match the patterns are excluded from the index. URLs that+    -- don\'t match the patterns are included in the index. If a URL matches+    -- both an inclusion and exclusion pattern, the exclusion pattern takes+    -- precedence and the URL file isn\'t included in the index.+    urlExclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of regular expression patterns to include certain URLs to crawl.+    -- URLs that match the patterns are included in the index. URLs that don\'t+    -- match the patterns are excluded from the index. If a URL matches both an+    -- inclusion and exclusion pattern, the exclusion pattern takes precedence+    -- and the URL file isn\'t included in the index.+    urlInclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | Specifies the seed or starting point URLs of the websites or the sitemap+    -- URLs of the websites you want to crawl.+    --+    -- You can include website subdomains. You can list up to 100 seed URLs and+    -- up to three sitemap URLs.+    --+    -- You can only crawl websites that use the secure communication protocol,+    -- Hypertext Transfer Protocol Secure (HTTPS). If you receive an error when+    -- crawling a website, it could be that the website is blocked from+    -- crawling.+    --+    -- /When selecting websites to index, you must adhere to the+    -- <https://aws.amazon.com/aup/ Amazon Acceptable Use Policy> and all other+    -- Amazon terms. Remember that you must only use Amazon Kendra Web Crawler+    -- to index your own webpages, or webpages that you have authorization to+    -- index./+    urls :: Urls+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WebCrawlerConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'authenticationConfiguration', 'webCrawlerConfiguration_authenticationConfiguration' - Configuration information required to connect to websites using+-- authentication.+--+-- You can connect to websites using basic authentication of user name and+-- password. You use a secret in+-- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html Secrets Manager>+-- to store your authentication credentials.+--+-- You must provide the website host name and port number. For example, the+-- host name of https:\/\/a.example.com\/page1.html is \"a.example.com\"+-- and the port is 443, the standard port for HTTPS.+--+-- 'crawlDepth', 'webCrawlerConfiguration_crawlDepth' - Specifies the number of levels in a website that you want to crawl.+--+-- The first level begins from the website seed or starting point URL. For+-- example, if a website has 3 levels – index level (i.e. seed in this+-- example), sections level, and subsections level – and you are only+-- interested in crawling information up to the sections level (i.e. levels+-- 0-1), you can set your depth to 1.+--+-- The default crawl depth is set to 2.+--+-- 'maxContentSizePerPageInMegaBytes', 'webCrawlerConfiguration_maxContentSizePerPageInMegaBytes' - The maximum size (in MB) of a webpage or attachment to crawl.+--+-- Files larger than this size (in MB) are skipped\/not crawled.+--+-- The default maximum size of a webpage or attachment is set to 50 MB.+--+-- 'maxLinksPerPage', 'webCrawlerConfiguration_maxLinksPerPage' - The maximum number of URLs on a webpage to include when crawling a+-- website. This number is per webpage.+--+-- As a website’s webpages are crawled, any URLs the webpages link to are+-- also crawled. URLs on a webpage are crawled in order of appearance.+--+-- The default maximum links per page is 100.+--+-- 'maxUrlsPerMinuteCrawlRate', 'webCrawlerConfiguration_maxUrlsPerMinuteCrawlRate' - The maximum number of URLs crawled per website host per minute.+--+-- A minimum of one URL is required.+--+-- The default maximum number of URLs crawled per website host per minute+-- is 300.+--+-- 'proxyConfiguration', 'webCrawlerConfiguration_proxyConfiguration' - Configuration information required to connect to your internal websites+-- via a web proxy.+--+-- You must provide the website host name and port number. For example, the+-- host name of https:\/\/a.example.com\/page1.html is \"a.example.com\"+-- and the port is 443, the standard port for HTTPS.+--+-- Web proxy credentials are optional and you can use them to connect to a+-- web proxy server that requires basic authentication. To store web proxy+-- credentials, you use a secret in+-- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html Secrets Manager>.+--+-- 'urlExclusionPatterns', 'webCrawlerConfiguration_urlExclusionPatterns' - A list of regular expression patterns to exclude certain URLs to crawl.+-- URLs that match the patterns are excluded from the index. URLs that+-- don\'t match the patterns are included in the index. If a URL matches+-- both an inclusion and exclusion pattern, the exclusion pattern takes+-- precedence and the URL file isn\'t included in the index.+--+-- 'urlInclusionPatterns', 'webCrawlerConfiguration_urlInclusionPatterns' - A list of regular expression patterns to include certain URLs to crawl.+-- URLs that match the patterns are included in the index. URLs that don\'t+-- match the patterns are excluded from the index. If a URL matches both an+-- inclusion and exclusion pattern, the exclusion pattern takes precedence+-- and the URL file isn\'t included in the index.+--+-- 'urls', 'webCrawlerConfiguration_urls' - Specifies the seed or starting point URLs of the websites or the sitemap+-- URLs of the websites you want to crawl.+--+-- You can include website subdomains. You can list up to 100 seed URLs and+-- up to three sitemap URLs.+--+-- You can only crawl websites that use the secure communication protocol,+-- Hypertext Transfer Protocol Secure (HTTPS). If you receive an error when+-- crawling a website, it could be that the website is blocked from+-- crawling.+--+-- /When selecting websites to index, you must adhere to the+-- <https://aws.amazon.com/aup/ Amazon Acceptable Use Policy> and all other+-- Amazon terms. Remember that you must only use Amazon Kendra Web Crawler+-- to index your own webpages, or webpages that you have authorization to+-- index./+newWebCrawlerConfiguration ::+  -- | 'urls'+  Urls ->+  WebCrawlerConfiguration+newWebCrawlerConfiguration pUrls_ =+  WebCrawlerConfiguration'+    { authenticationConfiguration =+        Prelude.Nothing,+      crawlDepth = Prelude.Nothing,+      maxContentSizePerPageInMegaBytes = Prelude.Nothing,+      maxLinksPerPage = Prelude.Nothing,+      maxUrlsPerMinuteCrawlRate = Prelude.Nothing,+      proxyConfiguration = Prelude.Nothing,+      urlExclusionPatterns = Prelude.Nothing,+      urlInclusionPatterns = Prelude.Nothing,+      urls = pUrls_+    }++-- | Configuration information required to connect to websites using+-- authentication.+--+-- You can connect to websites using basic authentication of user name and+-- password. You use a secret in+-- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html Secrets Manager>+-- to store your authentication credentials.+--+-- You must provide the website host name and port number. For example, the+-- host name of https:\/\/a.example.com\/page1.html is \"a.example.com\"+-- and the port is 443, the standard port for HTTPS.+webCrawlerConfiguration_authenticationConfiguration :: Lens.Lens' WebCrawlerConfiguration (Prelude.Maybe AuthenticationConfiguration)+webCrawlerConfiguration_authenticationConfiguration = Lens.lens (\WebCrawlerConfiguration' {authenticationConfiguration} -> authenticationConfiguration) (\s@WebCrawlerConfiguration' {} a -> s {authenticationConfiguration = a} :: WebCrawlerConfiguration)++-- | Specifies the number of levels in a website that you want to crawl.+--+-- The first level begins from the website seed or starting point URL. For+-- example, if a website has 3 levels – index level (i.e. seed in this+-- example), sections level, and subsections level – and you are only+-- interested in crawling information up to the sections level (i.e. levels+-- 0-1), you can set your depth to 1.+--+-- The default crawl depth is set to 2.+webCrawlerConfiguration_crawlDepth :: Lens.Lens' WebCrawlerConfiguration (Prelude.Maybe Prelude.Natural)+webCrawlerConfiguration_crawlDepth = Lens.lens (\WebCrawlerConfiguration' {crawlDepth} -> crawlDepth) (\s@WebCrawlerConfiguration' {} a -> s {crawlDepth = a} :: WebCrawlerConfiguration)++-- | The maximum size (in MB) of a webpage or attachment to crawl.+--+-- Files larger than this size (in MB) are skipped\/not crawled.+--+-- The default maximum size of a webpage or attachment is set to 50 MB.+webCrawlerConfiguration_maxContentSizePerPageInMegaBytes :: Lens.Lens' WebCrawlerConfiguration (Prelude.Maybe Prelude.Double)+webCrawlerConfiguration_maxContentSizePerPageInMegaBytes = Lens.lens (\WebCrawlerConfiguration' {maxContentSizePerPageInMegaBytes} -> maxContentSizePerPageInMegaBytes) (\s@WebCrawlerConfiguration' {} a -> s {maxContentSizePerPageInMegaBytes = a} :: WebCrawlerConfiguration)++-- | The maximum number of URLs on a webpage to include when crawling a+-- website. This number is per webpage.+--+-- As a website’s webpages are crawled, any URLs the webpages link to are+-- also crawled. URLs on a webpage are crawled in order of appearance.+--+-- The default maximum links per page is 100.+webCrawlerConfiguration_maxLinksPerPage :: Lens.Lens' WebCrawlerConfiguration (Prelude.Maybe Prelude.Natural)+webCrawlerConfiguration_maxLinksPerPage = Lens.lens (\WebCrawlerConfiguration' {maxLinksPerPage} -> maxLinksPerPage) (\s@WebCrawlerConfiguration' {} a -> s {maxLinksPerPage = a} :: WebCrawlerConfiguration)++-- | The maximum number of URLs crawled per website host per minute.+--+-- A minimum of one URL is required.+--+-- The default maximum number of URLs crawled per website host per minute+-- is 300.+webCrawlerConfiguration_maxUrlsPerMinuteCrawlRate :: Lens.Lens' WebCrawlerConfiguration (Prelude.Maybe Prelude.Natural)+webCrawlerConfiguration_maxUrlsPerMinuteCrawlRate = Lens.lens (\WebCrawlerConfiguration' {maxUrlsPerMinuteCrawlRate} -> maxUrlsPerMinuteCrawlRate) (\s@WebCrawlerConfiguration' {} a -> s {maxUrlsPerMinuteCrawlRate = a} :: WebCrawlerConfiguration)++-- | Configuration information required to connect to your internal websites+-- via a web proxy.+--+-- You must provide the website host name and port number. For example, the+-- host name of https:\/\/a.example.com\/page1.html is \"a.example.com\"+-- and the port is 443, the standard port for HTTPS.+--+-- Web proxy credentials are optional and you can use them to connect to a+-- web proxy server that requires basic authentication. To store web proxy+-- credentials, you use a secret in+-- <https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html Secrets Manager>.+webCrawlerConfiguration_proxyConfiguration :: Lens.Lens' WebCrawlerConfiguration (Prelude.Maybe ProxyConfiguration)+webCrawlerConfiguration_proxyConfiguration = Lens.lens (\WebCrawlerConfiguration' {proxyConfiguration} -> proxyConfiguration) (\s@WebCrawlerConfiguration' {} a -> s {proxyConfiguration = a} :: WebCrawlerConfiguration)++-- | A list of regular expression patterns to exclude certain URLs to crawl.+-- URLs that match the patterns are excluded from the index. URLs that+-- don\'t match the patterns are included in the index. If a URL matches+-- both an inclusion and exclusion pattern, the exclusion pattern takes+-- precedence and the URL file isn\'t included in the index.+webCrawlerConfiguration_urlExclusionPatterns :: Lens.Lens' WebCrawlerConfiguration (Prelude.Maybe [Prelude.Text])+webCrawlerConfiguration_urlExclusionPatterns = Lens.lens (\WebCrawlerConfiguration' {urlExclusionPatterns} -> urlExclusionPatterns) (\s@WebCrawlerConfiguration' {} a -> s {urlExclusionPatterns = a} :: WebCrawlerConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to include certain URLs to crawl.+-- URLs that match the patterns are included in the index. URLs that don\'t+-- match the patterns are excluded from the index. If a URL matches both an+-- inclusion and exclusion pattern, the exclusion pattern takes precedence+-- and the URL file isn\'t included in the index.+webCrawlerConfiguration_urlInclusionPatterns :: Lens.Lens' WebCrawlerConfiguration (Prelude.Maybe [Prelude.Text])+webCrawlerConfiguration_urlInclusionPatterns = Lens.lens (\WebCrawlerConfiguration' {urlInclusionPatterns} -> urlInclusionPatterns) (\s@WebCrawlerConfiguration' {} a -> s {urlInclusionPatterns = a} :: WebCrawlerConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | Specifies the seed or starting point URLs of the websites or the sitemap+-- URLs of the websites you want to crawl.+--+-- You can include website subdomains. You can list up to 100 seed URLs and+-- up to three sitemap URLs.+--+-- You can only crawl websites that use the secure communication protocol,+-- Hypertext Transfer Protocol Secure (HTTPS). If you receive an error when+-- crawling a website, it could be that the website is blocked from+-- crawling.+--+-- /When selecting websites to index, you must adhere to the+-- <https://aws.amazon.com/aup/ Amazon Acceptable Use Policy> and all other+-- Amazon terms. Remember that you must only use Amazon Kendra Web Crawler+-- to index your own webpages, or webpages that you have authorization to+-- index./+webCrawlerConfiguration_urls :: Lens.Lens' WebCrawlerConfiguration Urls+webCrawlerConfiguration_urls = Lens.lens (\WebCrawlerConfiguration' {urls} -> urls) (\s@WebCrawlerConfiguration' {} a -> s {urls = a} :: WebCrawlerConfiguration)++instance Data.FromJSON WebCrawlerConfiguration where+  parseJSON =+    Data.withObject+      "WebCrawlerConfiguration"+      ( \x ->+          WebCrawlerConfiguration'+            Prelude.<$> (x Data..:? "AuthenticationConfiguration")+            Prelude.<*> (x Data..:? "CrawlDepth")+            Prelude.<*> (x Data..:? "MaxContentSizePerPageInMegaBytes")+            Prelude.<*> (x Data..:? "MaxLinksPerPage")+            Prelude.<*> (x Data..:? "MaxUrlsPerMinuteCrawlRate")+            Prelude.<*> (x Data..:? "ProxyConfiguration")+            Prelude.<*> ( x+                            Data..:? "UrlExclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "UrlInclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..: "Urls")+      )++instance Prelude.Hashable WebCrawlerConfiguration where+  hashWithSalt _salt WebCrawlerConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` authenticationConfiguration+      `Prelude.hashWithSalt` crawlDepth+      `Prelude.hashWithSalt` maxContentSizePerPageInMegaBytes+      `Prelude.hashWithSalt` maxLinksPerPage+      `Prelude.hashWithSalt` maxUrlsPerMinuteCrawlRate+      `Prelude.hashWithSalt` proxyConfiguration+      `Prelude.hashWithSalt` urlExclusionPatterns+      `Prelude.hashWithSalt` urlInclusionPatterns+      `Prelude.hashWithSalt` urls++instance Prelude.NFData WebCrawlerConfiguration where+  rnf WebCrawlerConfiguration' {..} =+    Prelude.rnf authenticationConfiguration+      `Prelude.seq` Prelude.rnf crawlDepth+      `Prelude.seq` Prelude.rnf maxContentSizePerPageInMegaBytes+      `Prelude.seq` Prelude.rnf maxLinksPerPage+      `Prelude.seq` Prelude.rnf maxUrlsPerMinuteCrawlRate+      `Prelude.seq` Prelude.rnf proxyConfiguration+      `Prelude.seq` Prelude.rnf urlExclusionPatterns+      `Prelude.seq` Prelude.rnf urlInclusionPatterns+      `Prelude.seq` Prelude.rnf urls++instance Data.ToJSON WebCrawlerConfiguration where+  toJSON WebCrawlerConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AuthenticationConfiguration" Data..=)+              Prelude.<$> authenticationConfiguration,+            ("CrawlDepth" Data..=) Prelude.<$> crawlDepth,+            ("MaxContentSizePerPageInMegaBytes" Data..=)+              Prelude.<$> maxContentSizePerPageInMegaBytes,+            ("MaxLinksPerPage" Data..=)+              Prelude.<$> maxLinksPerPage,+            ("MaxUrlsPerMinuteCrawlRate" Data..=)+              Prelude.<$> maxUrlsPerMinuteCrawlRate,+            ("ProxyConfiguration" Data..=)+              Prelude.<$> proxyConfiguration,+            ("UrlExclusionPatterns" Data..=)+              Prelude.<$> urlExclusionPatterns,+            ("UrlInclusionPatterns" Data..=)+              Prelude.<$> urlInclusionPatterns,+            Prelude.Just ("Urls" Data..= urls)+          ]+      )
+ gen/Amazonka/Kendra/Types/WebCrawlerMode.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.Kendra.Types.WebCrawlerMode+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.WebCrawlerMode+  ( WebCrawlerMode+      ( ..,+        WebCrawlerMode_EVERYTHING,+        WebCrawlerMode_HOST_ONLY,+        WebCrawlerMode_SUBDOMAINS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype WebCrawlerMode = WebCrawlerMode'+  { fromWebCrawlerMode ::+      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 WebCrawlerMode_EVERYTHING :: WebCrawlerMode+pattern WebCrawlerMode_EVERYTHING = WebCrawlerMode' "EVERYTHING"++pattern WebCrawlerMode_HOST_ONLY :: WebCrawlerMode+pattern WebCrawlerMode_HOST_ONLY = WebCrawlerMode' "HOST_ONLY"++pattern WebCrawlerMode_SUBDOMAINS :: WebCrawlerMode+pattern WebCrawlerMode_SUBDOMAINS = WebCrawlerMode' "SUBDOMAINS"++{-# COMPLETE+  WebCrawlerMode_EVERYTHING,+  WebCrawlerMode_HOST_ONLY,+  WebCrawlerMode_SUBDOMAINS,+  WebCrawlerMode'+  #-}
+ gen/Amazonka/Kendra/Types/WorkDocsConfiguration.hs view
@@ -0,0 +1,258 @@+{-# 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.Kendra.Types.WorkDocsConfiguration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Amazonka.Kendra.Types.WorkDocsConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping+import qualified Amazonka.Prelude as Prelude++-- | Provides the configuration information to connect to Amazon WorkDocs as+-- your data source.+--+-- Amazon WorkDocs connector is available in Oregon, North Virginia,+-- Sydney, Singapore and Ireland regions.+--+-- /See:/ 'newWorkDocsConfiguration' smart constructor.+data WorkDocsConfiguration = WorkDocsConfiguration'+  { -- | @TRUE@ to include comments on documents in your index. Including+    -- comments in your index means each comment is a document that can be+    -- searched on.+    --+    -- The default is set to @FALSE@.+    crawlComments :: Prelude.Maybe Prelude.Bool,+    -- | A list of regular expression patterns to exclude certain files in your+    -- Amazon WorkDocs site repository. Files that match the patterns are+    -- excluded from the index. Files that don’t match the patterns are+    -- included in the index. If a file matches both an inclusion and exclusion+    -- pattern, the exclusion pattern takes precedence and the file isn\'t+    -- included in the index.+    exclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | A list of @DataSourceToIndexFieldMapping@ objects that map Amazon+    -- WorkDocs data source attributes or field names to Amazon Kendra index+    -- field names. To create custom fields, use the @UpdateIndex@ API before+    -- you map to Amazon WorkDocs fields. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+    -- The Amazon WorkDocs data source field names must exist in your Amazon+    -- WorkDocs custom metadata.+    fieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),+    -- | A list of regular expression patterns to include certain files in your+    -- Amazon WorkDocs site repository. Files that match the patterns are+    -- included in the index. Files that don\'t match the patterns are excluded+    -- from the index. If a file matches both an inclusion and exclusion+    -- pattern, the exclusion pattern takes precedence and the file isn\'t+    -- included in the index.+    inclusionPatterns :: Prelude.Maybe [Prelude.Text],+    -- | @TRUE@ to use the Amazon WorkDocs change log to determine which+    -- documents require updating in the index. Depending on the change log\'s+    -- size, it may take longer for Amazon Kendra to use the change log than to+    -- scan all of your documents in Amazon WorkDocs.+    useChangeLog :: Prelude.Maybe Prelude.Bool,+    -- | The identifier of the directory corresponding to your Amazon WorkDocs+    -- site repository.+    --+    -- You can find the organization ID in the+    -- <https://console.aws.amazon.com/directoryservicev2/ Directory Service>+    -- by going to __Active Directory__, then __Directories__. Your Amazon+    -- WorkDocs site directory has an ID, which is the organization ID. You can+    -- also set up a new Amazon WorkDocs directory in the Directory Service+    -- console and enable a Amazon WorkDocs site for the directory in the+    -- Amazon WorkDocs console.+    organizationId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'WorkDocsConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'crawlComments', 'workDocsConfiguration_crawlComments' - @TRUE@ to include comments on documents in your index. Including+-- comments in your index means each comment is a document that can be+-- searched on.+--+-- The default is set to @FALSE@.+--+-- 'exclusionPatterns', 'workDocsConfiguration_exclusionPatterns' - A list of regular expression patterns to exclude certain files in your+-- Amazon WorkDocs site repository. Files that match the patterns are+-- excluded from the index. Files that don’t match the patterns are+-- included in the index. If a file matches both an inclusion and exclusion+-- pattern, the exclusion pattern takes precedence and the file isn\'t+-- included in the index.+--+-- 'fieldMappings', 'workDocsConfiguration_fieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map Amazon+-- WorkDocs data source attributes or field names to Amazon Kendra index+-- field names. To create custom fields, use the @UpdateIndex@ API before+-- you map to Amazon WorkDocs fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Amazon WorkDocs data source field names must exist in your Amazon+-- WorkDocs custom metadata.+--+-- 'inclusionPatterns', 'workDocsConfiguration_inclusionPatterns' - A list of regular expression patterns to include certain files in your+-- Amazon WorkDocs site repository. Files that match the patterns are+-- included in the index. Files that don\'t match the patterns are excluded+-- from the index. If a file matches both an inclusion and exclusion+-- pattern, the exclusion pattern takes precedence and the file isn\'t+-- included in the index.+--+-- 'useChangeLog', 'workDocsConfiguration_useChangeLog' - @TRUE@ to use the Amazon WorkDocs change log to determine which+-- documents require updating in the index. Depending on the change log\'s+-- size, it may take longer for Amazon Kendra to use the change log than to+-- scan all of your documents in Amazon WorkDocs.+--+-- 'organizationId', 'workDocsConfiguration_organizationId' - The identifier of the directory corresponding to your Amazon WorkDocs+-- site repository.+--+-- You can find the organization ID in the+-- <https://console.aws.amazon.com/directoryservicev2/ Directory Service>+-- by going to __Active Directory__, then __Directories__. Your Amazon+-- WorkDocs site directory has an ID, which is the organization ID. You can+-- also set up a new Amazon WorkDocs directory in the Directory Service+-- console and enable a Amazon WorkDocs site for the directory in the+-- Amazon WorkDocs console.+newWorkDocsConfiguration ::+  -- | 'organizationId'+  Prelude.Text ->+  WorkDocsConfiguration+newWorkDocsConfiguration pOrganizationId_ =+  WorkDocsConfiguration'+    { crawlComments =+        Prelude.Nothing,+      exclusionPatterns = Prelude.Nothing,+      fieldMappings = Prelude.Nothing,+      inclusionPatterns = Prelude.Nothing,+      useChangeLog = Prelude.Nothing,+      organizationId = pOrganizationId_+    }++-- | @TRUE@ to include comments on documents in your index. Including+-- comments in your index means each comment is a document that can be+-- searched on.+--+-- The default is set to @FALSE@.+workDocsConfiguration_crawlComments :: Lens.Lens' WorkDocsConfiguration (Prelude.Maybe Prelude.Bool)+workDocsConfiguration_crawlComments = Lens.lens (\WorkDocsConfiguration' {crawlComments} -> crawlComments) (\s@WorkDocsConfiguration' {} a -> s {crawlComments = a} :: WorkDocsConfiguration)++-- | A list of regular expression patterns to exclude certain files in your+-- Amazon WorkDocs site repository. Files that match the patterns are+-- excluded from the index. Files that don’t match the patterns are+-- included in the index. If a file matches both an inclusion and exclusion+-- pattern, the exclusion pattern takes precedence and the file isn\'t+-- included in the index.+workDocsConfiguration_exclusionPatterns :: Lens.Lens' WorkDocsConfiguration (Prelude.Maybe [Prelude.Text])+workDocsConfiguration_exclusionPatterns = Lens.lens (\WorkDocsConfiguration' {exclusionPatterns} -> exclusionPatterns) (\s@WorkDocsConfiguration' {} a -> s {exclusionPatterns = a} :: WorkDocsConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of @DataSourceToIndexFieldMapping@ objects that map Amazon+-- WorkDocs data source attributes or field names to Amazon Kendra index+-- field names. To create custom fields, use the @UpdateIndex@ API before+-- you map to Amazon WorkDocs fields. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.+-- The Amazon WorkDocs data source field names must exist in your Amazon+-- WorkDocs custom metadata.+workDocsConfiguration_fieldMappings :: Lens.Lens' WorkDocsConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))+workDocsConfiguration_fieldMappings = Lens.lens (\WorkDocsConfiguration' {fieldMappings} -> fieldMappings) (\s@WorkDocsConfiguration' {} a -> s {fieldMappings = a} :: WorkDocsConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A list of regular expression patterns to include certain files in your+-- Amazon WorkDocs site repository. Files that match the patterns are+-- included in the index. Files that don\'t match the patterns are excluded+-- from the index. If a file matches both an inclusion and exclusion+-- pattern, the exclusion pattern takes precedence and the file isn\'t+-- included in the index.+workDocsConfiguration_inclusionPatterns :: Lens.Lens' WorkDocsConfiguration (Prelude.Maybe [Prelude.Text])+workDocsConfiguration_inclusionPatterns = Lens.lens (\WorkDocsConfiguration' {inclusionPatterns} -> inclusionPatterns) (\s@WorkDocsConfiguration' {} a -> s {inclusionPatterns = a} :: WorkDocsConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | @TRUE@ to use the Amazon WorkDocs change log to determine which+-- documents require updating in the index. Depending on the change log\'s+-- size, it may take longer for Amazon Kendra to use the change log than to+-- scan all of your documents in Amazon WorkDocs.+workDocsConfiguration_useChangeLog :: Lens.Lens' WorkDocsConfiguration (Prelude.Maybe Prelude.Bool)+workDocsConfiguration_useChangeLog = Lens.lens (\WorkDocsConfiguration' {useChangeLog} -> useChangeLog) (\s@WorkDocsConfiguration' {} a -> s {useChangeLog = a} :: WorkDocsConfiguration)++-- | The identifier of the directory corresponding to your Amazon WorkDocs+-- site repository.+--+-- You can find the organization ID in the+-- <https://console.aws.amazon.com/directoryservicev2/ Directory Service>+-- by going to __Active Directory__, then __Directories__. Your Amazon+-- WorkDocs site directory has an ID, which is the organization ID. You can+-- also set up a new Amazon WorkDocs directory in the Directory Service+-- console and enable a Amazon WorkDocs site for the directory in the+-- Amazon WorkDocs console.+workDocsConfiguration_organizationId :: Lens.Lens' WorkDocsConfiguration Prelude.Text+workDocsConfiguration_organizationId = Lens.lens (\WorkDocsConfiguration' {organizationId} -> organizationId) (\s@WorkDocsConfiguration' {} a -> s {organizationId = a} :: WorkDocsConfiguration)++instance Data.FromJSON WorkDocsConfiguration where+  parseJSON =+    Data.withObject+      "WorkDocsConfiguration"+      ( \x ->+          WorkDocsConfiguration'+            Prelude.<$> (x Data..:? "CrawlComments")+            Prelude.<*> ( x+                            Data..:? "ExclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "FieldMappings")+            Prelude.<*> ( x+                            Data..:? "InclusionPatterns"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "UseChangeLog")+            Prelude.<*> (x Data..: "OrganizationId")+      )++instance Prelude.Hashable WorkDocsConfiguration where+  hashWithSalt _salt WorkDocsConfiguration' {..} =+    _salt+      `Prelude.hashWithSalt` crawlComments+      `Prelude.hashWithSalt` exclusionPatterns+      `Prelude.hashWithSalt` fieldMappings+      `Prelude.hashWithSalt` inclusionPatterns+      `Prelude.hashWithSalt` useChangeLog+      `Prelude.hashWithSalt` organizationId++instance Prelude.NFData WorkDocsConfiguration where+  rnf WorkDocsConfiguration' {..} =+    Prelude.rnf crawlComments+      `Prelude.seq` Prelude.rnf exclusionPatterns+      `Prelude.seq` Prelude.rnf fieldMappings+      `Prelude.seq` Prelude.rnf inclusionPatterns+      `Prelude.seq` Prelude.rnf useChangeLog+      `Prelude.seq` Prelude.rnf organizationId++instance Data.ToJSON WorkDocsConfiguration where+  toJSON WorkDocsConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CrawlComments" Data..=) Prelude.<$> crawlComments,+            ("ExclusionPatterns" Data..=)+              Prelude.<$> exclusionPatterns,+            ("FieldMappings" Data..=) Prelude.<$> fieldMappings,+            ("InclusionPatterns" Data..=)+              Prelude.<$> inclusionPatterns,+            ("UseChangeLog" Data..=) Prelude.<$> useChangeLog,+            Prelude.Just+              ("OrganizationId" Data..= organizationId)+          ]+      )
+ gen/Amazonka/Kendra/UntagResource.hs view
@@ -0,0 +1,177 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.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 a tag from an index, FAQ, or a data source.+module Amazonka.Kendra.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.Kendra.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 index, FAQ, or data source to+    -- remove the tag from.+    resourceARN :: Prelude.Text,+    -- | A list of tag keys to remove from the index, FAQ, or data source. 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 index, FAQ, or data source to+-- remove the tag from.+--+-- 'tagKeys', 'untagResource_tagKeys' - A list of tag keys to remove from the index, FAQ, or data source. 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 index, FAQ, or data source to+-- remove the tag 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 index, FAQ, or data source. 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.postJSON (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+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.UntagResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UntagResource where+  toJSON UntagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("ResourceARN" Data..= resourceARN),+            Prelude.Just ("TagKeys" Data..= tagKeys)+          ]+      )++instance Data.ToPath UntagResource where+  toPath = Prelude.const "/"++instance Data.ToQuery UntagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /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/Kendra/UpdateAccessControlConfiguration.hs view
@@ -0,0 +1,295 @@+{-# 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.Kendra.UpdateAccessControlConfiguration+-- 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 access control configuration for your documents in an index.+-- This includes user and group access information for your documents. This+-- is useful for user context filtering, where search results are filtered+-- based on the user or their group access to documents.+--+-- You can update an access control configuration you created without+-- indexing all of your documents again. For example, your index contains+-- top-secret company documents that only certain employees or users should+-- access. You created an \'allow\' access control configuration for one+-- user who recently joined the \'top-secret\' team, switching from a team+-- with \'deny\' access to top-secret documents. However, the user suddenly+-- returns to their previous team and should no longer have access to top+-- secret documents. You can update the access control configuration to+-- re-configure access control for your documents as circumstances change.+--+-- You call the+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_BatchPutDocument.html BatchPutDocument>+-- API to apply the updated access control configuration, with the+-- @AccessControlConfigurationId@ included in the+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_Document.html Document>+-- object. If you use an S3 bucket as a data source, you synchronize your+-- data source to apply the @AccessControlConfigurationId@ in the+-- @.metadata.json@ file. Amazon Kendra currently only supports access+-- control configuration for S3 data sources and documents indexed using+-- the @BatchPutDocument@ API.+module Amazonka.Kendra.UpdateAccessControlConfiguration+  ( -- * Creating a Request+    UpdateAccessControlConfiguration (..),+    newUpdateAccessControlConfiguration,++    -- * Request Lenses+    updateAccessControlConfiguration_accessControlList,+    updateAccessControlConfiguration_description,+    updateAccessControlConfiguration_hierarchicalAccessControlList,+    updateAccessControlConfiguration_name,+    updateAccessControlConfiguration_indexId,+    updateAccessControlConfiguration_id,++    -- * Destructuring the Response+    UpdateAccessControlConfigurationResponse (..),+    newUpdateAccessControlConfigurationResponse,++    -- * Response Lenses+    updateAccessControlConfigurationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateAccessControlConfiguration' smart constructor.+data UpdateAccessControlConfiguration = UpdateAccessControlConfiguration'+  { -- | Information you want to update on principals (users and\/or groups) and+    -- which documents they should have access to. This is useful for user+    -- context filtering, where search results are filtered based on the user+    -- or their group access to documents.+    accessControlList :: Prelude.Maybe [Principal],+    -- | A new description for the access control configuration.+    description :: Prelude.Maybe Prelude.Text,+    -- | The updated list of+    -- <https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html principal>+    -- lists that define the hierarchy for which documents users should have+    -- access to.+    hierarchicalAccessControlList :: Prelude.Maybe (Prelude.NonEmpty HierarchicalPrincipal),+    -- | A new name for the access control configuration.+    name :: Prelude.Maybe Prelude.Text,+    -- | The identifier of the index for an access control configuration.+    indexId :: Prelude.Text,+    -- | The identifier of the access control configuration you want to update.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAccessControlConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accessControlList', 'updateAccessControlConfiguration_accessControlList' - Information you want to update on principals (users and\/or groups) and+-- which documents they should have access to. This is useful for user+-- context filtering, where search results are filtered based on the user+-- or their group access to documents.+--+-- 'description', 'updateAccessControlConfiguration_description' - A new description for the access control configuration.+--+-- 'hierarchicalAccessControlList', 'updateAccessControlConfiguration_hierarchicalAccessControlList' - The updated list of+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html principal>+-- lists that define the hierarchy for which documents users should have+-- access to.+--+-- 'name', 'updateAccessControlConfiguration_name' - A new name for the access control configuration.+--+-- 'indexId', 'updateAccessControlConfiguration_indexId' - The identifier of the index for an access control configuration.+--+-- 'id', 'updateAccessControlConfiguration_id' - The identifier of the access control configuration you want to update.+newUpdateAccessControlConfiguration ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  UpdateAccessControlConfiguration+newUpdateAccessControlConfiguration pIndexId_ pId_ =+  UpdateAccessControlConfiguration'+    { accessControlList =+        Prelude.Nothing,+      description = Prelude.Nothing,+      hierarchicalAccessControlList =+        Prelude.Nothing,+      name = Prelude.Nothing,+      indexId = pIndexId_,+      id = pId_+    }++-- | Information you want to update on principals (users and\/or groups) and+-- which documents they should have access to. This is useful for user+-- context filtering, where search results are filtered based on the user+-- or their group access to documents.+updateAccessControlConfiguration_accessControlList :: Lens.Lens' UpdateAccessControlConfiguration (Prelude.Maybe [Principal])+updateAccessControlConfiguration_accessControlList = Lens.lens (\UpdateAccessControlConfiguration' {accessControlList} -> accessControlList) (\s@UpdateAccessControlConfiguration' {} a -> s {accessControlList = a} :: UpdateAccessControlConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A new description for the access control configuration.+updateAccessControlConfiguration_description :: Lens.Lens' UpdateAccessControlConfiguration (Prelude.Maybe Prelude.Text)+updateAccessControlConfiguration_description = Lens.lens (\UpdateAccessControlConfiguration' {description} -> description) (\s@UpdateAccessControlConfiguration' {} a -> s {description = a} :: UpdateAccessControlConfiguration)++-- | The updated list of+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_Principal.html principal>+-- lists that define the hierarchy for which documents users should have+-- access to.+updateAccessControlConfiguration_hierarchicalAccessControlList :: Lens.Lens' UpdateAccessControlConfiguration (Prelude.Maybe (Prelude.NonEmpty HierarchicalPrincipal))+updateAccessControlConfiguration_hierarchicalAccessControlList = Lens.lens (\UpdateAccessControlConfiguration' {hierarchicalAccessControlList} -> hierarchicalAccessControlList) (\s@UpdateAccessControlConfiguration' {} a -> s {hierarchicalAccessControlList = a} :: UpdateAccessControlConfiguration) Prelude.. Lens.mapping Lens.coerced++-- | A new name for the access control configuration.+updateAccessControlConfiguration_name :: Lens.Lens' UpdateAccessControlConfiguration (Prelude.Maybe Prelude.Text)+updateAccessControlConfiguration_name = Lens.lens (\UpdateAccessControlConfiguration' {name} -> name) (\s@UpdateAccessControlConfiguration' {} a -> s {name = a} :: UpdateAccessControlConfiguration)++-- | The identifier of the index for an access control configuration.+updateAccessControlConfiguration_indexId :: Lens.Lens' UpdateAccessControlConfiguration Prelude.Text+updateAccessControlConfiguration_indexId = Lens.lens (\UpdateAccessControlConfiguration' {indexId} -> indexId) (\s@UpdateAccessControlConfiguration' {} a -> s {indexId = a} :: UpdateAccessControlConfiguration)++-- | The identifier of the access control configuration you want to update.+updateAccessControlConfiguration_id :: Lens.Lens' UpdateAccessControlConfiguration Prelude.Text+updateAccessControlConfiguration_id = Lens.lens (\UpdateAccessControlConfiguration' {id} -> id) (\s@UpdateAccessControlConfiguration' {} a -> s {id = a} :: UpdateAccessControlConfiguration)++instance+  Core.AWSRequest+    UpdateAccessControlConfiguration+  where+  type+    AWSResponse UpdateAccessControlConfiguration =+      UpdateAccessControlConfigurationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UpdateAccessControlConfigurationResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    UpdateAccessControlConfiguration+  where+  hashWithSalt+    _salt+    UpdateAccessControlConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` accessControlList+        `Prelude.hashWithSalt` description+        `Prelude.hashWithSalt` hierarchicalAccessControlList+        `Prelude.hashWithSalt` name+        `Prelude.hashWithSalt` indexId+        `Prelude.hashWithSalt` id++instance+  Prelude.NFData+    UpdateAccessControlConfiguration+  where+  rnf UpdateAccessControlConfiguration' {..} =+    Prelude.rnf accessControlList+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf hierarchicalAccessControlList+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf id++instance+  Data.ToHeaders+    UpdateAccessControlConfiguration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.UpdateAccessControlConfiguration" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateAccessControlConfiguration where+  toJSON UpdateAccessControlConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AccessControlList" Data..=)+              Prelude.<$> accessControlList,+            ("Description" Data..=) Prelude.<$> description,+            ("HierarchicalAccessControlList" Data..=)+              Prelude.<$> hierarchicalAccessControlList,+            ("Name" Data..=) Prelude.<$> name,+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("Id" Data..= id)+          ]+      )++instance Data.ToPath UpdateAccessControlConfiguration where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    UpdateAccessControlConfiguration+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateAccessControlConfigurationResponse' smart constructor.+data UpdateAccessControlConfigurationResponse = UpdateAccessControlConfigurationResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAccessControlConfigurationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateAccessControlConfigurationResponse_httpStatus' - The response's http status code.+newUpdateAccessControlConfigurationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateAccessControlConfigurationResponse+newUpdateAccessControlConfigurationResponse+  pHttpStatus_ =+    UpdateAccessControlConfigurationResponse'+      { httpStatus =+          pHttpStatus_+      }++-- | The response's http status code.+updateAccessControlConfigurationResponse_httpStatus :: Lens.Lens' UpdateAccessControlConfigurationResponse Prelude.Int+updateAccessControlConfigurationResponse_httpStatus = Lens.lens (\UpdateAccessControlConfigurationResponse' {httpStatus} -> httpStatus) (\s@UpdateAccessControlConfigurationResponse' {} a -> s {httpStatus = a} :: UpdateAccessControlConfigurationResponse)++instance+  Prelude.NFData+    UpdateAccessControlConfigurationResponse+  where+  rnf UpdateAccessControlConfigurationResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/Kendra/UpdateDataSource.hs view
@@ -0,0 +1,305 @@+{-# 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.Kendra.UpdateDataSource+-- 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 Amazon Kendra data source connector.+module Amazonka.Kendra.UpdateDataSource+  ( -- * Creating a Request+    UpdateDataSource (..),+    newUpdateDataSource,++    -- * Request Lenses+    updateDataSource_configuration,+    updateDataSource_customDocumentEnrichmentConfiguration,+    updateDataSource_description,+    updateDataSource_languageCode,+    updateDataSource_name,+    updateDataSource_roleArn,+    updateDataSource_schedule,+    updateDataSource_vpcConfiguration,+    updateDataSource_id,+    updateDataSource_indexId,++    -- * Destructuring the Response+    UpdateDataSourceResponse (..),+    newUpdateDataSourceResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateDataSource' smart constructor.+data UpdateDataSource = UpdateDataSource'+  { -- | Configuration information you want to update for the data source+    -- connector.+    configuration :: Prelude.Maybe DataSourceConfiguration,+    -- | Configuration information you want to update for altering document+    -- metadata and content during the document ingestion process.+    --+    -- For more information on how to create, modify and delete document+    -- metadata, or make other content alterations when you ingest documents+    -- into Amazon Kendra, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html Customizing document metadata during the ingestion process>.+    customDocumentEnrichmentConfiguration :: Prelude.Maybe CustomDocumentEnrichmentConfiguration,+    -- | A new description for the data source connector.+    description :: Prelude.Maybe Prelude.Text,+    -- | The code for a language you want to update for the data source+    -- connector. This allows you to support a language for all documents when+    -- updating the data source. English is supported by default. For more+    -- information on supported languages, including their codes, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+    languageCode :: Prelude.Maybe Prelude.Text,+    -- | A new name for the data source connector.+    name :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of a role with permission to access the+    -- data source and required resources. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The sync schedule you want to update for the data source connector.+    schedule :: Prelude.Maybe Prelude.Text,+    -- | Configuration information for an Amazon Virtual Private Cloud to connect+    -- to your data source. For more information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+    vpcConfiguration :: Prelude.Maybe DataSourceVpcConfiguration,+    -- | The identifier of the data source connector you want to update.+    id :: Prelude.Text,+    -- | The identifier of the index used with the data source connector.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDataSource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configuration', 'updateDataSource_configuration' - Configuration information you want to update for the data source+-- connector.+--+-- 'customDocumentEnrichmentConfiguration', 'updateDataSource_customDocumentEnrichmentConfiguration' - Configuration information you want to update for altering document+-- metadata and content during the document ingestion process.+--+-- For more information on how to create, modify and delete document+-- metadata, or make other content alterations when you ingest documents+-- into Amazon Kendra, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html Customizing document metadata during the ingestion process>.+--+-- 'description', 'updateDataSource_description' - A new description for the data source connector.+--+-- 'languageCode', 'updateDataSource_languageCode' - The code for a language you want to update for the data source+-- connector. This allows you to support a language for all documents when+-- updating the data source. English is supported by default. For more+-- information on supported languages, including their codes, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+--+-- 'name', 'updateDataSource_name' - A new name for the data source connector.+--+-- 'roleArn', 'updateDataSource_roleArn' - The Amazon Resource Name (ARN) of a role with permission to access the+-- data source and required resources. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+--+-- 'schedule', 'updateDataSource_schedule' - The sync schedule you want to update for the data source connector.+--+-- 'vpcConfiguration', 'updateDataSource_vpcConfiguration' - Configuration information for an Amazon Virtual Private Cloud to connect+-- to your data source. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+--+-- 'id', 'updateDataSource_id' - The identifier of the data source connector you want to update.+--+-- 'indexId', 'updateDataSource_indexId' - The identifier of the index used with the data source connector.+newUpdateDataSource ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  UpdateDataSource+newUpdateDataSource pId_ pIndexId_ =+  UpdateDataSource'+    { configuration = Prelude.Nothing,+      customDocumentEnrichmentConfiguration =+        Prelude.Nothing,+      description = Prelude.Nothing,+      languageCode = Prelude.Nothing,+      name = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      schedule = Prelude.Nothing,+      vpcConfiguration = Prelude.Nothing,+      id = pId_,+      indexId = pIndexId_+    }++-- | Configuration information you want to update for the data source+-- connector.+updateDataSource_configuration :: Lens.Lens' UpdateDataSource (Prelude.Maybe DataSourceConfiguration)+updateDataSource_configuration = Lens.lens (\UpdateDataSource' {configuration} -> configuration) (\s@UpdateDataSource' {} a -> s {configuration = a} :: UpdateDataSource)++-- | Configuration information you want to update for altering document+-- metadata and content during the document ingestion process.+--+-- For more information on how to create, modify and delete document+-- metadata, or make other content alterations when you ingest documents+-- into Amazon Kendra, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/custom-document-enrichment.html Customizing document metadata during the ingestion process>.+updateDataSource_customDocumentEnrichmentConfiguration :: Lens.Lens' UpdateDataSource (Prelude.Maybe CustomDocumentEnrichmentConfiguration)+updateDataSource_customDocumentEnrichmentConfiguration = Lens.lens (\UpdateDataSource' {customDocumentEnrichmentConfiguration} -> customDocumentEnrichmentConfiguration) (\s@UpdateDataSource' {} a -> s {customDocumentEnrichmentConfiguration = a} :: UpdateDataSource)++-- | A new description for the data source connector.+updateDataSource_description :: Lens.Lens' UpdateDataSource (Prelude.Maybe Prelude.Text)+updateDataSource_description = Lens.lens (\UpdateDataSource' {description} -> description) (\s@UpdateDataSource' {} a -> s {description = a} :: UpdateDataSource)++-- | The code for a language you want to update for the data source+-- connector. This allows you to support a language for all documents when+-- updating the data source. English is supported by default. For more+-- information on supported languages, including their codes, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/in-adding-languages.html Adding documents in languages other than English>.+updateDataSource_languageCode :: Lens.Lens' UpdateDataSource (Prelude.Maybe Prelude.Text)+updateDataSource_languageCode = Lens.lens (\UpdateDataSource' {languageCode} -> languageCode) (\s@UpdateDataSource' {} a -> s {languageCode = a} :: UpdateDataSource)++-- | A new name for the data source connector.+updateDataSource_name :: Lens.Lens' UpdateDataSource (Prelude.Maybe Prelude.Text)+updateDataSource_name = Lens.lens (\UpdateDataSource' {name} -> name) (\s@UpdateDataSource' {} a -> s {name = a} :: UpdateDataSource)++-- | The Amazon Resource Name (ARN) of a role with permission to access the+-- data source and required resources. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+updateDataSource_roleArn :: Lens.Lens' UpdateDataSource (Prelude.Maybe Prelude.Text)+updateDataSource_roleArn = Lens.lens (\UpdateDataSource' {roleArn} -> roleArn) (\s@UpdateDataSource' {} a -> s {roleArn = a} :: UpdateDataSource)++-- | The sync schedule you want to update for the data source connector.+updateDataSource_schedule :: Lens.Lens' UpdateDataSource (Prelude.Maybe Prelude.Text)+updateDataSource_schedule = Lens.lens (\UpdateDataSource' {schedule} -> schedule) (\s@UpdateDataSource' {} a -> s {schedule = a} :: UpdateDataSource)++-- | Configuration information for an Amazon Virtual Private Cloud to connect+-- to your data source. For more information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.+updateDataSource_vpcConfiguration :: Lens.Lens' UpdateDataSource (Prelude.Maybe DataSourceVpcConfiguration)+updateDataSource_vpcConfiguration = Lens.lens (\UpdateDataSource' {vpcConfiguration} -> vpcConfiguration) (\s@UpdateDataSource' {} a -> s {vpcConfiguration = a} :: UpdateDataSource)++-- | The identifier of the data source connector you want to update.+updateDataSource_id :: Lens.Lens' UpdateDataSource Prelude.Text+updateDataSource_id = Lens.lens (\UpdateDataSource' {id} -> id) (\s@UpdateDataSource' {} a -> s {id = a} :: UpdateDataSource)++-- | The identifier of the index used with the data source connector.+updateDataSource_indexId :: Lens.Lens' UpdateDataSource Prelude.Text+updateDataSource_indexId = Lens.lens (\UpdateDataSource' {indexId} -> indexId) (\s@UpdateDataSource' {} a -> s {indexId = a} :: UpdateDataSource)++instance Core.AWSRequest UpdateDataSource where+  type+    AWSResponse UpdateDataSource =+      UpdateDataSourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull UpdateDataSourceResponse'++instance Prelude.Hashable UpdateDataSource where+  hashWithSalt _salt UpdateDataSource' {..} =+    _salt+      `Prelude.hashWithSalt` configuration+      `Prelude.hashWithSalt` customDocumentEnrichmentConfiguration+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` languageCode+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` schedule+      `Prelude.hashWithSalt` vpcConfiguration+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData UpdateDataSource where+  rnf UpdateDataSource' {..} =+    Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf customDocumentEnrichmentConfiguration+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf languageCode+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf schedule+      `Prelude.seq` Prelude.rnf vpcConfiguration+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders UpdateDataSource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.UpdateDataSource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateDataSource where+  toJSON UpdateDataSource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Configuration" Data..=) Prelude.<$> configuration,+            ("CustomDocumentEnrichmentConfiguration" Data..=)+              Prelude.<$> customDocumentEnrichmentConfiguration,+            ("Description" Data..=) Prelude.<$> description,+            ("LanguageCode" Data..=) Prelude.<$> languageCode,+            ("Name" Data..=) Prelude.<$> name,+            ("RoleArn" Data..=) Prelude.<$> roleArn,+            ("Schedule" Data..=) Prelude.<$> schedule,+            ("VpcConfiguration" Data..=)+              Prelude.<$> vpcConfiguration,+            Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath UpdateDataSource where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateDataSource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateDataSourceResponse' smart constructor.+data UpdateDataSourceResponse = UpdateDataSourceResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateDataSourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newUpdateDataSourceResponse ::+  UpdateDataSourceResponse+newUpdateDataSourceResponse =+  UpdateDataSourceResponse'++instance Prelude.NFData UpdateDataSourceResponse where+  rnf _ = ()
+ gen/Amazonka/Kendra/UpdateExperience.hs view
@@ -0,0 +1,222 @@+{-# 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.Kendra.UpdateExperience+-- 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 your Amazon Kendra experience such as a search application. For+-- more information on creating a search application experience, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/deploying-search-experience-no-code.html Building a search experience with no code>.+module Amazonka.Kendra.UpdateExperience+  ( -- * Creating a Request+    UpdateExperience (..),+    newUpdateExperience,++    -- * Request Lenses+    updateExperience_configuration,+    updateExperience_description,+    updateExperience_name,+    updateExperience_roleArn,+    updateExperience_id,+    updateExperience_indexId,++    -- * Destructuring the Response+    UpdateExperienceResponse (..),+    newUpdateExperienceResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateExperience' smart constructor.+data UpdateExperience = UpdateExperience'+  { -- | Configuration information you want to update for your Amazon Kendra+    -- experience.+    configuration :: Prelude.Maybe ExperienceConfiguration,+    -- | A new description for your Amazon Kendra experience.+    description :: Prelude.Maybe Prelude.Text,+    -- | A new name for your Amazon Kendra experience.+    name :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) of a role with permission to access+    -- @Query@ API, @QuerySuggestions@ API, @SubmitFeedback@ API, and IAM+    -- Identity Center that stores your user and group information. For more+    -- information, see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The identifier of your Amazon Kendra experience you want to update.+    id :: Prelude.Text,+    -- | The identifier of the index for your Amazon Kendra experience.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateExperience' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configuration', 'updateExperience_configuration' - Configuration information you want to update for your Amazon Kendra+-- experience.+--+-- 'description', 'updateExperience_description' - A new description for your Amazon Kendra experience.+--+-- 'name', 'updateExperience_name' - A new name for your Amazon Kendra experience.+--+-- 'roleArn', 'updateExperience_roleArn' - The Amazon Resource Name (ARN) of a role with permission to access+-- @Query@ API, @QuerySuggestions@ API, @SubmitFeedback@ API, and IAM+-- Identity Center that stores your user and group information. For more+-- information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+--+-- 'id', 'updateExperience_id' - The identifier of your Amazon Kendra experience you want to update.+--+-- 'indexId', 'updateExperience_indexId' - The identifier of the index for your Amazon Kendra experience.+newUpdateExperience ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  UpdateExperience+newUpdateExperience pId_ pIndexId_ =+  UpdateExperience'+    { configuration = Prelude.Nothing,+      description = Prelude.Nothing,+      name = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      id = pId_,+      indexId = pIndexId_+    }++-- | Configuration information you want to update for your Amazon Kendra+-- experience.+updateExperience_configuration :: Lens.Lens' UpdateExperience (Prelude.Maybe ExperienceConfiguration)+updateExperience_configuration = Lens.lens (\UpdateExperience' {configuration} -> configuration) (\s@UpdateExperience' {} a -> s {configuration = a} :: UpdateExperience)++-- | A new description for your Amazon Kendra experience.+updateExperience_description :: Lens.Lens' UpdateExperience (Prelude.Maybe Prelude.Text)+updateExperience_description = Lens.lens (\UpdateExperience' {description} -> description) (\s@UpdateExperience' {} a -> s {description = a} :: UpdateExperience)++-- | A new name for your Amazon Kendra experience.+updateExperience_name :: Lens.Lens' UpdateExperience (Prelude.Maybe Prelude.Text)+updateExperience_name = Lens.lens (\UpdateExperience' {name} -> name) (\s@UpdateExperience' {} a -> s {name = a} :: UpdateExperience)++-- | The Amazon Resource Name (ARN) of a role with permission to access+-- @Query@ API, @QuerySuggestions@ API, @SubmitFeedback@ API, and IAM+-- Identity Center that stores your user and group information. For more+-- information, see+-- <https://docs.aws.amazon.com/kendra/latest/dg/iam-roles.html IAM roles for Amazon Kendra>.+updateExperience_roleArn :: Lens.Lens' UpdateExperience (Prelude.Maybe Prelude.Text)+updateExperience_roleArn = Lens.lens (\UpdateExperience' {roleArn} -> roleArn) (\s@UpdateExperience' {} a -> s {roleArn = a} :: UpdateExperience)++-- | The identifier of your Amazon Kendra experience you want to update.+updateExperience_id :: Lens.Lens' UpdateExperience Prelude.Text+updateExperience_id = Lens.lens (\UpdateExperience' {id} -> id) (\s@UpdateExperience' {} a -> s {id = a} :: UpdateExperience)++-- | The identifier of the index for your Amazon Kendra experience.+updateExperience_indexId :: Lens.Lens' UpdateExperience Prelude.Text+updateExperience_indexId = Lens.lens (\UpdateExperience' {indexId} -> indexId) (\s@UpdateExperience' {} a -> s {indexId = a} :: UpdateExperience)++instance Core.AWSRequest UpdateExperience where+  type+    AWSResponse UpdateExperience =+      UpdateExperienceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull UpdateExperienceResponse'++instance Prelude.Hashable UpdateExperience where+  hashWithSalt _salt UpdateExperience' {..} =+    _salt+      `Prelude.hashWithSalt` configuration+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData UpdateExperience where+  rnf UpdateExperience' {..} =+    Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders UpdateExperience where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.UpdateExperience" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateExperience where+  toJSON UpdateExperience' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Configuration" Data..=) Prelude.<$> configuration,+            ("Description" Data..=) Prelude.<$> description,+            ("Name" Data..=) Prelude.<$> name,+            ("RoleArn" Data..=) Prelude.<$> roleArn,+            Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath UpdateExperience where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateExperience where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateExperienceResponse' smart constructor.+data UpdateExperienceResponse = UpdateExperienceResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateExperienceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newUpdateExperienceResponse ::+  UpdateExperienceResponse+newUpdateExperienceResponse =+  UpdateExperienceResponse'++instance Prelude.NFData UpdateExperienceResponse where+  rnf _ = ()
+ gen/Amazonka/Kendra/UpdateIndex.hs view
@@ -0,0 +1,282 @@+{-# 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.Kendra.UpdateIndex+-- 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 Amazon Kendra index.+module Amazonka.Kendra.UpdateIndex+  ( -- * Creating a Request+    UpdateIndex (..),+    newUpdateIndex,++    -- * Request Lenses+    updateIndex_capacityUnits,+    updateIndex_description,+    updateIndex_documentMetadataConfigurationUpdates,+    updateIndex_name,+    updateIndex_roleArn,+    updateIndex_userContextPolicy,+    updateIndex_userGroupResolutionConfiguration,+    updateIndex_userTokenConfigurations,+    updateIndex_id,++    -- * Destructuring the Response+    UpdateIndexResponse (..),+    newUpdateIndexResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateIndex' smart constructor.+data UpdateIndex = UpdateIndex'+  { -- | Sets the number of additional document storage and query capacity units+    -- that should be used by the index. You can change the capacity of the+    -- index up to 5 times per day, or make 5 API calls.+    --+    -- If you are using extra storage units, you can\'t reduce the storage+    -- capacity below what is required to meet the storage needs for your+    -- index.+    capacityUnits :: Prelude.Maybe CapacityUnitsConfiguration,+    -- | A new description for the index.+    description :: Prelude.Maybe Prelude.Text,+    -- | The document metadata configuration you want to update for the index.+    -- Document metadata are fields or attributes associated with your+    -- documents. For example, the company department name associated with each+    -- document.+    documentMetadataConfigurationUpdates :: Prelude.Maybe [DocumentMetadataConfiguration],+    -- | The name of the index you want to update.+    name :: Prelude.Maybe Prelude.Text,+    -- | An Identity and Access Management (IAM) role that gives Amazon Kendra+    -- permission to access Amazon CloudWatch logs and metrics.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The user context policy.+    userContextPolicy :: Prelude.Maybe UserContextPolicy,+    -- | Enables fetching access levels of groups and users from an IAM Identity+    -- Center (successor to Single Sign-On) identity source. To configure this,+    -- see+    -- <https://docs.aws.amazon.com/kendra/latest/dg/API_UserGroupResolutionConfiguration.html UserGroupResolutionConfiguration>.+    userGroupResolutionConfiguration :: Prelude.Maybe UserGroupResolutionConfiguration,+    -- | The user token configuration.+    userTokenConfigurations :: Prelude.Maybe [UserTokenConfiguration],+    -- | The identifier of the index you want to update.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateIndex' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'capacityUnits', 'updateIndex_capacityUnits' - Sets the number of additional document storage and query capacity units+-- that should be used by the index. You can change the capacity of the+-- index up to 5 times per day, or make 5 API calls.+--+-- If you are using extra storage units, you can\'t reduce the storage+-- capacity below what is required to meet the storage needs for your+-- index.+--+-- 'description', 'updateIndex_description' - A new description for the index.+--+-- 'documentMetadataConfigurationUpdates', 'updateIndex_documentMetadataConfigurationUpdates' - The document metadata configuration you want to update for the index.+-- Document metadata are fields or attributes associated with your+-- documents. For example, the company department name associated with each+-- document.+--+-- 'name', 'updateIndex_name' - The name of the index you want to update.+--+-- 'roleArn', 'updateIndex_roleArn' - An Identity and Access Management (IAM) role that gives Amazon Kendra+-- permission to access Amazon CloudWatch logs and metrics.+--+-- 'userContextPolicy', 'updateIndex_userContextPolicy' - The user context policy.+--+-- 'userGroupResolutionConfiguration', 'updateIndex_userGroupResolutionConfiguration' - Enables fetching access levels of groups and users from an IAM Identity+-- Center (successor to Single Sign-On) identity source. To configure this,+-- see+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_UserGroupResolutionConfiguration.html UserGroupResolutionConfiguration>.+--+-- 'userTokenConfigurations', 'updateIndex_userTokenConfigurations' - The user token configuration.+--+-- 'id', 'updateIndex_id' - The identifier of the index you want to update.+newUpdateIndex ::+  -- | 'id'+  Prelude.Text ->+  UpdateIndex+newUpdateIndex pId_ =+  UpdateIndex'+    { capacityUnits = Prelude.Nothing,+      description = Prelude.Nothing,+      documentMetadataConfigurationUpdates =+        Prelude.Nothing,+      name = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      userContextPolicy = Prelude.Nothing,+      userGroupResolutionConfiguration = Prelude.Nothing,+      userTokenConfigurations = Prelude.Nothing,+      id = pId_+    }++-- | Sets the number of additional document storage and query capacity units+-- that should be used by the index. You can change the capacity of the+-- index up to 5 times per day, or make 5 API calls.+--+-- If you are using extra storage units, you can\'t reduce the storage+-- capacity below what is required to meet the storage needs for your+-- index.+updateIndex_capacityUnits :: Lens.Lens' UpdateIndex (Prelude.Maybe CapacityUnitsConfiguration)+updateIndex_capacityUnits = Lens.lens (\UpdateIndex' {capacityUnits} -> capacityUnits) (\s@UpdateIndex' {} a -> s {capacityUnits = a} :: UpdateIndex)++-- | A new description for the index.+updateIndex_description :: Lens.Lens' UpdateIndex (Prelude.Maybe Prelude.Text)+updateIndex_description = Lens.lens (\UpdateIndex' {description} -> description) (\s@UpdateIndex' {} a -> s {description = a} :: UpdateIndex)++-- | The document metadata configuration you want to update for the index.+-- Document metadata are fields or attributes associated with your+-- documents. For example, the company department name associated with each+-- document.+updateIndex_documentMetadataConfigurationUpdates :: Lens.Lens' UpdateIndex (Prelude.Maybe [DocumentMetadataConfiguration])+updateIndex_documentMetadataConfigurationUpdates = Lens.lens (\UpdateIndex' {documentMetadataConfigurationUpdates} -> documentMetadataConfigurationUpdates) (\s@UpdateIndex' {} a -> s {documentMetadataConfigurationUpdates = a} :: UpdateIndex) Prelude.. Lens.mapping Lens.coerced++-- | The name of the index you want to update.+updateIndex_name :: Lens.Lens' UpdateIndex (Prelude.Maybe Prelude.Text)+updateIndex_name = Lens.lens (\UpdateIndex' {name} -> name) (\s@UpdateIndex' {} a -> s {name = a} :: UpdateIndex)++-- | An Identity and Access Management (IAM) role that gives Amazon Kendra+-- permission to access Amazon CloudWatch logs and metrics.+updateIndex_roleArn :: Lens.Lens' UpdateIndex (Prelude.Maybe Prelude.Text)+updateIndex_roleArn = Lens.lens (\UpdateIndex' {roleArn} -> roleArn) (\s@UpdateIndex' {} a -> s {roleArn = a} :: UpdateIndex)++-- | The user context policy.+updateIndex_userContextPolicy :: Lens.Lens' UpdateIndex (Prelude.Maybe UserContextPolicy)+updateIndex_userContextPolicy = Lens.lens (\UpdateIndex' {userContextPolicy} -> userContextPolicy) (\s@UpdateIndex' {} a -> s {userContextPolicy = a} :: UpdateIndex)++-- | Enables fetching access levels of groups and users from an IAM Identity+-- Center (successor to Single Sign-On) identity source. To configure this,+-- see+-- <https://docs.aws.amazon.com/kendra/latest/dg/API_UserGroupResolutionConfiguration.html UserGroupResolutionConfiguration>.+updateIndex_userGroupResolutionConfiguration :: Lens.Lens' UpdateIndex (Prelude.Maybe UserGroupResolutionConfiguration)+updateIndex_userGroupResolutionConfiguration = Lens.lens (\UpdateIndex' {userGroupResolutionConfiguration} -> userGroupResolutionConfiguration) (\s@UpdateIndex' {} a -> s {userGroupResolutionConfiguration = a} :: UpdateIndex)++-- | The user token configuration.+updateIndex_userTokenConfigurations :: Lens.Lens' UpdateIndex (Prelude.Maybe [UserTokenConfiguration])+updateIndex_userTokenConfigurations = Lens.lens (\UpdateIndex' {userTokenConfigurations} -> userTokenConfigurations) (\s@UpdateIndex' {} a -> s {userTokenConfigurations = a} :: UpdateIndex) Prelude.. Lens.mapping Lens.coerced++-- | The identifier of the index you want to update.+updateIndex_id :: Lens.Lens' UpdateIndex Prelude.Text+updateIndex_id = Lens.lens (\UpdateIndex' {id} -> id) (\s@UpdateIndex' {} a -> s {id = a} :: UpdateIndex)++instance Core.AWSRequest UpdateIndex where+  type AWSResponse UpdateIndex = UpdateIndexResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response = Response.receiveNull UpdateIndexResponse'++instance Prelude.Hashable UpdateIndex where+  hashWithSalt _salt UpdateIndex' {..} =+    _salt+      `Prelude.hashWithSalt` capacityUnits+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` documentMetadataConfigurationUpdates+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` userContextPolicy+      `Prelude.hashWithSalt` userGroupResolutionConfiguration+      `Prelude.hashWithSalt` userTokenConfigurations+      `Prelude.hashWithSalt` id++instance Prelude.NFData UpdateIndex where+  rnf UpdateIndex' {..} =+    Prelude.rnf capacityUnits+      `Prelude.seq` Prelude.rnf description+      `Prelude.seq` Prelude.rnf documentMetadataConfigurationUpdates+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf userContextPolicy+      `Prelude.seq` Prelude.rnf userGroupResolutionConfiguration+      `Prelude.seq` Prelude.rnf userTokenConfigurations+      `Prelude.seq` Prelude.rnf id++instance Data.ToHeaders UpdateIndex where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.UpdateIndex" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateIndex where+  toJSON UpdateIndex' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CapacityUnits" Data..=) Prelude.<$> capacityUnits,+            ("Description" Data..=) Prelude.<$> description,+            ("DocumentMetadataConfigurationUpdates" Data..=)+              Prelude.<$> documentMetadataConfigurationUpdates,+            ("Name" Data..=) Prelude.<$> name,+            ("RoleArn" Data..=) Prelude.<$> roleArn,+            ("UserContextPolicy" Data..=)+              Prelude.<$> userContextPolicy,+            ("UserGroupResolutionConfiguration" Data..=)+              Prelude.<$> userGroupResolutionConfiguration,+            ("UserTokenConfigurations" Data..=)+              Prelude.<$> userTokenConfigurations,+            Prelude.Just ("Id" Data..= id)+          ]+      )++instance Data.ToPath UpdateIndex where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateIndex where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateIndexResponse' smart constructor.+data UpdateIndexResponse = UpdateIndexResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateIndexResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newUpdateIndexResponse ::+  UpdateIndexResponse+newUpdateIndexResponse = UpdateIndexResponse'++instance Prelude.NFData UpdateIndexResponse where+  rnf _ = ()
+ gen/Amazonka/Kendra/UpdateQuerySuggestionsBlockList.hs view
@@ -0,0 +1,271 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.UpdateQuerySuggestionsBlockList+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a block list used for query suggestions for an index.+--+-- Updates to a block list might not take effect right away. Amazon Kendra+-- needs to refresh the entire suggestions list to apply any updates to the+-- block list. Other changes not related to the block list apply+-- immediately.+--+-- If a block list is updating, then you need to wait for the first update+-- to finish before submitting another update.+--+-- Amazon Kendra supports partial updates, so you only need to provide the+-- fields you want to update.+--+-- @UpdateQuerySuggestionsBlockList@ is currently not supported in the+-- Amazon Web Services GovCloud (US-West) region.+module Amazonka.Kendra.UpdateQuerySuggestionsBlockList+  ( -- * Creating a Request+    UpdateQuerySuggestionsBlockList (..),+    newUpdateQuerySuggestionsBlockList,++    -- * Request Lenses+    updateQuerySuggestionsBlockList_description,+    updateQuerySuggestionsBlockList_name,+    updateQuerySuggestionsBlockList_roleArn,+    updateQuerySuggestionsBlockList_sourceS3Path,+    updateQuerySuggestionsBlockList_indexId,+    updateQuerySuggestionsBlockList_id,++    -- * Destructuring the Response+    UpdateQuerySuggestionsBlockListResponse (..),+    newUpdateQuerySuggestionsBlockListResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateQuerySuggestionsBlockList' smart constructor.+data UpdateQuerySuggestionsBlockList = UpdateQuerySuggestionsBlockList'+  { -- | A new description for the block list.+    description :: Prelude.Maybe Prelude.Text,+    -- | A new name for the block list.+    name :: Prelude.Maybe Prelude.Text,+    -- | The IAM (Identity and Access Management) role used to access the block+    -- list text file in S3.+    roleArn :: Prelude.Maybe Prelude.Text,+    -- | The S3 path where your block list text file sits in S3.+    --+    -- If you update your block list and provide the same path to the block+    -- list text file in S3, then Amazon Kendra reloads the file to refresh the+    -- block list. Amazon Kendra does not automatically refresh your block+    -- list. You need to call the @UpdateQuerySuggestionsBlockList@ API to+    -- refresh you block list.+    --+    -- If you update your block list, then Amazon Kendra asynchronously+    -- refreshes all query suggestions with the latest content in the S3 file.+    -- This means changes might not take effect immediately.+    sourceS3Path :: Prelude.Maybe S3Path,+    -- | The identifier of the index for the block list.+    indexId :: Prelude.Text,+    -- | The identifier of the block list you want to update.+    id :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateQuerySuggestionsBlockList' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateQuerySuggestionsBlockList_description' - A new description for the block list.+--+-- 'name', 'updateQuerySuggestionsBlockList_name' - A new name for the block list.+--+-- 'roleArn', 'updateQuerySuggestionsBlockList_roleArn' - The IAM (Identity and Access Management) role used to access the block+-- list text file in S3.+--+-- 'sourceS3Path', 'updateQuerySuggestionsBlockList_sourceS3Path' - The S3 path where your block list text file sits in S3.+--+-- If you update your block list and provide the same path to the block+-- list text file in S3, then Amazon Kendra reloads the file to refresh the+-- block list. Amazon Kendra does not automatically refresh your block+-- list. You need to call the @UpdateQuerySuggestionsBlockList@ API to+-- refresh you block list.+--+-- If you update your block list, then Amazon Kendra asynchronously+-- refreshes all query suggestions with the latest content in the S3 file.+-- This means changes might not take effect immediately.+--+-- 'indexId', 'updateQuerySuggestionsBlockList_indexId' - The identifier of the index for the block list.+--+-- 'id', 'updateQuerySuggestionsBlockList_id' - The identifier of the block list you want to update.+newUpdateQuerySuggestionsBlockList ::+  -- | 'indexId'+  Prelude.Text ->+  -- | 'id'+  Prelude.Text ->+  UpdateQuerySuggestionsBlockList+newUpdateQuerySuggestionsBlockList pIndexId_ pId_ =+  UpdateQuerySuggestionsBlockList'+    { description =+        Prelude.Nothing,+      name = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      sourceS3Path = Prelude.Nothing,+      indexId = pIndexId_,+      id = pId_+    }++-- | A new description for the block list.+updateQuerySuggestionsBlockList_description :: Lens.Lens' UpdateQuerySuggestionsBlockList (Prelude.Maybe Prelude.Text)+updateQuerySuggestionsBlockList_description = Lens.lens (\UpdateQuerySuggestionsBlockList' {description} -> description) (\s@UpdateQuerySuggestionsBlockList' {} a -> s {description = a} :: UpdateQuerySuggestionsBlockList)++-- | A new name for the block list.+updateQuerySuggestionsBlockList_name :: Lens.Lens' UpdateQuerySuggestionsBlockList (Prelude.Maybe Prelude.Text)+updateQuerySuggestionsBlockList_name = Lens.lens (\UpdateQuerySuggestionsBlockList' {name} -> name) (\s@UpdateQuerySuggestionsBlockList' {} a -> s {name = a} :: UpdateQuerySuggestionsBlockList)++-- | The IAM (Identity and Access Management) role used to access the block+-- list text file in S3.+updateQuerySuggestionsBlockList_roleArn :: Lens.Lens' UpdateQuerySuggestionsBlockList (Prelude.Maybe Prelude.Text)+updateQuerySuggestionsBlockList_roleArn = Lens.lens (\UpdateQuerySuggestionsBlockList' {roleArn} -> roleArn) (\s@UpdateQuerySuggestionsBlockList' {} a -> s {roleArn = a} :: UpdateQuerySuggestionsBlockList)++-- | The S3 path where your block list text file sits in S3.+--+-- If you update your block list and provide the same path to the block+-- list text file in S3, then Amazon Kendra reloads the file to refresh the+-- block list. Amazon Kendra does not automatically refresh your block+-- list. You need to call the @UpdateQuerySuggestionsBlockList@ API to+-- refresh you block list.+--+-- If you update your block list, then Amazon Kendra asynchronously+-- refreshes all query suggestions with the latest content in the S3 file.+-- This means changes might not take effect immediately.+updateQuerySuggestionsBlockList_sourceS3Path :: Lens.Lens' UpdateQuerySuggestionsBlockList (Prelude.Maybe S3Path)+updateQuerySuggestionsBlockList_sourceS3Path = Lens.lens (\UpdateQuerySuggestionsBlockList' {sourceS3Path} -> sourceS3Path) (\s@UpdateQuerySuggestionsBlockList' {} a -> s {sourceS3Path = a} :: UpdateQuerySuggestionsBlockList)++-- | The identifier of the index for the block list.+updateQuerySuggestionsBlockList_indexId :: Lens.Lens' UpdateQuerySuggestionsBlockList Prelude.Text+updateQuerySuggestionsBlockList_indexId = Lens.lens (\UpdateQuerySuggestionsBlockList' {indexId} -> indexId) (\s@UpdateQuerySuggestionsBlockList' {} a -> s {indexId = a} :: UpdateQuerySuggestionsBlockList)++-- | The identifier of the block list you want to update.+updateQuerySuggestionsBlockList_id :: Lens.Lens' UpdateQuerySuggestionsBlockList Prelude.Text+updateQuerySuggestionsBlockList_id = Lens.lens (\UpdateQuerySuggestionsBlockList' {id} -> id) (\s@UpdateQuerySuggestionsBlockList' {} a -> s {id = a} :: UpdateQuerySuggestionsBlockList)++instance+  Core.AWSRequest+    UpdateQuerySuggestionsBlockList+  where+  type+    AWSResponse UpdateQuerySuggestionsBlockList =+      UpdateQuerySuggestionsBlockListResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull+      UpdateQuerySuggestionsBlockListResponse'++instance+  Prelude.Hashable+    UpdateQuerySuggestionsBlockList+  where+  hashWithSalt+    _salt+    UpdateQuerySuggestionsBlockList' {..} =+      _salt+        `Prelude.hashWithSalt` description+        `Prelude.hashWithSalt` name+        `Prelude.hashWithSalt` roleArn+        `Prelude.hashWithSalt` sourceS3Path+        `Prelude.hashWithSalt` indexId+        `Prelude.hashWithSalt` id++instance+  Prelude.NFData+    UpdateQuerySuggestionsBlockList+  where+  rnf UpdateQuerySuggestionsBlockList' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf sourceS3Path+      `Prelude.seq` Prelude.rnf indexId+      `Prelude.seq` Prelude.rnf id++instance+  Data.ToHeaders+    UpdateQuerySuggestionsBlockList+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.UpdateQuerySuggestionsBlockList" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateQuerySuggestionsBlockList where+  toJSON UpdateQuerySuggestionsBlockList' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("Name" Data..=) Prelude.<$> name,+            ("RoleArn" Data..=) Prelude.<$> roleArn,+            ("SourceS3Path" Data..=) Prelude.<$> sourceS3Path,+            Prelude.Just ("IndexId" Data..= indexId),+            Prelude.Just ("Id" Data..= id)+          ]+      )++instance Data.ToPath UpdateQuerySuggestionsBlockList where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateQuerySuggestionsBlockList where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateQuerySuggestionsBlockListResponse' smart constructor.+data UpdateQuerySuggestionsBlockListResponse = UpdateQuerySuggestionsBlockListResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateQuerySuggestionsBlockListResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newUpdateQuerySuggestionsBlockListResponse ::+  UpdateQuerySuggestionsBlockListResponse+newUpdateQuerySuggestionsBlockListResponse =+  UpdateQuerySuggestionsBlockListResponse'++instance+  Prelude.NFData+    UpdateQuerySuggestionsBlockListResponse+  where+  rnf _ = ()
+ gen/Amazonka/Kendra/UpdateQuerySuggestionsConfig.hs view
@@ -0,0 +1,349 @@+{-# 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.Kendra.UpdateQuerySuggestionsConfig+-- 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 of query suggestions for an index.+--+-- Amazon Kendra supports partial updates, so you only need to provide the+-- fields you want to update.+--+-- If an update is currently processing (i.e. \'happening\'), you need to+-- wait for the update to finish before making another update.+--+-- Updates to query suggestions settings might not take effect right away.+-- The time for your updated settings to take effect depends on the updates+-- made and the number of search queries in your index.+--+-- You can still enable\/disable query suggestions at any time.+--+-- @UpdateQuerySuggestionsConfig@ is currently not supported in the Amazon+-- Web Services GovCloud (US-West) region.+module Amazonka.Kendra.UpdateQuerySuggestionsConfig+  ( -- * Creating a Request+    UpdateQuerySuggestionsConfig (..),+    newUpdateQuerySuggestionsConfig,++    -- * Request Lenses+    updateQuerySuggestionsConfig_includeQueriesWithoutUserInformation,+    updateQuerySuggestionsConfig_minimumNumberOfQueryingUsers,+    updateQuerySuggestionsConfig_minimumQueryCount,+    updateQuerySuggestionsConfig_mode,+    updateQuerySuggestionsConfig_queryLogLookBackWindowInDays,+    updateQuerySuggestionsConfig_indexId,++    -- * Destructuring the Response+    UpdateQuerySuggestionsConfigResponse (..),+    newUpdateQuerySuggestionsConfigResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateQuerySuggestionsConfig' smart constructor.+data UpdateQuerySuggestionsConfig = UpdateQuerySuggestionsConfig'+  { -- | @TRUE@ to include queries without user information (i.e. all queries,+    -- irrespective of the user), otherwise @FALSE@ to only include queries+    -- with user information.+    --+    -- If you pass user information to Amazon Kendra along with the queries,+    -- you can set this flag to @FALSE@ and instruct Amazon Kendra to only+    -- consider queries with user information.+    --+    -- If you set to @FALSE@, Amazon Kendra only considers queries searched at+    -- least @MinimumQueryCount@ times across @MinimumNumberOfQueryingUsers@+    -- unique users for suggestions.+    --+    -- If you set to @TRUE@, Amazon Kendra ignores all user information and+    -- learns from all queries.+    includeQueriesWithoutUserInformation :: Prelude.Maybe Prelude.Bool,+    -- | The minimum number of unique users who must search a query in order for+    -- the query to be eligible to suggest to your users.+    --+    -- Increasing this number might decrease the number of suggestions.+    -- However, this ensures a query is searched by many users and is truly+    -- popular to suggest to users.+    --+    -- How you tune this setting depends on your specific needs.+    minimumNumberOfQueryingUsers :: Prelude.Maybe Prelude.Natural,+    -- | The the minimum number of times a query must be searched in order to be+    -- eligible to suggest to your users.+    --+    -- Decreasing this number increases the number of suggestions. However,+    -- this affects the quality of suggestions as it sets a low bar for a query+    -- to be considered popular to suggest to users.+    --+    -- How you tune this setting depends on your specific needs.+    minimumQueryCount :: Prelude.Maybe Prelude.Natural,+    -- | Set the mode to @ENABLED@ or @LEARN_ONLY@.+    --+    -- By default, Amazon Kendra enables query suggestions. @LEARN_ONLY@ mode+    -- allows you to turn off query suggestions. You can to update this at any+    -- time.+    --+    -- In @LEARN_ONLY@ mode, Amazon Kendra continues to learn from new queries+    -- to keep suggestions up to date for when you are ready to switch to+    -- ENABLED mode again.+    mode :: Prelude.Maybe Mode,+    -- | How recent your queries are in your query log time window.+    --+    -- The time window is the number of days from current day to past days.+    --+    -- By default, Amazon Kendra sets this to 180.+    queryLogLookBackWindowInDays :: Prelude.Maybe Prelude.Int,+    -- | The identifier of the index with query suggestions you want to update.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateQuerySuggestionsConfig' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'includeQueriesWithoutUserInformation', 'updateQuerySuggestionsConfig_includeQueriesWithoutUserInformation' - @TRUE@ to include queries without user information (i.e. all queries,+-- irrespective of the user), otherwise @FALSE@ to only include queries+-- with user information.+--+-- If you pass user information to Amazon Kendra along with the queries,+-- you can set this flag to @FALSE@ and instruct Amazon Kendra to only+-- consider queries with user information.+--+-- If you set to @FALSE@, Amazon Kendra only considers queries searched at+-- least @MinimumQueryCount@ times across @MinimumNumberOfQueryingUsers@+-- unique users for suggestions.+--+-- If you set to @TRUE@, Amazon Kendra ignores all user information and+-- learns from all queries.+--+-- 'minimumNumberOfQueryingUsers', 'updateQuerySuggestionsConfig_minimumNumberOfQueryingUsers' - The minimum number of unique users who must search a query in order for+-- the query to be eligible to suggest to your users.+--+-- Increasing this number might decrease the number of suggestions.+-- However, this ensures a query is searched by many users and is truly+-- popular to suggest to users.+--+-- How you tune this setting depends on your specific needs.+--+-- 'minimumQueryCount', 'updateQuerySuggestionsConfig_minimumQueryCount' - The the minimum number of times a query must be searched in order to be+-- eligible to suggest to your users.+--+-- Decreasing this number increases the number of suggestions. However,+-- this affects the quality of suggestions as it sets a low bar for a query+-- to be considered popular to suggest to users.+--+-- How you tune this setting depends on your specific needs.+--+-- 'mode', 'updateQuerySuggestionsConfig_mode' - Set the mode to @ENABLED@ or @LEARN_ONLY@.+--+-- By default, Amazon Kendra enables query suggestions. @LEARN_ONLY@ mode+-- allows you to turn off query suggestions. You can to update this at any+-- time.+--+-- In @LEARN_ONLY@ mode, Amazon Kendra continues to learn from new queries+-- to keep suggestions up to date for when you are ready to switch to+-- ENABLED mode again.+--+-- 'queryLogLookBackWindowInDays', 'updateQuerySuggestionsConfig_queryLogLookBackWindowInDays' - How recent your queries are in your query log time window.+--+-- The time window is the number of days from current day to past days.+--+-- By default, Amazon Kendra sets this to 180.+--+-- 'indexId', 'updateQuerySuggestionsConfig_indexId' - The identifier of the index with query suggestions you want to update.+newUpdateQuerySuggestionsConfig ::+  -- | 'indexId'+  Prelude.Text ->+  UpdateQuerySuggestionsConfig+newUpdateQuerySuggestionsConfig pIndexId_ =+  UpdateQuerySuggestionsConfig'+    { includeQueriesWithoutUserInformation =+        Prelude.Nothing,+      minimumNumberOfQueryingUsers =+        Prelude.Nothing,+      minimumQueryCount = Prelude.Nothing,+      mode = Prelude.Nothing,+      queryLogLookBackWindowInDays =+        Prelude.Nothing,+      indexId = pIndexId_+    }++-- | @TRUE@ to include queries without user information (i.e. all queries,+-- irrespective of the user), otherwise @FALSE@ to only include queries+-- with user information.+--+-- If you pass user information to Amazon Kendra along with the queries,+-- you can set this flag to @FALSE@ and instruct Amazon Kendra to only+-- consider queries with user information.+--+-- If you set to @FALSE@, Amazon Kendra only considers queries searched at+-- least @MinimumQueryCount@ times across @MinimumNumberOfQueryingUsers@+-- unique users for suggestions.+--+-- If you set to @TRUE@, Amazon Kendra ignores all user information and+-- learns from all queries.+updateQuerySuggestionsConfig_includeQueriesWithoutUserInformation :: Lens.Lens' UpdateQuerySuggestionsConfig (Prelude.Maybe Prelude.Bool)+updateQuerySuggestionsConfig_includeQueriesWithoutUserInformation = Lens.lens (\UpdateQuerySuggestionsConfig' {includeQueriesWithoutUserInformation} -> includeQueriesWithoutUserInformation) (\s@UpdateQuerySuggestionsConfig' {} a -> s {includeQueriesWithoutUserInformation = a} :: UpdateQuerySuggestionsConfig)++-- | The minimum number of unique users who must search a query in order for+-- the query to be eligible to suggest to your users.+--+-- Increasing this number might decrease the number of suggestions.+-- However, this ensures a query is searched by many users and is truly+-- popular to suggest to users.+--+-- How you tune this setting depends on your specific needs.+updateQuerySuggestionsConfig_minimumNumberOfQueryingUsers :: Lens.Lens' UpdateQuerySuggestionsConfig (Prelude.Maybe Prelude.Natural)+updateQuerySuggestionsConfig_minimumNumberOfQueryingUsers = Lens.lens (\UpdateQuerySuggestionsConfig' {minimumNumberOfQueryingUsers} -> minimumNumberOfQueryingUsers) (\s@UpdateQuerySuggestionsConfig' {} a -> s {minimumNumberOfQueryingUsers = a} :: UpdateQuerySuggestionsConfig)++-- | The the minimum number of times a query must be searched in order to be+-- eligible to suggest to your users.+--+-- Decreasing this number increases the number of suggestions. However,+-- this affects the quality of suggestions as it sets a low bar for a query+-- to be considered popular to suggest to users.+--+-- How you tune this setting depends on your specific needs.+updateQuerySuggestionsConfig_minimumQueryCount :: Lens.Lens' UpdateQuerySuggestionsConfig (Prelude.Maybe Prelude.Natural)+updateQuerySuggestionsConfig_minimumQueryCount = Lens.lens (\UpdateQuerySuggestionsConfig' {minimumQueryCount} -> minimumQueryCount) (\s@UpdateQuerySuggestionsConfig' {} a -> s {minimumQueryCount = a} :: UpdateQuerySuggestionsConfig)++-- | Set the mode to @ENABLED@ or @LEARN_ONLY@.+--+-- By default, Amazon Kendra enables query suggestions. @LEARN_ONLY@ mode+-- allows you to turn off query suggestions. You can to update this at any+-- time.+--+-- In @LEARN_ONLY@ mode, Amazon Kendra continues to learn from new queries+-- to keep suggestions up to date for when you are ready to switch to+-- ENABLED mode again.+updateQuerySuggestionsConfig_mode :: Lens.Lens' UpdateQuerySuggestionsConfig (Prelude.Maybe Mode)+updateQuerySuggestionsConfig_mode = Lens.lens (\UpdateQuerySuggestionsConfig' {mode} -> mode) (\s@UpdateQuerySuggestionsConfig' {} a -> s {mode = a} :: UpdateQuerySuggestionsConfig)++-- | How recent your queries are in your query log time window.+--+-- The time window is the number of days from current day to past days.+--+-- By default, Amazon Kendra sets this to 180.+updateQuerySuggestionsConfig_queryLogLookBackWindowInDays :: Lens.Lens' UpdateQuerySuggestionsConfig (Prelude.Maybe Prelude.Int)+updateQuerySuggestionsConfig_queryLogLookBackWindowInDays = Lens.lens (\UpdateQuerySuggestionsConfig' {queryLogLookBackWindowInDays} -> queryLogLookBackWindowInDays) (\s@UpdateQuerySuggestionsConfig' {} a -> s {queryLogLookBackWindowInDays = a} :: UpdateQuerySuggestionsConfig)++-- | The identifier of the index with query suggestions you want to update.+updateQuerySuggestionsConfig_indexId :: Lens.Lens' UpdateQuerySuggestionsConfig Prelude.Text+updateQuerySuggestionsConfig_indexId = Lens.lens (\UpdateQuerySuggestionsConfig' {indexId} -> indexId) (\s@UpdateQuerySuggestionsConfig' {} a -> s {indexId = a} :: UpdateQuerySuggestionsConfig)++instance Core.AWSRequest UpdateQuerySuggestionsConfig where+  type+    AWSResponse UpdateQuerySuggestionsConfig =+      UpdateQuerySuggestionsConfigResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull+      UpdateQuerySuggestionsConfigResponse'++instance+  Prelude.Hashable+    UpdateQuerySuggestionsConfig+  where+  hashWithSalt _salt UpdateQuerySuggestionsConfig' {..} =+    _salt+      `Prelude.hashWithSalt` includeQueriesWithoutUserInformation+      `Prelude.hashWithSalt` minimumNumberOfQueryingUsers+      `Prelude.hashWithSalt` minimumQueryCount+      `Prelude.hashWithSalt` mode+      `Prelude.hashWithSalt` queryLogLookBackWindowInDays+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData UpdateQuerySuggestionsConfig where+  rnf UpdateQuerySuggestionsConfig' {..} =+    Prelude.rnf includeQueriesWithoutUserInformation+      `Prelude.seq` Prelude.rnf minimumNumberOfQueryingUsers+      `Prelude.seq` Prelude.rnf minimumQueryCount+      `Prelude.seq` Prelude.rnf mode+      `Prelude.seq` Prelude.rnf queryLogLookBackWindowInDays+      `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders UpdateQuerySuggestionsConfig where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.UpdateQuerySuggestionsConfig" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateQuerySuggestionsConfig where+  toJSON UpdateQuerySuggestionsConfig' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("IncludeQueriesWithoutUserInformation" Data..=)+              Prelude.<$> includeQueriesWithoutUserInformation,+            ("MinimumNumberOfQueryingUsers" Data..=)+              Prelude.<$> minimumNumberOfQueryingUsers,+            ("MinimumQueryCount" Data..=)+              Prelude.<$> minimumQueryCount,+            ("Mode" Data..=) Prelude.<$> mode,+            ("QueryLogLookBackWindowInDays" Data..=)+              Prelude.<$> queryLogLookBackWindowInDays,+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath UpdateQuerySuggestionsConfig where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateQuerySuggestionsConfig where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateQuerySuggestionsConfigResponse' smart constructor.+data UpdateQuerySuggestionsConfigResponse = UpdateQuerySuggestionsConfigResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateQuerySuggestionsConfigResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newUpdateQuerySuggestionsConfigResponse ::+  UpdateQuerySuggestionsConfigResponse+newUpdateQuerySuggestionsConfigResponse =+  UpdateQuerySuggestionsConfigResponse'++instance+  Prelude.NFData+    UpdateQuerySuggestionsConfigResponse+  where+  rnf _ = ()
+ gen/Amazonka/Kendra/UpdateThesaurus.hs view
@@ -0,0 +1,206 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.UpdateThesaurus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a thesaurus for an index.+module Amazonka.Kendra.UpdateThesaurus+  ( -- * Creating a Request+    UpdateThesaurus (..),+    newUpdateThesaurus,++    -- * Request Lenses+    updateThesaurus_description,+    updateThesaurus_name,+    updateThesaurus_roleArn,+    updateThesaurus_sourceS3Path,+    updateThesaurus_id,+    updateThesaurus_indexId,++    -- * Destructuring the Response+    UpdateThesaurusResponse (..),+    newUpdateThesaurusResponse,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateThesaurus' smart constructor.+data UpdateThesaurus = UpdateThesaurus'+  { -- | A new description for the thesaurus.+    description :: Prelude.Maybe Prelude.Text,+    -- | A new name for the thesaurus.+    name :: Prelude.Maybe Prelude.Text,+    -- | An IAM role that gives Amazon Kendra permissions to access thesaurus+    -- file specified in @SourceS3Path@.+    roleArn :: Prelude.Maybe Prelude.Text,+    sourceS3Path :: Prelude.Maybe S3Path,+    -- | The identifier of the thesaurus you want to update.+    id :: Prelude.Text,+    -- | The identifier of the index for the thesaurus.+    indexId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateThesaurus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.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', 'updateThesaurus_description' - A new description for the thesaurus.+--+-- 'name', 'updateThesaurus_name' - A new name for the thesaurus.+--+-- 'roleArn', 'updateThesaurus_roleArn' - An IAM role that gives Amazon Kendra permissions to access thesaurus+-- file specified in @SourceS3Path@.+--+-- 'sourceS3Path', 'updateThesaurus_sourceS3Path' - Undocumented member.+--+-- 'id', 'updateThesaurus_id' - The identifier of the thesaurus you want to update.+--+-- 'indexId', 'updateThesaurus_indexId' - The identifier of the index for the thesaurus.+newUpdateThesaurus ::+  -- | 'id'+  Prelude.Text ->+  -- | 'indexId'+  Prelude.Text ->+  UpdateThesaurus+newUpdateThesaurus pId_ pIndexId_ =+  UpdateThesaurus'+    { description = Prelude.Nothing,+      name = Prelude.Nothing,+      roleArn = Prelude.Nothing,+      sourceS3Path = Prelude.Nothing,+      id = pId_,+      indexId = pIndexId_+    }++-- | A new description for the thesaurus.+updateThesaurus_description :: Lens.Lens' UpdateThesaurus (Prelude.Maybe Prelude.Text)+updateThesaurus_description = Lens.lens (\UpdateThesaurus' {description} -> description) (\s@UpdateThesaurus' {} a -> s {description = a} :: UpdateThesaurus)++-- | A new name for the thesaurus.+updateThesaurus_name :: Lens.Lens' UpdateThesaurus (Prelude.Maybe Prelude.Text)+updateThesaurus_name = Lens.lens (\UpdateThesaurus' {name} -> name) (\s@UpdateThesaurus' {} a -> s {name = a} :: UpdateThesaurus)++-- | An IAM role that gives Amazon Kendra permissions to access thesaurus+-- file specified in @SourceS3Path@.+updateThesaurus_roleArn :: Lens.Lens' UpdateThesaurus (Prelude.Maybe Prelude.Text)+updateThesaurus_roleArn = Lens.lens (\UpdateThesaurus' {roleArn} -> roleArn) (\s@UpdateThesaurus' {} a -> s {roleArn = a} :: UpdateThesaurus)++-- | Undocumented member.+updateThesaurus_sourceS3Path :: Lens.Lens' UpdateThesaurus (Prelude.Maybe S3Path)+updateThesaurus_sourceS3Path = Lens.lens (\UpdateThesaurus' {sourceS3Path} -> sourceS3Path) (\s@UpdateThesaurus' {} a -> s {sourceS3Path = a} :: UpdateThesaurus)++-- | The identifier of the thesaurus you want to update.+updateThesaurus_id :: Lens.Lens' UpdateThesaurus Prelude.Text+updateThesaurus_id = Lens.lens (\UpdateThesaurus' {id} -> id) (\s@UpdateThesaurus' {} a -> s {id = a} :: UpdateThesaurus)++-- | The identifier of the index for the thesaurus.+updateThesaurus_indexId :: Lens.Lens' UpdateThesaurus Prelude.Text+updateThesaurus_indexId = Lens.lens (\UpdateThesaurus' {indexId} -> indexId) (\s@UpdateThesaurus' {} a -> s {indexId = a} :: UpdateThesaurus)++instance Core.AWSRequest UpdateThesaurus where+  type+    AWSResponse UpdateThesaurus =+      UpdateThesaurusResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveNull UpdateThesaurusResponse'++instance Prelude.Hashable UpdateThesaurus where+  hashWithSalt _salt UpdateThesaurus' {..} =+    _salt+      `Prelude.hashWithSalt` description+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` roleArn+      `Prelude.hashWithSalt` sourceS3Path+      `Prelude.hashWithSalt` id+      `Prelude.hashWithSalt` indexId++instance Prelude.NFData UpdateThesaurus where+  rnf UpdateThesaurus' {..} =+    Prelude.rnf description+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf roleArn+      `Prelude.seq` Prelude.rnf sourceS3Path+      `Prelude.seq` Prelude.rnf id+      `Prelude.seq` Prelude.rnf indexId++instance Data.ToHeaders UpdateThesaurus where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSKendraFrontendService.UpdateThesaurus" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateThesaurus where+  toJSON UpdateThesaurus' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Description" Data..=) Prelude.<$> description,+            ("Name" Data..=) Prelude.<$> name,+            ("RoleArn" Data..=) Prelude.<$> roleArn,+            ("SourceS3Path" Data..=) Prelude.<$> sourceS3Path,+            Prelude.Just ("Id" Data..= id),+            Prelude.Just ("IndexId" Data..= indexId)+          ]+      )++instance Data.ToPath UpdateThesaurus where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateThesaurus where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateThesaurusResponse' smart constructor.+data UpdateThesaurusResponse = UpdateThesaurusResponse'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateThesaurusResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newUpdateThesaurusResponse ::+  UpdateThesaurusResponse+newUpdateThesaurusResponse = UpdateThesaurusResponse'++instance Prelude.NFData UpdateThesaurusResponse where+  rnf _ = ()
+ gen/Amazonka/Kendra/Waiters.hs view
@@ -0,0 +1,24 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.Kendra.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.Kendra.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import Amazonka.Kendra.Lens+import Amazonka.Kendra.Types+import qualified Amazonka.Prelude as Prelude
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,23 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+module Main (main) where++import Test.Amazonka.Kendra+import Test.Amazonka.Kendra.Internal+import Test.Tasty++main :: IO ()+main =+  defaultMain $+    testGroup+      "Kendra"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
+ test/Test/Amazonka/Gen/Kendra.hs view
@@ -0,0 +1,1238 @@+{-# 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.Kendra+-- Copyright   : (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.Kendra where++import Amazonka.Kendra+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.Kendra.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"+--         [ requestAssociateEntitiesToExperience $+--             newAssociateEntitiesToExperience+--+--         , requestAssociatePersonasToEntities $+--             newAssociatePersonasToEntities+--+--         , requestBatchDeleteDocument $+--             newBatchDeleteDocument+--+--         , requestBatchGetDocumentStatus $+--             newBatchGetDocumentStatus+--+--         , requestBatchPutDocument $+--             newBatchPutDocument+--+--         , requestClearQuerySuggestions $+--             newClearQuerySuggestions+--+--         , requestCreateAccessControlConfiguration $+--             newCreateAccessControlConfiguration+--+--         , requestCreateDataSource $+--             newCreateDataSource+--+--         , requestCreateExperience $+--             newCreateExperience+--+--         , requestCreateFaq $+--             newCreateFaq+--+--         , requestCreateIndex $+--             newCreateIndex+--+--         , requestCreateQuerySuggestionsBlockList $+--             newCreateQuerySuggestionsBlockList+--+--         , requestCreateThesaurus $+--             newCreateThesaurus+--+--         , requestDeleteAccessControlConfiguration $+--             newDeleteAccessControlConfiguration+--+--         , requestDeleteDataSource $+--             newDeleteDataSource+--+--         , requestDeleteExperience $+--             newDeleteExperience+--+--         , requestDeleteFaq $+--             newDeleteFaq+--+--         , requestDeleteIndex $+--             newDeleteIndex+--+--         , requestDeletePrincipalMapping $+--             newDeletePrincipalMapping+--+--         , requestDeleteQuerySuggestionsBlockList $+--             newDeleteQuerySuggestionsBlockList+--+--         , requestDeleteThesaurus $+--             newDeleteThesaurus+--+--         , requestDescribeAccessControlConfiguration $+--             newDescribeAccessControlConfiguration+--+--         , requestDescribeDataSource $+--             newDescribeDataSource+--+--         , requestDescribeExperience $+--             newDescribeExperience+--+--         , requestDescribeFaq $+--             newDescribeFaq+--+--         , requestDescribeIndex $+--             newDescribeIndex+--+--         , requestDescribePrincipalMapping $+--             newDescribePrincipalMapping+--+--         , requestDescribeQuerySuggestionsBlockList $+--             newDescribeQuerySuggestionsBlockList+--+--         , requestDescribeQuerySuggestionsConfig $+--             newDescribeQuerySuggestionsConfig+--+--         , requestDescribeThesaurus $+--             newDescribeThesaurus+--+--         , requestDisassociateEntitiesFromExperience $+--             newDisassociateEntitiesFromExperience+--+--         , requestDisassociatePersonasFromEntities $+--             newDisassociatePersonasFromEntities+--+--         , requestGetQuerySuggestions $+--             newGetQuerySuggestions+--+--         , requestGetSnapshots $+--             newGetSnapshots+--+--         , requestListAccessControlConfigurations $+--             newListAccessControlConfigurations+--+--         , requestListDataSourceSyncJobs $+--             newListDataSourceSyncJobs+--+--         , requestListDataSources $+--             newListDataSources+--+--         , requestListEntityPersonas $+--             newListEntityPersonas+--+--         , requestListExperienceEntities $+--             newListExperienceEntities+--+--         , requestListExperiences $+--             newListExperiences+--+--         , requestListFaqs $+--             newListFaqs+--+--         , requestListGroupsOlderThanOrderingId $+--             newListGroupsOlderThanOrderingId+--+--         , requestListIndices $+--             newListIndices+--+--         , requestListQuerySuggestionsBlockLists $+--             newListQuerySuggestionsBlockLists+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestListThesauri $+--             newListThesauri+--+--         , requestPutPrincipalMapping $+--             newPutPrincipalMapping+--+--         , requestQuery $+--             newQuery+--+--         , requestStartDataSourceSyncJob $+--             newStartDataSourceSyncJob+--+--         , requestStopDataSourceSyncJob $+--             newStopDataSourceSyncJob+--+--         , requestSubmitFeedback $+--             newSubmitFeedback+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateAccessControlConfiguration $+--             newUpdateAccessControlConfiguration+--+--         , requestUpdateDataSource $+--             newUpdateDataSource+--+--         , requestUpdateExperience $+--             newUpdateExperience+--+--         , requestUpdateIndex $+--             newUpdateIndex+--+--         , requestUpdateQuerySuggestionsBlockList $+--             newUpdateQuerySuggestionsBlockList+--+--         , requestUpdateQuerySuggestionsConfig $+--             newUpdateQuerySuggestionsConfig+--+--         , requestUpdateThesaurus $+--             newUpdateThesaurus+--+--           ]++--     , testGroup "response"+--         [ responseAssociateEntitiesToExperience $+--             newAssociateEntitiesToExperienceResponse+--+--         , responseAssociatePersonasToEntities $+--             newAssociatePersonasToEntitiesResponse+--+--         , responseBatchDeleteDocument $+--             newBatchDeleteDocumentResponse+--+--         , responseBatchGetDocumentStatus $+--             newBatchGetDocumentStatusResponse+--+--         , responseBatchPutDocument $+--             newBatchPutDocumentResponse+--+--         , responseClearQuerySuggestions $+--             newClearQuerySuggestionsResponse+--+--         , responseCreateAccessControlConfiguration $+--             newCreateAccessControlConfigurationResponse+--+--         , responseCreateDataSource $+--             newCreateDataSourceResponse+--+--         , responseCreateExperience $+--             newCreateExperienceResponse+--+--         , responseCreateFaq $+--             newCreateFaqResponse+--+--         , responseCreateIndex $+--             newCreateIndexResponse+--+--         , responseCreateQuerySuggestionsBlockList $+--             newCreateQuerySuggestionsBlockListResponse+--+--         , responseCreateThesaurus $+--             newCreateThesaurusResponse+--+--         , responseDeleteAccessControlConfiguration $+--             newDeleteAccessControlConfigurationResponse+--+--         , responseDeleteDataSource $+--             newDeleteDataSourceResponse+--+--         , responseDeleteExperience $+--             newDeleteExperienceResponse+--+--         , responseDeleteFaq $+--             newDeleteFaqResponse+--+--         , responseDeleteIndex $+--             newDeleteIndexResponse+--+--         , responseDeletePrincipalMapping $+--             newDeletePrincipalMappingResponse+--+--         , responseDeleteQuerySuggestionsBlockList $+--             newDeleteQuerySuggestionsBlockListResponse+--+--         , responseDeleteThesaurus $+--             newDeleteThesaurusResponse+--+--         , responseDescribeAccessControlConfiguration $+--             newDescribeAccessControlConfigurationResponse+--+--         , responseDescribeDataSource $+--             newDescribeDataSourceResponse+--+--         , responseDescribeExperience $+--             newDescribeExperienceResponse+--+--         , responseDescribeFaq $+--             newDescribeFaqResponse+--+--         , responseDescribeIndex $+--             newDescribeIndexResponse+--+--         , responseDescribePrincipalMapping $+--             newDescribePrincipalMappingResponse+--+--         , responseDescribeQuerySuggestionsBlockList $+--             newDescribeQuerySuggestionsBlockListResponse+--+--         , responseDescribeQuerySuggestionsConfig $+--             newDescribeQuerySuggestionsConfigResponse+--+--         , responseDescribeThesaurus $+--             newDescribeThesaurusResponse+--+--         , responseDisassociateEntitiesFromExperience $+--             newDisassociateEntitiesFromExperienceResponse+--+--         , responseDisassociatePersonasFromEntities $+--             newDisassociatePersonasFromEntitiesResponse+--+--         , responseGetQuerySuggestions $+--             newGetQuerySuggestionsResponse+--+--         , responseGetSnapshots $+--             newGetSnapshotsResponse+--+--         , responseListAccessControlConfigurations $+--             newListAccessControlConfigurationsResponse+--+--         , responseListDataSourceSyncJobs $+--             newListDataSourceSyncJobsResponse+--+--         , responseListDataSources $+--             newListDataSourcesResponse+--+--         , responseListEntityPersonas $+--             newListEntityPersonasResponse+--+--         , responseListExperienceEntities $+--             newListExperienceEntitiesResponse+--+--         , responseListExperiences $+--             newListExperiencesResponse+--+--         , responseListFaqs $+--             newListFaqsResponse+--+--         , responseListGroupsOlderThanOrderingId $+--             newListGroupsOlderThanOrderingIdResponse+--+--         , responseListIndices $+--             newListIndicesResponse+--+--         , responseListQuerySuggestionsBlockLists $+--             newListQuerySuggestionsBlockListsResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseListThesauri $+--             newListThesauriResponse+--+--         , responsePutPrincipalMapping $+--             newPutPrincipalMappingResponse+--+--         , responseQuery $+--             newQueryResponse+--+--         , responseStartDataSourceSyncJob $+--             newStartDataSourceSyncJobResponse+--+--         , responseStopDataSourceSyncJob $+--             newStopDataSourceSyncJobResponse+--+--         , responseSubmitFeedback $+--             newSubmitFeedbackResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateAccessControlConfiguration $+--             newUpdateAccessControlConfigurationResponse+--+--         , responseUpdateDataSource $+--             newUpdateDataSourceResponse+--+--         , responseUpdateExperience $+--             newUpdateExperienceResponse+--+--         , responseUpdateIndex $+--             newUpdateIndexResponse+--+--         , responseUpdateQuerySuggestionsBlockList $+--             newUpdateQuerySuggestionsBlockListResponse+--+--         , responseUpdateQuerySuggestionsConfig $+--             newUpdateQuerySuggestionsConfigResponse+--+--         , responseUpdateThesaurus $+--             newUpdateThesaurusResponse+--+--           ]+--     ]++-- Requests++requestAssociateEntitiesToExperience :: AssociateEntitiesToExperience -> TestTree+requestAssociateEntitiesToExperience =+  req+    "AssociateEntitiesToExperience"+    "fixture/AssociateEntitiesToExperience.yaml"++requestAssociatePersonasToEntities :: AssociatePersonasToEntities -> TestTree+requestAssociatePersonasToEntities =+  req+    "AssociatePersonasToEntities"+    "fixture/AssociatePersonasToEntities.yaml"++requestBatchDeleteDocument :: BatchDeleteDocument -> TestTree+requestBatchDeleteDocument =+  req+    "BatchDeleteDocument"+    "fixture/BatchDeleteDocument.yaml"++requestBatchGetDocumentStatus :: BatchGetDocumentStatus -> TestTree+requestBatchGetDocumentStatus =+  req+    "BatchGetDocumentStatus"+    "fixture/BatchGetDocumentStatus.yaml"++requestBatchPutDocument :: BatchPutDocument -> TestTree+requestBatchPutDocument =+  req+    "BatchPutDocument"+    "fixture/BatchPutDocument.yaml"++requestClearQuerySuggestions :: ClearQuerySuggestions -> TestTree+requestClearQuerySuggestions =+  req+    "ClearQuerySuggestions"+    "fixture/ClearQuerySuggestions.yaml"++requestCreateAccessControlConfiguration :: CreateAccessControlConfiguration -> TestTree+requestCreateAccessControlConfiguration =+  req+    "CreateAccessControlConfiguration"+    "fixture/CreateAccessControlConfiguration.yaml"++requestCreateDataSource :: CreateDataSource -> TestTree+requestCreateDataSource =+  req+    "CreateDataSource"+    "fixture/CreateDataSource.yaml"++requestCreateExperience :: CreateExperience -> TestTree+requestCreateExperience =+  req+    "CreateExperience"+    "fixture/CreateExperience.yaml"++requestCreateFaq :: CreateFaq -> TestTree+requestCreateFaq =+  req+    "CreateFaq"+    "fixture/CreateFaq.yaml"++requestCreateIndex :: CreateIndex -> TestTree+requestCreateIndex =+  req+    "CreateIndex"+    "fixture/CreateIndex.yaml"++requestCreateQuerySuggestionsBlockList :: CreateQuerySuggestionsBlockList -> TestTree+requestCreateQuerySuggestionsBlockList =+  req+    "CreateQuerySuggestionsBlockList"+    "fixture/CreateQuerySuggestionsBlockList.yaml"++requestCreateThesaurus :: CreateThesaurus -> TestTree+requestCreateThesaurus =+  req+    "CreateThesaurus"+    "fixture/CreateThesaurus.yaml"++requestDeleteAccessControlConfiguration :: DeleteAccessControlConfiguration -> TestTree+requestDeleteAccessControlConfiguration =+  req+    "DeleteAccessControlConfiguration"+    "fixture/DeleteAccessControlConfiguration.yaml"++requestDeleteDataSource :: DeleteDataSource -> TestTree+requestDeleteDataSource =+  req+    "DeleteDataSource"+    "fixture/DeleteDataSource.yaml"++requestDeleteExperience :: DeleteExperience -> TestTree+requestDeleteExperience =+  req+    "DeleteExperience"+    "fixture/DeleteExperience.yaml"++requestDeleteFaq :: DeleteFaq -> TestTree+requestDeleteFaq =+  req+    "DeleteFaq"+    "fixture/DeleteFaq.yaml"++requestDeleteIndex :: DeleteIndex -> TestTree+requestDeleteIndex =+  req+    "DeleteIndex"+    "fixture/DeleteIndex.yaml"++requestDeletePrincipalMapping :: DeletePrincipalMapping -> TestTree+requestDeletePrincipalMapping =+  req+    "DeletePrincipalMapping"+    "fixture/DeletePrincipalMapping.yaml"++requestDeleteQuerySuggestionsBlockList :: DeleteQuerySuggestionsBlockList -> TestTree+requestDeleteQuerySuggestionsBlockList =+  req+    "DeleteQuerySuggestionsBlockList"+    "fixture/DeleteQuerySuggestionsBlockList.yaml"++requestDeleteThesaurus :: DeleteThesaurus -> TestTree+requestDeleteThesaurus =+  req+    "DeleteThesaurus"+    "fixture/DeleteThesaurus.yaml"++requestDescribeAccessControlConfiguration :: DescribeAccessControlConfiguration -> TestTree+requestDescribeAccessControlConfiguration =+  req+    "DescribeAccessControlConfiguration"+    "fixture/DescribeAccessControlConfiguration.yaml"++requestDescribeDataSource :: DescribeDataSource -> TestTree+requestDescribeDataSource =+  req+    "DescribeDataSource"+    "fixture/DescribeDataSource.yaml"++requestDescribeExperience :: DescribeExperience -> TestTree+requestDescribeExperience =+  req+    "DescribeExperience"+    "fixture/DescribeExperience.yaml"++requestDescribeFaq :: DescribeFaq -> TestTree+requestDescribeFaq =+  req+    "DescribeFaq"+    "fixture/DescribeFaq.yaml"++requestDescribeIndex :: DescribeIndex -> TestTree+requestDescribeIndex =+  req+    "DescribeIndex"+    "fixture/DescribeIndex.yaml"++requestDescribePrincipalMapping :: DescribePrincipalMapping -> TestTree+requestDescribePrincipalMapping =+  req+    "DescribePrincipalMapping"+    "fixture/DescribePrincipalMapping.yaml"++requestDescribeQuerySuggestionsBlockList :: DescribeQuerySuggestionsBlockList -> TestTree+requestDescribeQuerySuggestionsBlockList =+  req+    "DescribeQuerySuggestionsBlockList"+    "fixture/DescribeQuerySuggestionsBlockList.yaml"++requestDescribeQuerySuggestionsConfig :: DescribeQuerySuggestionsConfig -> TestTree+requestDescribeQuerySuggestionsConfig =+  req+    "DescribeQuerySuggestionsConfig"+    "fixture/DescribeQuerySuggestionsConfig.yaml"++requestDescribeThesaurus :: DescribeThesaurus -> TestTree+requestDescribeThesaurus =+  req+    "DescribeThesaurus"+    "fixture/DescribeThesaurus.yaml"++requestDisassociateEntitiesFromExperience :: DisassociateEntitiesFromExperience -> TestTree+requestDisassociateEntitiesFromExperience =+  req+    "DisassociateEntitiesFromExperience"+    "fixture/DisassociateEntitiesFromExperience.yaml"++requestDisassociatePersonasFromEntities :: DisassociatePersonasFromEntities -> TestTree+requestDisassociatePersonasFromEntities =+  req+    "DisassociatePersonasFromEntities"+    "fixture/DisassociatePersonasFromEntities.yaml"++requestGetQuerySuggestions :: GetQuerySuggestions -> TestTree+requestGetQuerySuggestions =+  req+    "GetQuerySuggestions"+    "fixture/GetQuerySuggestions.yaml"++requestGetSnapshots :: GetSnapshots -> TestTree+requestGetSnapshots =+  req+    "GetSnapshots"+    "fixture/GetSnapshots.yaml"++requestListAccessControlConfigurations :: ListAccessControlConfigurations -> TestTree+requestListAccessControlConfigurations =+  req+    "ListAccessControlConfigurations"+    "fixture/ListAccessControlConfigurations.yaml"++requestListDataSourceSyncJobs :: ListDataSourceSyncJobs -> TestTree+requestListDataSourceSyncJobs =+  req+    "ListDataSourceSyncJobs"+    "fixture/ListDataSourceSyncJobs.yaml"++requestListDataSources :: ListDataSources -> TestTree+requestListDataSources =+  req+    "ListDataSources"+    "fixture/ListDataSources.yaml"++requestListEntityPersonas :: ListEntityPersonas -> TestTree+requestListEntityPersonas =+  req+    "ListEntityPersonas"+    "fixture/ListEntityPersonas.yaml"++requestListExperienceEntities :: ListExperienceEntities -> TestTree+requestListExperienceEntities =+  req+    "ListExperienceEntities"+    "fixture/ListExperienceEntities.yaml"++requestListExperiences :: ListExperiences -> TestTree+requestListExperiences =+  req+    "ListExperiences"+    "fixture/ListExperiences.yaml"++requestListFaqs :: ListFaqs -> TestTree+requestListFaqs =+  req+    "ListFaqs"+    "fixture/ListFaqs.yaml"++requestListGroupsOlderThanOrderingId :: ListGroupsOlderThanOrderingId -> TestTree+requestListGroupsOlderThanOrderingId =+  req+    "ListGroupsOlderThanOrderingId"+    "fixture/ListGroupsOlderThanOrderingId.yaml"++requestListIndices :: ListIndices -> TestTree+requestListIndices =+  req+    "ListIndices"+    "fixture/ListIndices.yaml"++requestListQuerySuggestionsBlockLists :: ListQuerySuggestionsBlockLists -> TestTree+requestListQuerySuggestionsBlockLists =+  req+    "ListQuerySuggestionsBlockLists"+    "fixture/ListQuerySuggestionsBlockLists.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestListThesauri :: ListThesauri -> TestTree+requestListThesauri =+  req+    "ListThesauri"+    "fixture/ListThesauri.yaml"++requestPutPrincipalMapping :: PutPrincipalMapping -> TestTree+requestPutPrincipalMapping =+  req+    "PutPrincipalMapping"+    "fixture/PutPrincipalMapping.yaml"++requestQuery :: Query -> TestTree+requestQuery =+  req+    "Query"+    "fixture/Query.yaml"++requestStartDataSourceSyncJob :: StartDataSourceSyncJob -> TestTree+requestStartDataSourceSyncJob =+  req+    "StartDataSourceSyncJob"+    "fixture/StartDataSourceSyncJob.yaml"++requestStopDataSourceSyncJob :: StopDataSourceSyncJob -> TestTree+requestStopDataSourceSyncJob =+  req+    "StopDataSourceSyncJob"+    "fixture/StopDataSourceSyncJob.yaml"++requestSubmitFeedback :: SubmitFeedback -> TestTree+requestSubmitFeedback =+  req+    "SubmitFeedback"+    "fixture/SubmitFeedback.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateAccessControlConfiguration :: UpdateAccessControlConfiguration -> TestTree+requestUpdateAccessControlConfiguration =+  req+    "UpdateAccessControlConfiguration"+    "fixture/UpdateAccessControlConfiguration.yaml"++requestUpdateDataSource :: UpdateDataSource -> TestTree+requestUpdateDataSource =+  req+    "UpdateDataSource"+    "fixture/UpdateDataSource.yaml"++requestUpdateExperience :: UpdateExperience -> TestTree+requestUpdateExperience =+  req+    "UpdateExperience"+    "fixture/UpdateExperience.yaml"++requestUpdateIndex :: UpdateIndex -> TestTree+requestUpdateIndex =+  req+    "UpdateIndex"+    "fixture/UpdateIndex.yaml"++requestUpdateQuerySuggestionsBlockList :: UpdateQuerySuggestionsBlockList -> TestTree+requestUpdateQuerySuggestionsBlockList =+  req+    "UpdateQuerySuggestionsBlockList"+    "fixture/UpdateQuerySuggestionsBlockList.yaml"++requestUpdateQuerySuggestionsConfig :: UpdateQuerySuggestionsConfig -> TestTree+requestUpdateQuerySuggestionsConfig =+  req+    "UpdateQuerySuggestionsConfig"+    "fixture/UpdateQuerySuggestionsConfig.yaml"++requestUpdateThesaurus :: UpdateThesaurus -> TestTree+requestUpdateThesaurus =+  req+    "UpdateThesaurus"+    "fixture/UpdateThesaurus.yaml"++-- Responses++responseAssociateEntitiesToExperience :: AssociateEntitiesToExperienceResponse -> TestTree+responseAssociateEntitiesToExperience =+  res+    "AssociateEntitiesToExperienceResponse"+    "fixture/AssociateEntitiesToExperienceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AssociateEntitiesToExperience)++responseAssociatePersonasToEntities :: AssociatePersonasToEntitiesResponse -> TestTree+responseAssociatePersonasToEntities =+  res+    "AssociatePersonasToEntitiesResponse"+    "fixture/AssociatePersonasToEntitiesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy AssociatePersonasToEntities)++responseBatchDeleteDocument :: BatchDeleteDocumentResponse -> TestTree+responseBatchDeleteDocument =+  res+    "BatchDeleteDocumentResponse"+    "fixture/BatchDeleteDocumentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchDeleteDocument)++responseBatchGetDocumentStatus :: BatchGetDocumentStatusResponse -> TestTree+responseBatchGetDocumentStatus =+  res+    "BatchGetDocumentStatusResponse"+    "fixture/BatchGetDocumentStatusResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchGetDocumentStatus)++responseBatchPutDocument :: BatchPutDocumentResponse -> TestTree+responseBatchPutDocument =+  res+    "BatchPutDocumentResponse"+    "fixture/BatchPutDocumentResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy BatchPutDocument)++responseClearQuerySuggestions :: ClearQuerySuggestionsResponse -> TestTree+responseClearQuerySuggestions =+  res+    "ClearQuerySuggestionsResponse"+    "fixture/ClearQuerySuggestionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ClearQuerySuggestions)++responseCreateAccessControlConfiguration :: CreateAccessControlConfigurationResponse -> TestTree+responseCreateAccessControlConfiguration =+  res+    "CreateAccessControlConfigurationResponse"+    "fixture/CreateAccessControlConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateAccessControlConfiguration)++responseCreateDataSource :: CreateDataSourceResponse -> TestTree+responseCreateDataSource =+  res+    "CreateDataSourceResponse"+    "fixture/CreateDataSourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateDataSource)++responseCreateExperience :: CreateExperienceResponse -> TestTree+responseCreateExperience =+  res+    "CreateExperienceResponse"+    "fixture/CreateExperienceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateExperience)++responseCreateFaq :: CreateFaqResponse -> TestTree+responseCreateFaq =+  res+    "CreateFaqResponse"+    "fixture/CreateFaqResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateFaq)++responseCreateIndex :: CreateIndexResponse -> TestTree+responseCreateIndex =+  res+    "CreateIndexResponse"+    "fixture/CreateIndexResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateIndex)++responseCreateQuerySuggestionsBlockList :: CreateQuerySuggestionsBlockListResponse -> TestTree+responseCreateQuerySuggestionsBlockList =+  res+    "CreateQuerySuggestionsBlockListResponse"+    "fixture/CreateQuerySuggestionsBlockListResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateQuerySuggestionsBlockList)++responseCreateThesaurus :: CreateThesaurusResponse -> TestTree+responseCreateThesaurus =+  res+    "CreateThesaurusResponse"+    "fixture/CreateThesaurusResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateThesaurus)++responseDeleteAccessControlConfiguration :: DeleteAccessControlConfigurationResponse -> TestTree+responseDeleteAccessControlConfiguration =+  res+    "DeleteAccessControlConfigurationResponse"+    "fixture/DeleteAccessControlConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteAccessControlConfiguration)++responseDeleteDataSource :: DeleteDataSourceResponse -> TestTree+responseDeleteDataSource =+  res+    "DeleteDataSourceResponse"+    "fixture/DeleteDataSourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteDataSource)++responseDeleteExperience :: DeleteExperienceResponse -> TestTree+responseDeleteExperience =+  res+    "DeleteExperienceResponse"+    "fixture/DeleteExperienceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteExperience)++responseDeleteFaq :: DeleteFaqResponse -> TestTree+responseDeleteFaq =+  res+    "DeleteFaqResponse"+    "fixture/DeleteFaqResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteFaq)++responseDeleteIndex :: DeleteIndexResponse -> TestTree+responseDeleteIndex =+  res+    "DeleteIndexResponse"+    "fixture/DeleteIndexResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteIndex)++responseDeletePrincipalMapping :: DeletePrincipalMappingResponse -> TestTree+responseDeletePrincipalMapping =+  res+    "DeletePrincipalMappingResponse"+    "fixture/DeletePrincipalMappingResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeletePrincipalMapping)++responseDeleteQuerySuggestionsBlockList :: DeleteQuerySuggestionsBlockListResponse -> TestTree+responseDeleteQuerySuggestionsBlockList =+  res+    "DeleteQuerySuggestionsBlockListResponse"+    "fixture/DeleteQuerySuggestionsBlockListResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteQuerySuggestionsBlockList)++responseDeleteThesaurus :: DeleteThesaurusResponse -> TestTree+responseDeleteThesaurus =+  res+    "DeleteThesaurusResponse"+    "fixture/DeleteThesaurusResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteThesaurus)++responseDescribeAccessControlConfiguration :: DescribeAccessControlConfigurationResponse -> TestTree+responseDescribeAccessControlConfiguration =+  res+    "DescribeAccessControlConfigurationResponse"+    "fixture/DescribeAccessControlConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeAccessControlConfiguration)++responseDescribeDataSource :: DescribeDataSourceResponse -> TestTree+responseDescribeDataSource =+  res+    "DescribeDataSourceResponse"+    "fixture/DescribeDataSourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeDataSource)++responseDescribeExperience :: DescribeExperienceResponse -> TestTree+responseDescribeExperience =+  res+    "DescribeExperienceResponse"+    "fixture/DescribeExperienceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeExperience)++responseDescribeFaq :: DescribeFaqResponse -> TestTree+responseDescribeFaq =+  res+    "DescribeFaqResponse"+    "fixture/DescribeFaqResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeFaq)++responseDescribeIndex :: DescribeIndexResponse -> TestTree+responseDescribeIndex =+  res+    "DescribeIndexResponse"+    "fixture/DescribeIndexResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeIndex)++responseDescribePrincipalMapping :: DescribePrincipalMappingResponse -> TestTree+responseDescribePrincipalMapping =+  res+    "DescribePrincipalMappingResponse"+    "fixture/DescribePrincipalMappingResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribePrincipalMapping)++responseDescribeQuerySuggestionsBlockList :: DescribeQuerySuggestionsBlockListResponse -> TestTree+responseDescribeQuerySuggestionsBlockList =+  res+    "DescribeQuerySuggestionsBlockListResponse"+    "fixture/DescribeQuerySuggestionsBlockListResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeQuerySuggestionsBlockList)++responseDescribeQuerySuggestionsConfig :: DescribeQuerySuggestionsConfigResponse -> TestTree+responseDescribeQuerySuggestionsConfig =+  res+    "DescribeQuerySuggestionsConfigResponse"+    "fixture/DescribeQuerySuggestionsConfigResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeQuerySuggestionsConfig)++responseDescribeThesaurus :: DescribeThesaurusResponse -> TestTree+responseDescribeThesaurus =+  res+    "DescribeThesaurusResponse"+    "fixture/DescribeThesaurusResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeThesaurus)++responseDisassociateEntitiesFromExperience :: DisassociateEntitiesFromExperienceResponse -> TestTree+responseDisassociateEntitiesFromExperience =+  res+    "DisassociateEntitiesFromExperienceResponse"+    "fixture/DisassociateEntitiesFromExperienceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisassociateEntitiesFromExperience)++responseDisassociatePersonasFromEntities :: DisassociatePersonasFromEntitiesResponse -> TestTree+responseDisassociatePersonasFromEntities =+  res+    "DisassociatePersonasFromEntitiesResponse"+    "fixture/DisassociatePersonasFromEntitiesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DisassociatePersonasFromEntities)++responseGetQuerySuggestions :: GetQuerySuggestionsResponse -> TestTree+responseGetQuerySuggestions =+  res+    "GetQuerySuggestionsResponse"+    "fixture/GetQuerySuggestionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetQuerySuggestions)++responseGetSnapshots :: GetSnapshotsResponse -> TestTree+responseGetSnapshots =+  res+    "GetSnapshotsResponse"+    "fixture/GetSnapshotsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetSnapshots)++responseListAccessControlConfigurations :: ListAccessControlConfigurationsResponse -> TestTree+responseListAccessControlConfigurations =+  res+    "ListAccessControlConfigurationsResponse"+    "fixture/ListAccessControlConfigurationsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListAccessControlConfigurations)++responseListDataSourceSyncJobs :: ListDataSourceSyncJobsResponse -> TestTree+responseListDataSourceSyncJobs =+  res+    "ListDataSourceSyncJobsResponse"+    "fixture/ListDataSourceSyncJobsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDataSourceSyncJobs)++responseListDataSources :: ListDataSourcesResponse -> TestTree+responseListDataSources =+  res+    "ListDataSourcesResponse"+    "fixture/ListDataSourcesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListDataSources)++responseListEntityPersonas :: ListEntityPersonasResponse -> TestTree+responseListEntityPersonas =+  res+    "ListEntityPersonasResponse"+    "fixture/ListEntityPersonasResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListEntityPersonas)++responseListExperienceEntities :: ListExperienceEntitiesResponse -> TestTree+responseListExperienceEntities =+  res+    "ListExperienceEntitiesResponse"+    "fixture/ListExperienceEntitiesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListExperienceEntities)++responseListExperiences :: ListExperiencesResponse -> TestTree+responseListExperiences =+  res+    "ListExperiencesResponse"+    "fixture/ListExperiencesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListExperiences)++responseListFaqs :: ListFaqsResponse -> TestTree+responseListFaqs =+  res+    "ListFaqsResponse"+    "fixture/ListFaqsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListFaqs)++responseListGroupsOlderThanOrderingId :: ListGroupsOlderThanOrderingIdResponse -> TestTree+responseListGroupsOlderThanOrderingId =+  res+    "ListGroupsOlderThanOrderingIdResponse"+    "fixture/ListGroupsOlderThanOrderingIdResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListGroupsOlderThanOrderingId)++responseListIndices :: ListIndicesResponse -> TestTree+responseListIndices =+  res+    "ListIndicesResponse"+    "fixture/ListIndicesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListIndices)++responseListQuerySuggestionsBlockLists :: ListQuerySuggestionsBlockListsResponse -> TestTree+responseListQuerySuggestionsBlockLists =+  res+    "ListQuerySuggestionsBlockListsResponse"+    "fixture/ListQuerySuggestionsBlockListsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListQuerySuggestionsBlockLists)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseListThesauri :: ListThesauriResponse -> TestTree+responseListThesauri =+  res+    "ListThesauriResponse"+    "fixture/ListThesauriResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListThesauri)++responsePutPrincipalMapping :: PutPrincipalMappingResponse -> TestTree+responsePutPrincipalMapping =+  res+    "PutPrincipalMappingResponse"+    "fixture/PutPrincipalMappingResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy PutPrincipalMapping)++responseQuery :: QueryResponse -> TestTree+responseQuery =+  res+    "QueryResponse"+    "fixture/QueryResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy Query)++responseStartDataSourceSyncJob :: StartDataSourceSyncJobResponse -> TestTree+responseStartDataSourceSyncJob =+  res+    "StartDataSourceSyncJobResponse"+    "fixture/StartDataSourceSyncJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartDataSourceSyncJob)++responseStopDataSourceSyncJob :: StopDataSourceSyncJobResponse -> TestTree+responseStopDataSourceSyncJob =+  res+    "StopDataSourceSyncJobResponse"+    "fixture/StopDataSourceSyncJobResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StopDataSourceSyncJob)++responseSubmitFeedback :: SubmitFeedbackResponse -> TestTree+responseSubmitFeedback =+  res+    "SubmitFeedbackResponse"+    "fixture/SubmitFeedbackResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy SubmitFeedback)++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)++responseUpdateAccessControlConfiguration :: UpdateAccessControlConfigurationResponse -> TestTree+responseUpdateAccessControlConfiguration =+  res+    "UpdateAccessControlConfigurationResponse"+    "fixture/UpdateAccessControlConfigurationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateAccessControlConfiguration)++responseUpdateDataSource :: UpdateDataSourceResponse -> TestTree+responseUpdateDataSource =+  res+    "UpdateDataSourceResponse"+    "fixture/UpdateDataSourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateDataSource)++responseUpdateExperience :: UpdateExperienceResponse -> TestTree+responseUpdateExperience =+  res+    "UpdateExperienceResponse"+    "fixture/UpdateExperienceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateExperience)++responseUpdateIndex :: UpdateIndexResponse -> TestTree+responseUpdateIndex =+  res+    "UpdateIndexResponse"+    "fixture/UpdateIndexResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateIndex)++responseUpdateQuerySuggestionsBlockList :: UpdateQuerySuggestionsBlockListResponse -> TestTree+responseUpdateQuerySuggestionsBlockList =+  res+    "UpdateQuerySuggestionsBlockListResponse"+    "fixture/UpdateQuerySuggestionsBlockListResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateQuerySuggestionsBlockList)++responseUpdateQuerySuggestionsConfig :: UpdateQuerySuggestionsConfigResponse -> TestTree+responseUpdateQuerySuggestionsConfig =+  res+    "UpdateQuerySuggestionsConfigResponse"+    "fixture/UpdateQuerySuggestionsConfigResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateQuerySuggestionsConfig)++responseUpdateThesaurus :: UpdateThesaurusResponse -> TestTree+responseUpdateThesaurus =+  res+    "UpdateThesaurusResponse"+    "fixture/UpdateThesaurusResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateThesaurus)
+ test/Test/Amazonka/Kendra.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.Kendra+-- Copyright   : (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.Kendra+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/Kendra/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.Kendra.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.Kendra.Internal where