amazonka-kendra-2.0: gen/Amazonka/Kendra/Types/SharePointConfiguration.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Amazonka.Kendra.Types.SharePointConfiguration
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Kendra.Types.SharePointConfiguration where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.Kendra.Types.DataSourceToIndexFieldMapping
import Amazonka.Kendra.Types.DataSourceVpcConfiguration
import Amazonka.Kendra.Types.ProxyConfiguration
import Amazonka.Kendra.Types.S3Path
import Amazonka.Kendra.Types.SharePointOnlineAuthenticationType
import Amazonka.Kendra.Types.SharePointVersion
import qualified Amazonka.Prelude as Prelude
-- | Provides the configuration information to connect to Microsoft
-- SharePoint as your data source.
--
-- /See:/ 'newSharePointConfiguration' smart constructor.
data SharePointConfiguration = SharePointConfiguration'
{ -- | Whether you want to connect to SharePoint using basic authentication of
-- user name and password, or OAuth authentication of user name, password,
-- client ID, and client secret. You can use OAuth authentication for
-- SharePoint Online.
authenticationType :: Prelude.Maybe SharePointOnlineAuthenticationType,
-- | @TRUE@ to index document attachments.
crawlAttachments :: Prelude.Maybe Prelude.Bool,
-- | @TRUE@ to disable local groups information.
disableLocalGroups :: Prelude.Maybe Prelude.Bool,
-- | The Microsoft SharePoint attribute field that contains the title of the
-- document.
documentTitleFieldName :: Prelude.Maybe Prelude.Text,
-- | A list of regular expression patterns to exclude certain documents in
-- your SharePoint. Documents that match the patterns are excluded from the
-- index. Documents that don\'t match the patterns are included in the
-- index. If a document matches both an inclusion and exclusion pattern,
-- the exclusion pattern takes precedence and the document isn\'t included
-- in the index.
--
-- The regex applies to the display URL of the SharePoint document.
exclusionPatterns :: Prelude.Maybe [Prelude.Text],
-- | A list of @DataSourceToIndexFieldMapping@ objects that map SharePoint
-- data source attributes or field names to Amazon Kendra index field
-- names. To create custom fields, use the @UpdateIndex@ API before you map
-- to SharePoint fields. For more information, see
-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.
-- The SharePoint data source field names must exist in your SharePoint
-- custom metadata.
fieldMappings :: Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping),
-- | A list of regular expression patterns to include certain documents in
-- your SharePoint. Documents that match the patterns are included in the
-- index. Documents that don\'t match the patterns are excluded from the
-- index. If a document matches both an inclusion and exclusion pattern,
-- the exclusion pattern takes precedence and the document isn\'t included
-- in the index.
--
-- The regex applies to the display URL of the SharePoint document.
inclusionPatterns :: Prelude.Maybe [Prelude.Text],
-- | Configuration information to connect to your Microsoft SharePoint site
-- URLs via instance via a web proxy. You can use this option for
-- SharePoint Server.
--
-- You must provide the website host name and port number. For example, the
-- host name of /https:\/\/a.example.com\/page1.html/ is \"a.example.com\"
-- and the port is 443, the standard port for HTTPS.
--
-- Web proxy credentials are optional and you can use them to connect to a
-- web proxy server that requires basic authentication of user name and
-- password. To store web proxy credentials, you use a secret in Secrets
-- Manager.
--
-- It is recommended that you follow best security practices when
-- configuring your web proxy. This includes setting up throttling, setting
-- up logging and monitoring, and applying security patches on a regular
-- basis. If you use your web proxy with multiple data sources, sync jobs
-- that occur at the same time could strain the load on your proxy. It is
-- recommended you prepare your proxy beforehand for any security and load
-- requirements.
proxyConfiguration :: Prelude.Maybe ProxyConfiguration,
-- | The path to the SSL certificate stored in an Amazon S3 bucket. You use
-- this to connect to SharePoint Server if you require a secure SSL
-- connection.
--
-- You can simply generate a self-signed X509 certificate on any computer
-- using OpenSSL. For an example of using OpenSSL to create an X509
-- certificate, see
-- <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl.html Create and sign an X509 certificate>.
sslCertificateS3Path :: Prelude.Maybe S3Path,
-- | @TRUE@ to use the SharePoint change log to determine which documents
-- require updating in the index. Depending on the change log\'s size, it
-- may take longer for Amazon Kendra to use the change log than to scan all
-- of your documents in SharePoint.
useChangeLog :: Prelude.Maybe Prelude.Bool,
-- | Configuration information for an Amazon Virtual Private Cloud to connect
-- to your Microsoft SharePoint. For more information, see
-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.
vpcConfiguration :: Prelude.Maybe DataSourceVpcConfiguration,
-- | The version of Microsoft SharePoint that you use.
sharePointVersion :: SharePointVersion,
-- | The Microsoft SharePoint site URLs for the documents you want to index.
urls :: Prelude.NonEmpty Prelude.Text,
-- | The Amazon Resource Name (ARN) of an Secrets Manager secret that
-- contains the user name and password required to connect to the
-- SharePoint instance. If you use SharePoint Server, you also need to
-- provide the sever domain name as part of the credentials. For more
-- information, see
-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html Using a Microsoft SharePoint Data Source>.
--
-- You can also provide OAuth authentication credentials of user name,
-- password, client ID, and client secret. For more information, see
-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html Using a SharePoint data source>.
secretArn :: Prelude.Text
}
deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
-- |
-- Create a value of 'SharePointConfiguration' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'authenticationType', 'sharePointConfiguration_authenticationType' - Whether you want to connect to SharePoint using basic authentication of
-- user name and password, or OAuth authentication of user name, password,
-- client ID, and client secret. You can use OAuth authentication for
-- SharePoint Online.
--
-- 'crawlAttachments', 'sharePointConfiguration_crawlAttachments' - @TRUE@ to index document attachments.
--
-- 'disableLocalGroups', 'sharePointConfiguration_disableLocalGroups' - @TRUE@ to disable local groups information.
--
-- 'documentTitleFieldName', 'sharePointConfiguration_documentTitleFieldName' - The Microsoft SharePoint attribute field that contains the title of the
-- document.
--
-- 'exclusionPatterns', 'sharePointConfiguration_exclusionPatterns' - A list of regular expression patterns to exclude certain documents in
-- your SharePoint. Documents that match the patterns are excluded from the
-- index. Documents that don\'t match the patterns are included in the
-- index. If a document matches both an inclusion and exclusion pattern,
-- the exclusion pattern takes precedence and the document isn\'t included
-- in the index.
--
-- The regex applies to the display URL of the SharePoint document.
--
-- 'fieldMappings', 'sharePointConfiguration_fieldMappings' - A list of @DataSourceToIndexFieldMapping@ objects that map SharePoint
-- data source attributes or field names to Amazon Kendra index field
-- names. To create custom fields, use the @UpdateIndex@ API before you map
-- to SharePoint fields. For more information, see
-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.
-- The SharePoint data source field names must exist in your SharePoint
-- custom metadata.
--
-- 'inclusionPatterns', 'sharePointConfiguration_inclusionPatterns' - A list of regular expression patterns to include certain documents in
-- your SharePoint. Documents that match the patterns are included in the
-- index. Documents that don\'t match the patterns are excluded from the
-- index. If a document matches both an inclusion and exclusion pattern,
-- the exclusion pattern takes precedence and the document isn\'t included
-- in the index.
--
-- The regex applies to the display URL of the SharePoint document.
--
-- 'proxyConfiguration', 'sharePointConfiguration_proxyConfiguration' - Configuration information to connect to your Microsoft SharePoint site
-- URLs via instance via a web proxy. You can use this option for
-- SharePoint Server.
--
-- You must provide the website host name and port number. For example, the
-- host name of /https:\/\/a.example.com\/page1.html/ is \"a.example.com\"
-- and the port is 443, the standard port for HTTPS.
--
-- Web proxy credentials are optional and you can use them to connect to a
-- web proxy server that requires basic authentication of user name and
-- password. To store web proxy credentials, you use a secret in Secrets
-- Manager.
--
-- It is recommended that you follow best security practices when
-- configuring your web proxy. This includes setting up throttling, setting
-- up logging and monitoring, and applying security patches on a regular
-- basis. If you use your web proxy with multiple data sources, sync jobs
-- that occur at the same time could strain the load on your proxy. It is
-- recommended you prepare your proxy beforehand for any security and load
-- requirements.
--
-- 'sslCertificateS3Path', 'sharePointConfiguration_sslCertificateS3Path' - The path to the SSL certificate stored in an Amazon S3 bucket. You use
-- this to connect to SharePoint Server if you require a secure SSL
-- connection.
--
-- You can simply generate a self-signed X509 certificate on any computer
-- using OpenSSL. For an example of using OpenSSL to create an X509
-- certificate, see
-- <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl.html Create and sign an X509 certificate>.
--
-- 'useChangeLog', 'sharePointConfiguration_useChangeLog' - @TRUE@ to use the SharePoint change log to determine which documents
-- require updating in the index. Depending on the change log\'s size, it
-- may take longer for Amazon Kendra to use the change log than to scan all
-- of your documents in SharePoint.
--
-- 'vpcConfiguration', 'sharePointConfiguration_vpcConfiguration' - Configuration information for an Amazon Virtual Private Cloud to connect
-- to your Microsoft SharePoint. For more information, see
-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.
--
-- 'sharePointVersion', 'sharePointConfiguration_sharePointVersion' - The version of Microsoft SharePoint that you use.
--
-- 'urls', 'sharePointConfiguration_urls' - The Microsoft SharePoint site URLs for the documents you want to index.
--
-- 'secretArn', 'sharePointConfiguration_secretArn' - The Amazon Resource Name (ARN) of an Secrets Manager secret that
-- contains the user name and password required to connect to the
-- SharePoint instance. If you use SharePoint Server, you also need to
-- provide the sever domain name as part of the credentials. For more
-- information, see
-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html Using a Microsoft SharePoint Data Source>.
--
-- You can also provide OAuth authentication credentials of user name,
-- password, client ID, and client secret. For more information, see
-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html Using a SharePoint data source>.
newSharePointConfiguration ::
-- | 'sharePointVersion'
SharePointVersion ->
-- | 'urls'
Prelude.NonEmpty Prelude.Text ->
-- | 'secretArn'
Prelude.Text ->
SharePointConfiguration
newSharePointConfiguration
pSharePointVersion_
pUrls_
pSecretArn_ =
SharePointConfiguration'
{ authenticationType =
Prelude.Nothing,
crawlAttachments = Prelude.Nothing,
disableLocalGroups = Prelude.Nothing,
documentTitleFieldName = Prelude.Nothing,
exclusionPatterns = Prelude.Nothing,
fieldMappings = Prelude.Nothing,
inclusionPatterns = Prelude.Nothing,
proxyConfiguration = Prelude.Nothing,
sslCertificateS3Path = Prelude.Nothing,
useChangeLog = Prelude.Nothing,
vpcConfiguration = Prelude.Nothing,
sharePointVersion = pSharePointVersion_,
urls = Lens.coerced Lens.# pUrls_,
secretArn = pSecretArn_
}
-- | Whether you want to connect to SharePoint using basic authentication of
-- user name and password, or OAuth authentication of user name, password,
-- client ID, and client secret. You can use OAuth authentication for
-- SharePoint Online.
sharePointConfiguration_authenticationType :: Lens.Lens' SharePointConfiguration (Prelude.Maybe SharePointOnlineAuthenticationType)
sharePointConfiguration_authenticationType = Lens.lens (\SharePointConfiguration' {authenticationType} -> authenticationType) (\s@SharePointConfiguration' {} a -> s {authenticationType = a} :: SharePointConfiguration)
-- | @TRUE@ to index document attachments.
sharePointConfiguration_crawlAttachments :: Lens.Lens' SharePointConfiguration (Prelude.Maybe Prelude.Bool)
sharePointConfiguration_crawlAttachments = Lens.lens (\SharePointConfiguration' {crawlAttachments} -> crawlAttachments) (\s@SharePointConfiguration' {} a -> s {crawlAttachments = a} :: SharePointConfiguration)
-- | @TRUE@ to disable local groups information.
sharePointConfiguration_disableLocalGroups :: Lens.Lens' SharePointConfiguration (Prelude.Maybe Prelude.Bool)
sharePointConfiguration_disableLocalGroups = Lens.lens (\SharePointConfiguration' {disableLocalGroups} -> disableLocalGroups) (\s@SharePointConfiguration' {} a -> s {disableLocalGroups = a} :: SharePointConfiguration)
-- | The Microsoft SharePoint attribute field that contains the title of the
-- document.
sharePointConfiguration_documentTitleFieldName :: Lens.Lens' SharePointConfiguration (Prelude.Maybe Prelude.Text)
sharePointConfiguration_documentTitleFieldName = Lens.lens (\SharePointConfiguration' {documentTitleFieldName} -> documentTitleFieldName) (\s@SharePointConfiguration' {} a -> s {documentTitleFieldName = a} :: SharePointConfiguration)
-- | A list of regular expression patterns to exclude certain documents in
-- your SharePoint. Documents that match the patterns are excluded from the
-- index. Documents that don\'t match the patterns are included in the
-- index. If a document matches both an inclusion and exclusion pattern,
-- the exclusion pattern takes precedence and the document isn\'t included
-- in the index.
--
-- The regex applies to the display URL of the SharePoint document.
sharePointConfiguration_exclusionPatterns :: Lens.Lens' SharePointConfiguration (Prelude.Maybe [Prelude.Text])
sharePointConfiguration_exclusionPatterns = Lens.lens (\SharePointConfiguration' {exclusionPatterns} -> exclusionPatterns) (\s@SharePointConfiguration' {} a -> s {exclusionPatterns = a} :: SharePointConfiguration) Prelude.. Lens.mapping Lens.coerced
-- | A list of @DataSourceToIndexFieldMapping@ objects that map SharePoint
-- data source attributes or field names to Amazon Kendra index field
-- names. To create custom fields, use the @UpdateIndex@ API before you map
-- to SharePoint fields. For more information, see
-- <https://docs.aws.amazon.com/kendra/latest/dg/field-mapping.html Mapping data source fields>.
-- The SharePoint data source field names must exist in your SharePoint
-- custom metadata.
sharePointConfiguration_fieldMappings :: Lens.Lens' SharePointConfiguration (Prelude.Maybe (Prelude.NonEmpty DataSourceToIndexFieldMapping))
sharePointConfiguration_fieldMappings = Lens.lens (\SharePointConfiguration' {fieldMappings} -> fieldMappings) (\s@SharePointConfiguration' {} a -> s {fieldMappings = a} :: SharePointConfiguration) Prelude.. Lens.mapping Lens.coerced
-- | A list of regular expression patterns to include certain documents in
-- your SharePoint. Documents that match the patterns are included in the
-- index. Documents that don\'t match the patterns are excluded from the
-- index. If a document matches both an inclusion and exclusion pattern,
-- the exclusion pattern takes precedence and the document isn\'t included
-- in the index.
--
-- The regex applies to the display URL of the SharePoint document.
sharePointConfiguration_inclusionPatterns :: Lens.Lens' SharePointConfiguration (Prelude.Maybe [Prelude.Text])
sharePointConfiguration_inclusionPatterns = Lens.lens (\SharePointConfiguration' {inclusionPatterns} -> inclusionPatterns) (\s@SharePointConfiguration' {} a -> s {inclusionPatterns = a} :: SharePointConfiguration) Prelude.. Lens.mapping Lens.coerced
-- | Configuration information to connect to your Microsoft SharePoint site
-- URLs via instance via a web proxy. You can use this option for
-- SharePoint Server.
--
-- You must provide the website host name and port number. For example, the
-- host name of /https:\/\/a.example.com\/page1.html/ is \"a.example.com\"
-- and the port is 443, the standard port for HTTPS.
--
-- Web proxy credentials are optional and you can use them to connect to a
-- web proxy server that requires basic authentication of user name and
-- password. To store web proxy credentials, you use a secret in Secrets
-- Manager.
--
-- It is recommended that you follow best security practices when
-- configuring your web proxy. This includes setting up throttling, setting
-- up logging and monitoring, and applying security patches on a regular
-- basis. If you use your web proxy with multiple data sources, sync jobs
-- that occur at the same time could strain the load on your proxy. It is
-- recommended you prepare your proxy beforehand for any security and load
-- requirements.
sharePointConfiguration_proxyConfiguration :: Lens.Lens' SharePointConfiguration (Prelude.Maybe ProxyConfiguration)
sharePointConfiguration_proxyConfiguration = Lens.lens (\SharePointConfiguration' {proxyConfiguration} -> proxyConfiguration) (\s@SharePointConfiguration' {} a -> s {proxyConfiguration = a} :: SharePointConfiguration)
-- | The path to the SSL certificate stored in an Amazon S3 bucket. You use
-- this to connect to SharePoint Server if you require a secure SSL
-- connection.
--
-- You can simply generate a self-signed X509 certificate on any computer
-- using OpenSSL. For an example of using OpenSSL to create an X509
-- certificate, see
-- <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl.html Create and sign an X509 certificate>.
sharePointConfiguration_sslCertificateS3Path :: Lens.Lens' SharePointConfiguration (Prelude.Maybe S3Path)
sharePointConfiguration_sslCertificateS3Path = Lens.lens (\SharePointConfiguration' {sslCertificateS3Path} -> sslCertificateS3Path) (\s@SharePointConfiguration' {} a -> s {sslCertificateS3Path = a} :: SharePointConfiguration)
-- | @TRUE@ to use the SharePoint change log to determine which documents
-- require updating in the index. Depending on the change log\'s size, it
-- may take longer for Amazon Kendra to use the change log than to scan all
-- of your documents in SharePoint.
sharePointConfiguration_useChangeLog :: Lens.Lens' SharePointConfiguration (Prelude.Maybe Prelude.Bool)
sharePointConfiguration_useChangeLog = Lens.lens (\SharePointConfiguration' {useChangeLog} -> useChangeLog) (\s@SharePointConfiguration' {} a -> s {useChangeLog = a} :: SharePointConfiguration)
-- | Configuration information for an Amazon Virtual Private Cloud to connect
-- to your Microsoft SharePoint. For more information, see
-- <https://docs.aws.amazon.com/kendra/latest/dg/vpc-configuration.html Configuring a VPC>.
sharePointConfiguration_vpcConfiguration :: Lens.Lens' SharePointConfiguration (Prelude.Maybe DataSourceVpcConfiguration)
sharePointConfiguration_vpcConfiguration = Lens.lens (\SharePointConfiguration' {vpcConfiguration} -> vpcConfiguration) (\s@SharePointConfiguration' {} a -> s {vpcConfiguration = a} :: SharePointConfiguration)
-- | The version of Microsoft SharePoint that you use.
sharePointConfiguration_sharePointVersion :: Lens.Lens' SharePointConfiguration SharePointVersion
sharePointConfiguration_sharePointVersion = Lens.lens (\SharePointConfiguration' {sharePointVersion} -> sharePointVersion) (\s@SharePointConfiguration' {} a -> s {sharePointVersion = a} :: SharePointConfiguration)
-- | The Microsoft SharePoint site URLs for the documents you want to index.
sharePointConfiguration_urls :: Lens.Lens' SharePointConfiguration (Prelude.NonEmpty Prelude.Text)
sharePointConfiguration_urls = Lens.lens (\SharePointConfiguration' {urls} -> urls) (\s@SharePointConfiguration' {} a -> s {urls = a} :: SharePointConfiguration) Prelude.. Lens.coerced
-- | The Amazon Resource Name (ARN) of an Secrets Manager secret that
-- contains the user name and password required to connect to the
-- SharePoint instance. If you use SharePoint Server, you also need to
-- provide the sever domain name as part of the credentials. For more
-- information, see
-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html Using a Microsoft SharePoint Data Source>.
--
-- You can also provide OAuth authentication credentials of user name,
-- password, client ID, and client secret. For more information, see
-- <https://docs.aws.amazon.com/kendra/latest/dg/data-source-sharepoint.html Using a SharePoint data source>.
sharePointConfiguration_secretArn :: Lens.Lens' SharePointConfiguration Prelude.Text
sharePointConfiguration_secretArn = Lens.lens (\SharePointConfiguration' {secretArn} -> secretArn) (\s@SharePointConfiguration' {} a -> s {secretArn = a} :: SharePointConfiguration)
instance Data.FromJSON SharePointConfiguration where
parseJSON =
Data.withObject
"SharePointConfiguration"
( \x ->
SharePointConfiguration'
Prelude.<$> (x Data..:? "AuthenticationType")
Prelude.<*> (x Data..:? "CrawlAttachments")
Prelude.<*> (x Data..:? "DisableLocalGroups")
Prelude.<*> (x Data..:? "DocumentTitleFieldName")
Prelude.<*> ( x
Data..:? "ExclusionPatterns"
Data..!= Prelude.mempty
)
Prelude.<*> (x Data..:? "FieldMappings")
Prelude.<*> ( x
Data..:? "InclusionPatterns"
Data..!= Prelude.mempty
)
Prelude.<*> (x Data..:? "ProxyConfiguration")
Prelude.<*> (x Data..:? "SslCertificateS3Path")
Prelude.<*> (x Data..:? "UseChangeLog")
Prelude.<*> (x Data..:? "VpcConfiguration")
Prelude.<*> (x Data..: "SharePointVersion")
Prelude.<*> (x Data..: "Urls")
Prelude.<*> (x Data..: "SecretArn")
)
instance Prelude.Hashable SharePointConfiguration where
hashWithSalt _salt SharePointConfiguration' {..} =
_salt
`Prelude.hashWithSalt` authenticationType
`Prelude.hashWithSalt` crawlAttachments
`Prelude.hashWithSalt` disableLocalGroups
`Prelude.hashWithSalt` documentTitleFieldName
`Prelude.hashWithSalt` exclusionPatterns
`Prelude.hashWithSalt` fieldMappings
`Prelude.hashWithSalt` inclusionPatterns
`Prelude.hashWithSalt` proxyConfiguration
`Prelude.hashWithSalt` sslCertificateS3Path
`Prelude.hashWithSalt` useChangeLog
`Prelude.hashWithSalt` vpcConfiguration
`Prelude.hashWithSalt` sharePointVersion
`Prelude.hashWithSalt` urls
`Prelude.hashWithSalt` secretArn
instance Prelude.NFData SharePointConfiguration where
rnf SharePointConfiguration' {..} =
Prelude.rnf authenticationType
`Prelude.seq` Prelude.rnf crawlAttachments
`Prelude.seq` Prelude.rnf disableLocalGroups
`Prelude.seq` Prelude.rnf documentTitleFieldName
`Prelude.seq` Prelude.rnf exclusionPatterns
`Prelude.seq` Prelude.rnf fieldMappings
`Prelude.seq` Prelude.rnf inclusionPatterns
`Prelude.seq` Prelude.rnf proxyConfiguration
`Prelude.seq` Prelude.rnf sslCertificateS3Path
`Prelude.seq` Prelude.rnf useChangeLog
`Prelude.seq` Prelude.rnf vpcConfiguration
`Prelude.seq` Prelude.rnf sharePointVersion
`Prelude.seq` Prelude.rnf urls
`Prelude.seq` Prelude.rnf secretArn
instance Data.ToJSON SharePointConfiguration where
toJSON SharePointConfiguration' {..} =
Data.object
( Prelude.catMaybes
[ ("AuthenticationType" Data..=)
Prelude.<$> authenticationType,
("CrawlAttachments" Data..=)
Prelude.<$> crawlAttachments,
("DisableLocalGroups" Data..=)
Prelude.<$> disableLocalGroups,
("DocumentTitleFieldName" Data..=)
Prelude.<$> documentTitleFieldName,
("ExclusionPatterns" Data..=)
Prelude.<$> exclusionPatterns,
("FieldMappings" Data..=) Prelude.<$> fieldMappings,
("InclusionPatterns" Data..=)
Prelude.<$> inclusionPatterns,
("ProxyConfiguration" Data..=)
Prelude.<$> proxyConfiguration,
("SslCertificateS3Path" Data..=)
Prelude.<$> sslCertificateS3Path,
("UseChangeLog" Data..=) Prelude.<$> useChangeLog,
("VpcConfiguration" Data..=)
Prelude.<$> vpcConfiguration,
Prelude.Just
("SharePointVersion" Data..= sharePointVersion),
Prelude.Just ("Urls" Data..= urls),
Prelude.Just ("SecretArn" Data..= secretArn)
]
)