{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE NoImplicitPrelude #-} {-# 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . 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 -- . secretArn :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'GitHubConfiguration' with all optional fields omitted. -- -- Use or 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . -- -- '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 -- . 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . -- 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 -- . 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 -- . 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) ] )