{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# 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.
    DataSourceConfiguration -> Maybe AlfrescoConfiguration
alfrescoConfiguration :: Prelude.Maybe AlfrescoConfiguration,
    -- | Provides the configuration information to connect to Box as your data
    -- source.
    DataSourceConfiguration -> Maybe BoxConfiguration
boxConfiguration :: Prelude.Maybe BoxConfiguration,
    -- | Provides the configuration information to connect to Confluence as your
    -- data source.
    DataSourceConfiguration -> Maybe ConfluenceConfiguration
confluenceConfiguration :: Prelude.Maybe ConfluenceConfiguration,
    -- | Provides the configuration information to connect to a database as your
    -- data source.
    DataSourceConfiguration -> Maybe DatabaseConfiguration
databaseConfiguration :: Prelude.Maybe DatabaseConfiguration,
    -- | Provides the configuration information to connect to Amazon FSx as your
    -- data source.
    DataSourceConfiguration -> Maybe FsxConfiguration
fsxConfiguration :: Prelude.Maybe FsxConfiguration,
    -- | Provides the configuration information to connect to GitHub as your data
    -- source.
    DataSourceConfiguration -> Maybe GitHubConfiguration
gitHubConfiguration :: Prelude.Maybe GitHubConfiguration,
    -- | Provides the configuration information to connect to Google Drive as
    -- your data source.
    DataSourceConfiguration -> Maybe GoogleDriveConfiguration
googleDriveConfiguration :: Prelude.Maybe GoogleDriveConfiguration,
    -- | Provides the configuration information to connect to Jira as your data
    -- source.
    DataSourceConfiguration -> Maybe JiraConfiguration
jiraConfiguration :: Prelude.Maybe JiraConfiguration,
    -- | Provides the configuration information to connect to Microsoft OneDrive
    -- as your data source.
    DataSourceConfiguration -> Maybe OneDriveConfiguration
oneDriveConfiguration :: Prelude.Maybe OneDriveConfiguration,
    -- | Provides the configuration information to connect to Quip as your data
    -- source.
    DataSourceConfiguration -> Maybe QuipConfiguration
quipConfiguration :: Prelude.Maybe QuipConfiguration,
    -- | Provides the configuration information to connect to an Amazon S3 bucket
    -- as your data source.
    DataSourceConfiguration -> Maybe S3DataSourceConfiguration
s3Configuration :: Prelude.Maybe S3DataSourceConfiguration,
    -- | Provides the configuration information to connect to Salesforce as your
    -- data source.
    DataSourceConfiguration -> Maybe SalesforceConfiguration
salesforceConfiguration :: Prelude.Maybe SalesforceConfiguration,
    -- | Provides the configuration information to connect to ServiceNow as your
    -- data source.
    DataSourceConfiguration -> Maybe ServiceNowConfiguration
serviceNowConfiguration :: Prelude.Maybe ServiceNowConfiguration,
    -- | Provides the configuration information to connect to Microsoft
    -- SharePoint as your data source.
    DataSourceConfiguration -> Maybe SharePointConfiguration
sharePointConfiguration :: Prelude.Maybe SharePointConfiguration,
    -- | Provides the configuration information to connect to Slack as your data
    -- source.
    DataSourceConfiguration -> Maybe SlackConfiguration
slackConfiguration :: Prelude.Maybe SlackConfiguration,
    -- | Provides a template for the configuration information to connect to your
    -- data source.
    DataSourceConfiguration -> Maybe TemplateConfiguration
templateConfiguration :: Prelude.Maybe TemplateConfiguration,
    DataSourceConfiguration -> Maybe WebCrawlerConfiguration
webCrawlerConfiguration :: Prelude.Maybe WebCrawlerConfiguration,
    -- | Provides the configuration information to connect to Amazon WorkDocs as
    -- your data source.
    DataSourceConfiguration -> Maybe WorkDocsConfiguration
workDocsConfiguration :: Prelude.Maybe WorkDocsConfiguration
  }
  deriving (DataSourceConfiguration -> DataSourceConfiguration -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DataSourceConfiguration -> DataSourceConfiguration -> Bool
$c/= :: DataSourceConfiguration -> DataSourceConfiguration -> Bool
== :: DataSourceConfiguration -> DataSourceConfiguration -> Bool
$c== :: DataSourceConfiguration -> DataSourceConfiguration -> Bool
Prelude.Eq, ReadPrec [DataSourceConfiguration]
ReadPrec DataSourceConfiguration
Int -> ReadS DataSourceConfiguration
ReadS [DataSourceConfiguration]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DataSourceConfiguration]
$creadListPrec :: ReadPrec [DataSourceConfiguration]
readPrec :: ReadPrec DataSourceConfiguration
$creadPrec :: ReadPrec DataSourceConfiguration
readList :: ReadS [DataSourceConfiguration]
$creadList :: ReadS [DataSourceConfiguration]
readsPrec :: Int -> ReadS DataSourceConfiguration
$creadsPrec :: Int -> ReadS DataSourceConfiguration
Prelude.Read, Int -> DataSourceConfiguration -> ShowS
[DataSourceConfiguration] -> ShowS
DataSourceConfiguration -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DataSourceConfiguration] -> ShowS
$cshowList :: [DataSourceConfiguration] -> ShowS
show :: DataSourceConfiguration -> String
$cshow :: DataSourceConfiguration -> String
showsPrec :: Int -> DataSourceConfiguration -> ShowS
$cshowsPrec :: Int -> DataSourceConfiguration -> ShowS
Prelude.Show, forall x. Rep DataSourceConfiguration x -> DataSourceConfiguration
forall x. DataSourceConfiguration -> Rep DataSourceConfiguration x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DataSourceConfiguration x -> DataSourceConfiguration
$cfrom :: forall x. DataSourceConfiguration -> Rep DataSourceConfiguration x
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
newDataSourceConfiguration =
  DataSourceConfiguration'
    { $sel:alfrescoConfiguration:DataSourceConfiguration' :: Maybe AlfrescoConfiguration
alfrescoConfiguration =
        forall a. Maybe a
Prelude.Nothing,
      $sel:boxConfiguration:DataSourceConfiguration' :: Maybe BoxConfiguration
boxConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:confluenceConfiguration:DataSourceConfiguration' :: Maybe ConfluenceConfiguration
confluenceConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:databaseConfiguration:DataSourceConfiguration' :: Maybe DatabaseConfiguration
databaseConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:fsxConfiguration:DataSourceConfiguration' :: Maybe FsxConfiguration
fsxConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:gitHubConfiguration:DataSourceConfiguration' :: Maybe GitHubConfiguration
gitHubConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:googleDriveConfiguration:DataSourceConfiguration' :: Maybe GoogleDriveConfiguration
googleDriveConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:jiraConfiguration:DataSourceConfiguration' :: Maybe JiraConfiguration
jiraConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:oneDriveConfiguration:DataSourceConfiguration' :: Maybe OneDriveConfiguration
oneDriveConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:quipConfiguration:DataSourceConfiguration' :: Maybe QuipConfiguration
quipConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:s3Configuration:DataSourceConfiguration' :: Maybe S3DataSourceConfiguration
s3Configuration = forall a. Maybe a
Prelude.Nothing,
      $sel:salesforceConfiguration:DataSourceConfiguration' :: Maybe SalesforceConfiguration
salesforceConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:serviceNowConfiguration:DataSourceConfiguration' :: Maybe ServiceNowConfiguration
serviceNowConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:sharePointConfiguration:DataSourceConfiguration' :: Maybe SharePointConfiguration
sharePointConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:slackConfiguration:DataSourceConfiguration' :: Maybe SlackConfiguration
slackConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:templateConfiguration:DataSourceConfiguration' :: Maybe TemplateConfiguration
templateConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:webCrawlerConfiguration:DataSourceConfiguration' :: Maybe WebCrawlerConfiguration
webCrawlerConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:workDocsConfiguration:DataSourceConfiguration' :: Maybe WorkDocsConfiguration
workDocsConfiguration = forall a. Maybe a
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' DataSourceConfiguration (Maybe AlfrescoConfiguration)
dataSourceConfiguration_alfrescoConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe AlfrescoConfiguration
alfrescoConfiguration :: Maybe AlfrescoConfiguration
$sel:alfrescoConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe AlfrescoConfiguration
alfrescoConfiguration} -> Maybe AlfrescoConfiguration
alfrescoConfiguration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe AlfrescoConfiguration
a -> DataSourceConfiguration
s {$sel:alfrescoConfiguration:DataSourceConfiguration' :: Maybe AlfrescoConfiguration
alfrescoConfiguration = Maybe 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' DataSourceConfiguration (Maybe BoxConfiguration)
dataSourceConfiguration_boxConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe BoxConfiguration
boxConfiguration :: Maybe BoxConfiguration
$sel:boxConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe BoxConfiguration
boxConfiguration} -> Maybe BoxConfiguration
boxConfiguration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe BoxConfiguration
a -> DataSourceConfiguration
s {$sel:boxConfiguration:DataSourceConfiguration' :: Maybe BoxConfiguration
boxConfiguration = Maybe 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' DataSourceConfiguration (Maybe ConfluenceConfiguration)
dataSourceConfiguration_confluenceConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe ConfluenceConfiguration
confluenceConfiguration :: Maybe ConfluenceConfiguration
$sel:confluenceConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe ConfluenceConfiguration
confluenceConfiguration} -> Maybe ConfluenceConfiguration
confluenceConfiguration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe ConfluenceConfiguration
a -> DataSourceConfiguration
s {$sel:confluenceConfiguration:DataSourceConfiguration' :: Maybe ConfluenceConfiguration
confluenceConfiguration = Maybe 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' DataSourceConfiguration (Maybe DatabaseConfiguration)
dataSourceConfiguration_databaseConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe DatabaseConfiguration
databaseConfiguration :: Maybe DatabaseConfiguration
$sel:databaseConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe DatabaseConfiguration
databaseConfiguration} -> Maybe DatabaseConfiguration
databaseConfiguration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe DatabaseConfiguration
a -> DataSourceConfiguration
s {$sel:databaseConfiguration:DataSourceConfiguration' :: Maybe DatabaseConfiguration
databaseConfiguration = Maybe 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' DataSourceConfiguration (Maybe FsxConfiguration)
dataSourceConfiguration_fsxConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe FsxConfiguration
fsxConfiguration :: Maybe FsxConfiguration
$sel:fsxConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe FsxConfiguration
fsxConfiguration} -> Maybe FsxConfiguration
fsxConfiguration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe FsxConfiguration
a -> DataSourceConfiguration
s {$sel:fsxConfiguration:DataSourceConfiguration' :: Maybe FsxConfiguration
fsxConfiguration = Maybe 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' DataSourceConfiguration (Maybe GitHubConfiguration)
dataSourceConfiguration_gitHubConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe GitHubConfiguration
gitHubConfiguration :: Maybe GitHubConfiguration
$sel:gitHubConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe GitHubConfiguration
gitHubConfiguration} -> Maybe GitHubConfiguration
gitHubConfiguration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe GitHubConfiguration
a -> DataSourceConfiguration
s {$sel:gitHubConfiguration:DataSourceConfiguration' :: Maybe GitHubConfiguration
gitHubConfiguration = Maybe 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' DataSourceConfiguration (Maybe GoogleDriveConfiguration)
dataSourceConfiguration_googleDriveConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe GoogleDriveConfiguration
googleDriveConfiguration :: Maybe GoogleDriveConfiguration
$sel:googleDriveConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe GoogleDriveConfiguration
googleDriveConfiguration} -> Maybe GoogleDriveConfiguration
googleDriveConfiguration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe GoogleDriveConfiguration
a -> DataSourceConfiguration
s {$sel:googleDriveConfiguration:DataSourceConfiguration' :: Maybe GoogleDriveConfiguration
googleDriveConfiguration = Maybe 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' DataSourceConfiguration (Maybe JiraConfiguration)
dataSourceConfiguration_jiraConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe JiraConfiguration
jiraConfiguration :: Maybe JiraConfiguration
$sel:jiraConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe JiraConfiguration
jiraConfiguration} -> Maybe JiraConfiguration
jiraConfiguration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe JiraConfiguration
a -> DataSourceConfiguration
s {$sel:jiraConfiguration:DataSourceConfiguration' :: Maybe JiraConfiguration
jiraConfiguration = Maybe 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' DataSourceConfiguration (Maybe OneDriveConfiguration)
dataSourceConfiguration_oneDriveConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe OneDriveConfiguration
oneDriveConfiguration :: Maybe OneDriveConfiguration
$sel:oneDriveConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe OneDriveConfiguration
oneDriveConfiguration} -> Maybe OneDriveConfiguration
oneDriveConfiguration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe OneDriveConfiguration
a -> DataSourceConfiguration
s {$sel:oneDriveConfiguration:DataSourceConfiguration' :: Maybe OneDriveConfiguration
oneDriveConfiguration = Maybe 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' DataSourceConfiguration (Maybe QuipConfiguration)
dataSourceConfiguration_quipConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe QuipConfiguration
quipConfiguration :: Maybe QuipConfiguration
$sel:quipConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe QuipConfiguration
quipConfiguration} -> Maybe QuipConfiguration
quipConfiguration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe QuipConfiguration
a -> DataSourceConfiguration
s {$sel:quipConfiguration:DataSourceConfiguration' :: Maybe QuipConfiguration
quipConfiguration = Maybe 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' DataSourceConfiguration (Maybe S3DataSourceConfiguration)
dataSourceConfiguration_s3Configuration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe S3DataSourceConfiguration
s3Configuration :: Maybe S3DataSourceConfiguration
$sel:s3Configuration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe S3DataSourceConfiguration
s3Configuration} -> Maybe S3DataSourceConfiguration
s3Configuration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe S3DataSourceConfiguration
a -> DataSourceConfiguration
s {$sel:s3Configuration:DataSourceConfiguration' :: Maybe S3DataSourceConfiguration
s3Configuration = Maybe S3DataSourceConfiguration
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' DataSourceConfiguration (Maybe SalesforceConfiguration)
dataSourceConfiguration_salesforceConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe SalesforceConfiguration
salesforceConfiguration :: Maybe SalesforceConfiguration
$sel:salesforceConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe SalesforceConfiguration
salesforceConfiguration} -> Maybe SalesforceConfiguration
salesforceConfiguration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe SalesforceConfiguration
a -> DataSourceConfiguration
s {$sel:salesforceConfiguration:DataSourceConfiguration' :: Maybe SalesforceConfiguration
salesforceConfiguration = Maybe 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' DataSourceConfiguration (Maybe ServiceNowConfiguration)
dataSourceConfiguration_serviceNowConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe ServiceNowConfiguration
serviceNowConfiguration :: Maybe ServiceNowConfiguration
$sel:serviceNowConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe ServiceNowConfiguration
serviceNowConfiguration} -> Maybe ServiceNowConfiguration
serviceNowConfiguration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe ServiceNowConfiguration
a -> DataSourceConfiguration
s {$sel:serviceNowConfiguration:DataSourceConfiguration' :: Maybe ServiceNowConfiguration
serviceNowConfiguration = Maybe 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' DataSourceConfiguration (Maybe SharePointConfiguration)
dataSourceConfiguration_sharePointConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe SharePointConfiguration
sharePointConfiguration :: Maybe SharePointConfiguration
$sel:sharePointConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe SharePointConfiguration
sharePointConfiguration} -> Maybe SharePointConfiguration
sharePointConfiguration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe SharePointConfiguration
a -> DataSourceConfiguration
s {$sel:sharePointConfiguration:DataSourceConfiguration' :: Maybe SharePointConfiguration
sharePointConfiguration = Maybe 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' DataSourceConfiguration (Maybe SlackConfiguration)
dataSourceConfiguration_slackConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe SlackConfiguration
slackConfiguration :: Maybe SlackConfiguration
$sel:slackConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe SlackConfiguration
slackConfiguration} -> Maybe SlackConfiguration
slackConfiguration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe SlackConfiguration
a -> DataSourceConfiguration
s {$sel:slackConfiguration:DataSourceConfiguration' :: Maybe SlackConfiguration
slackConfiguration = Maybe 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' DataSourceConfiguration (Maybe TemplateConfiguration)
dataSourceConfiguration_templateConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe TemplateConfiguration
templateConfiguration :: Maybe TemplateConfiguration
$sel:templateConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe TemplateConfiguration
templateConfiguration} -> Maybe TemplateConfiguration
templateConfiguration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe TemplateConfiguration
a -> DataSourceConfiguration
s {$sel:templateConfiguration:DataSourceConfiguration' :: Maybe TemplateConfiguration
templateConfiguration = Maybe TemplateConfiguration
a} :: DataSourceConfiguration)

-- | Undocumented member.
dataSourceConfiguration_webCrawlerConfiguration :: Lens.Lens' DataSourceConfiguration (Prelude.Maybe WebCrawlerConfiguration)
dataSourceConfiguration_webCrawlerConfiguration :: Lens' DataSourceConfiguration (Maybe WebCrawlerConfiguration)
dataSourceConfiguration_webCrawlerConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe WebCrawlerConfiguration
webCrawlerConfiguration :: Maybe WebCrawlerConfiguration
$sel:webCrawlerConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe WebCrawlerConfiguration
webCrawlerConfiguration} -> Maybe WebCrawlerConfiguration
webCrawlerConfiguration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe WebCrawlerConfiguration
a -> DataSourceConfiguration
s {$sel:webCrawlerConfiguration:DataSourceConfiguration' :: Maybe WebCrawlerConfiguration
webCrawlerConfiguration = Maybe 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' DataSourceConfiguration (Maybe WorkDocsConfiguration)
dataSourceConfiguration_workDocsConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DataSourceConfiguration' {Maybe WorkDocsConfiguration
workDocsConfiguration :: Maybe WorkDocsConfiguration
$sel:workDocsConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe WorkDocsConfiguration
workDocsConfiguration} -> Maybe WorkDocsConfiguration
workDocsConfiguration) (\s :: DataSourceConfiguration
s@DataSourceConfiguration' {} Maybe WorkDocsConfiguration
a -> DataSourceConfiguration
s {$sel:workDocsConfiguration:DataSourceConfiguration' :: Maybe WorkDocsConfiguration
workDocsConfiguration = Maybe WorkDocsConfiguration
a} :: DataSourceConfiguration)

instance Data.FromJSON DataSourceConfiguration where
  parseJSON :: Value -> Parser DataSourceConfiguration
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"DataSourceConfiguration"
      ( \Object
x ->
          Maybe AlfrescoConfiguration
-> Maybe BoxConfiguration
-> Maybe ConfluenceConfiguration
-> Maybe DatabaseConfiguration
-> Maybe FsxConfiguration
-> Maybe GitHubConfiguration
-> Maybe GoogleDriveConfiguration
-> Maybe JiraConfiguration
-> Maybe OneDriveConfiguration
-> Maybe QuipConfiguration
-> Maybe S3DataSourceConfiguration
-> Maybe SalesforceConfiguration
-> Maybe ServiceNowConfiguration
-> Maybe SharePointConfiguration
-> Maybe SlackConfiguration
-> Maybe TemplateConfiguration
-> Maybe WebCrawlerConfiguration
-> Maybe WorkDocsConfiguration
-> DataSourceConfiguration
DataSourceConfiguration'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AlfrescoConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"BoxConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ConfluenceConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DatabaseConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"FsxConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"GitHubConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"GoogleDriveConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"JiraConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"OneDriveConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"QuipConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"S3Configuration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SalesforceConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ServiceNowConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SharePointConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"SlackConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"TemplateConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"WebCrawlerConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"WorkDocsConfiguration")
      )

instance Prelude.Hashable DataSourceConfiguration where
  hashWithSalt :: Int -> DataSourceConfiguration -> Int
hashWithSalt Int
_salt DataSourceConfiguration' {Maybe BoxConfiguration
Maybe FsxConfiguration
Maybe GoogleDriveConfiguration
Maybe JiraConfiguration
Maybe ConfluenceConfiguration
Maybe QuipConfiguration
Maybe S3DataSourceConfiguration
Maybe OneDriveConfiguration
Maybe AlfrescoConfiguration
Maybe SalesforceConfiguration
Maybe ServiceNowConfiguration
Maybe SharePointConfiguration
Maybe SlackConfiguration
Maybe DatabaseConfiguration
Maybe TemplateConfiguration
Maybe GitHubConfiguration
Maybe WebCrawlerConfiguration
Maybe WorkDocsConfiguration
workDocsConfiguration :: Maybe WorkDocsConfiguration
webCrawlerConfiguration :: Maybe WebCrawlerConfiguration
templateConfiguration :: Maybe TemplateConfiguration
slackConfiguration :: Maybe SlackConfiguration
sharePointConfiguration :: Maybe SharePointConfiguration
serviceNowConfiguration :: Maybe ServiceNowConfiguration
salesforceConfiguration :: Maybe SalesforceConfiguration
s3Configuration :: Maybe S3DataSourceConfiguration
quipConfiguration :: Maybe QuipConfiguration
oneDriveConfiguration :: Maybe OneDriveConfiguration
jiraConfiguration :: Maybe JiraConfiguration
googleDriveConfiguration :: Maybe GoogleDriveConfiguration
gitHubConfiguration :: Maybe GitHubConfiguration
fsxConfiguration :: Maybe FsxConfiguration
databaseConfiguration :: Maybe DatabaseConfiguration
confluenceConfiguration :: Maybe ConfluenceConfiguration
boxConfiguration :: Maybe BoxConfiguration
alfrescoConfiguration :: Maybe AlfrescoConfiguration
$sel:workDocsConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe WorkDocsConfiguration
$sel:webCrawlerConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe WebCrawlerConfiguration
$sel:templateConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe TemplateConfiguration
$sel:slackConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe SlackConfiguration
$sel:sharePointConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe SharePointConfiguration
$sel:serviceNowConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe ServiceNowConfiguration
$sel:salesforceConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe SalesforceConfiguration
$sel:s3Configuration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe S3DataSourceConfiguration
$sel:quipConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe QuipConfiguration
$sel:oneDriveConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe OneDriveConfiguration
$sel:jiraConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe JiraConfiguration
$sel:googleDriveConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe GoogleDriveConfiguration
$sel:gitHubConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe GitHubConfiguration
$sel:fsxConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe FsxConfiguration
$sel:databaseConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe DatabaseConfiguration
$sel:confluenceConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe ConfluenceConfiguration
$sel:boxConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe BoxConfiguration
$sel:alfrescoConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe AlfrescoConfiguration
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AlfrescoConfiguration
alfrescoConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BoxConfiguration
boxConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ConfluenceConfiguration
confluenceConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DatabaseConfiguration
databaseConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FsxConfiguration
fsxConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe GitHubConfiguration
gitHubConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe GoogleDriveConfiguration
googleDriveConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe JiraConfiguration
jiraConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe OneDriveConfiguration
oneDriveConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe QuipConfiguration
quipConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe S3DataSourceConfiguration
s3Configuration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SalesforceConfiguration
salesforceConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ServiceNowConfiguration
serviceNowConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SharePointConfiguration
sharePointConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SlackConfiguration
slackConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TemplateConfiguration
templateConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WebCrawlerConfiguration
webCrawlerConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WorkDocsConfiguration
workDocsConfiguration

instance Prelude.NFData DataSourceConfiguration where
  rnf :: DataSourceConfiguration -> ()
rnf DataSourceConfiguration' {Maybe BoxConfiguration
Maybe FsxConfiguration
Maybe GoogleDriveConfiguration
Maybe JiraConfiguration
Maybe ConfluenceConfiguration
Maybe QuipConfiguration
Maybe S3DataSourceConfiguration
Maybe OneDriveConfiguration
Maybe AlfrescoConfiguration
Maybe SalesforceConfiguration
Maybe ServiceNowConfiguration
Maybe SharePointConfiguration
Maybe SlackConfiguration
Maybe DatabaseConfiguration
Maybe TemplateConfiguration
Maybe GitHubConfiguration
Maybe WebCrawlerConfiguration
Maybe WorkDocsConfiguration
workDocsConfiguration :: Maybe WorkDocsConfiguration
webCrawlerConfiguration :: Maybe WebCrawlerConfiguration
templateConfiguration :: Maybe TemplateConfiguration
slackConfiguration :: Maybe SlackConfiguration
sharePointConfiguration :: Maybe SharePointConfiguration
serviceNowConfiguration :: Maybe ServiceNowConfiguration
salesforceConfiguration :: Maybe SalesforceConfiguration
s3Configuration :: Maybe S3DataSourceConfiguration
quipConfiguration :: Maybe QuipConfiguration
oneDriveConfiguration :: Maybe OneDriveConfiguration
jiraConfiguration :: Maybe JiraConfiguration
googleDriveConfiguration :: Maybe GoogleDriveConfiguration
gitHubConfiguration :: Maybe GitHubConfiguration
fsxConfiguration :: Maybe FsxConfiguration
databaseConfiguration :: Maybe DatabaseConfiguration
confluenceConfiguration :: Maybe ConfluenceConfiguration
boxConfiguration :: Maybe BoxConfiguration
alfrescoConfiguration :: Maybe AlfrescoConfiguration
$sel:workDocsConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe WorkDocsConfiguration
$sel:webCrawlerConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe WebCrawlerConfiguration
$sel:templateConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe TemplateConfiguration
$sel:slackConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe SlackConfiguration
$sel:sharePointConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe SharePointConfiguration
$sel:serviceNowConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe ServiceNowConfiguration
$sel:salesforceConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe SalesforceConfiguration
$sel:s3Configuration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe S3DataSourceConfiguration
$sel:quipConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe QuipConfiguration
$sel:oneDriveConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe OneDriveConfiguration
$sel:jiraConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe JiraConfiguration
$sel:googleDriveConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe GoogleDriveConfiguration
$sel:gitHubConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe GitHubConfiguration
$sel:fsxConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe FsxConfiguration
$sel:databaseConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe DatabaseConfiguration
$sel:confluenceConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe ConfluenceConfiguration
$sel:boxConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe BoxConfiguration
$sel:alfrescoConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe AlfrescoConfiguration
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe AlfrescoConfiguration
alfrescoConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe BoxConfiguration
boxConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ConfluenceConfiguration
confluenceConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DatabaseConfiguration
databaseConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FsxConfiguration
fsxConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe GitHubConfiguration
gitHubConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe GoogleDriveConfiguration
googleDriveConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe JiraConfiguration
jiraConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe OneDriveConfiguration
oneDriveConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe QuipConfiguration
quipConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe S3DataSourceConfiguration
s3Configuration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SalesforceConfiguration
salesforceConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ServiceNowConfiguration
serviceNowConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SharePointConfiguration
sharePointConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SlackConfiguration
slackConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TemplateConfiguration
templateConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WebCrawlerConfiguration
webCrawlerConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WorkDocsConfiguration
workDocsConfiguration

instance Data.ToJSON DataSourceConfiguration where
  toJSON :: DataSourceConfiguration -> Value
toJSON DataSourceConfiguration' {Maybe BoxConfiguration
Maybe FsxConfiguration
Maybe GoogleDriveConfiguration
Maybe JiraConfiguration
Maybe ConfluenceConfiguration
Maybe QuipConfiguration
Maybe S3DataSourceConfiguration
Maybe OneDriveConfiguration
Maybe AlfrescoConfiguration
Maybe SalesforceConfiguration
Maybe ServiceNowConfiguration
Maybe SharePointConfiguration
Maybe SlackConfiguration
Maybe DatabaseConfiguration
Maybe TemplateConfiguration
Maybe GitHubConfiguration
Maybe WebCrawlerConfiguration
Maybe WorkDocsConfiguration
workDocsConfiguration :: Maybe WorkDocsConfiguration
webCrawlerConfiguration :: Maybe WebCrawlerConfiguration
templateConfiguration :: Maybe TemplateConfiguration
slackConfiguration :: Maybe SlackConfiguration
sharePointConfiguration :: Maybe SharePointConfiguration
serviceNowConfiguration :: Maybe ServiceNowConfiguration
salesforceConfiguration :: Maybe SalesforceConfiguration
s3Configuration :: Maybe S3DataSourceConfiguration
quipConfiguration :: Maybe QuipConfiguration
oneDriveConfiguration :: Maybe OneDriveConfiguration
jiraConfiguration :: Maybe JiraConfiguration
googleDriveConfiguration :: Maybe GoogleDriveConfiguration
gitHubConfiguration :: Maybe GitHubConfiguration
fsxConfiguration :: Maybe FsxConfiguration
databaseConfiguration :: Maybe DatabaseConfiguration
confluenceConfiguration :: Maybe ConfluenceConfiguration
boxConfiguration :: Maybe BoxConfiguration
alfrescoConfiguration :: Maybe AlfrescoConfiguration
$sel:workDocsConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe WorkDocsConfiguration
$sel:webCrawlerConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe WebCrawlerConfiguration
$sel:templateConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe TemplateConfiguration
$sel:slackConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe SlackConfiguration
$sel:sharePointConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe SharePointConfiguration
$sel:serviceNowConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe ServiceNowConfiguration
$sel:salesforceConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe SalesforceConfiguration
$sel:s3Configuration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe S3DataSourceConfiguration
$sel:quipConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe QuipConfiguration
$sel:oneDriveConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe OneDriveConfiguration
$sel:jiraConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe JiraConfiguration
$sel:googleDriveConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe GoogleDriveConfiguration
$sel:gitHubConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe GitHubConfiguration
$sel:fsxConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe FsxConfiguration
$sel:databaseConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe DatabaseConfiguration
$sel:confluenceConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe ConfluenceConfiguration
$sel:boxConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe BoxConfiguration
$sel:alfrescoConfiguration:DataSourceConfiguration' :: DataSourceConfiguration -> Maybe AlfrescoConfiguration
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"AlfrescoConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AlfrescoConfiguration
alfrescoConfiguration,
            (Key
"BoxConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe BoxConfiguration
boxConfiguration,
            (Key
"ConfluenceConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ConfluenceConfiguration
confluenceConfiguration,
            (Key
"DatabaseConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DatabaseConfiguration
databaseConfiguration,
            (Key
"FsxConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe FsxConfiguration
fsxConfiguration,
            (Key
"GitHubConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe GitHubConfiguration
gitHubConfiguration,
            (Key
"GoogleDriveConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe GoogleDriveConfiguration
googleDriveConfiguration,
            (Key
"JiraConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe JiraConfiguration
jiraConfiguration,
            (Key
"OneDriveConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe OneDriveConfiguration
oneDriveConfiguration,
            (Key
"QuipConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe QuipConfiguration
quipConfiguration,
            (Key
"S3Configuration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe S3DataSourceConfiguration
s3Configuration,
            (Key
"SalesforceConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe SalesforceConfiguration
salesforceConfiguration,
            (Key
"ServiceNowConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ServiceNowConfiguration
serviceNowConfiguration,
            (Key
"SharePointConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe SharePointConfiguration
sharePointConfiguration,
            (Key
"SlackConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe SlackConfiguration
slackConfiguration,
            (Key
"TemplateConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TemplateConfiguration
templateConfiguration,
            (Key
"WebCrawlerConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe WebCrawlerConfiguration
webCrawlerConfiguration,
            (Key
"WorkDocsConfiguration" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe WorkDocsConfiguration
workDocsConfiguration
          ]
      )