{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE NoImplicitPrelude #-} {-# 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 or 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 ] )