Select your cookie preferences

We use essential cookies and similar tools that are necessary to provide our site and services. We use performance cookies to collect anonymous statistics, so we can understand how customers use our site and make improvements. Essential cookies cannot be deactivated, but you can choose “Customize” or “Decline” to decline performance cookies.

If you agree, AWS and approved third parties will also use cookies to provide useful site features, remember your preferences, and display relevant content, including relevant advertising. To accept or decline all non-essential cookies, choose “Accept” or “Decline.” To make more detailed choices, choose “Customize.”

Connecting Amazon Q Business to SharePoint Server (Subscription Edition) using APIs

Focus mode
Connecting Amazon Q Business to SharePoint Server (Subscription Edition) using APIs - Amazon Q Business

You use the CreateDataSource action to connect a data source to your Amazon Q application.

Then, you use the configuration parameter to provide a JSON blob that conforms the AWS-defined JSON schema.

For an example of the API request, see CreateDataSource in the Amazon Q API Reference.

SharePoint Server (Subscription Edition) configuration properties

Configuration Description Type Required

connectionConfiguration

Configuration information for the endpoint for the data source.

object

This property has a sub-property called repositoryEndpointMetadata.

Yes

repositoryEndpointMetadata

The endpoint information for the data source.

object

This property has the following sub-properties.

  • siteUrls

  • domain

  • repositoryAdditionalProperties

  • tenantId

Yes

tenantId

The tenant id of your SharePoint account.

string

OAuth2 series required

Yes

domain

The domain of your SharePoint account.

string

Yes

siteUrls

The host URLs of your SharePoint account.

array (string)

Specify the URL in the pattern https://*

Yes

repositoryAdditionalProperties

Additional properties to connect with your repository endpoint.

object

This property has the following sub-properties.

  • version

  • authType

  • onPremVersion

Yes

authType

The type of authentication you are using: NTLM, Kerberos, or OAuth2App.

string

Yes

version

The SharePoint version you are using: Sever.

string (Server)

Yes

onPremVersion

The SharePoint version that you are using.

string

Valid values are (empty), 2013, 2016, 2019, and SubscriptionEdition.

Yes

repositoryConfigurations

Configuration information for the content of the data source. For example, configuring specific types of content and field mappings.

object

This property has the following sub-properties.

  • event

  • page

  • file

  • link

  • attachment

  • comment

Yes
  • event

  • page

  • file

  • link

  • attachment

  • comment

A list of objects that map the attributes or field names of your SharePoint Server (Subscription Edition) pages and assets to Amazon Q index field names.

object

These properties have the following sub-properties.

  • indexFieldName

  • indexFieldType

  • dataSourceFieldName

  • dateFieldFormat

No

indexFieldName

The field name of your SharePoint Server (Subscription Edition) events, pages, files, links, attachments, or comments.

string

Yes

indexFieldType

The field type of your SharePoint Server (Subscription Edition) events, pages, files, links, attachments, or comments.

string

The allowed values are STRING, STRING_LIST, and DATE.

Yes

dataSourceFieldName

The data source field name of your SharePoint Server (Subscription Edition) events, pages, files, links, attachments, or comments.

string

Yes

dateFieldFormat

The date format of your SharePoint Server (Subscription Edition) events, pages, files, links, attachments, or comments.

string

Specify the date format in the form yyyy-MM-dd"T"HH:mm:ss"Z"

No

additionalProperties

Additional configuration options for your content in your data source.

object

This property has the following sub-properties:

  • crawlAcl

  • crawlFiles

  • crawlPages

  • crawlEvents

  • crawlComments

  • crawlLinks

  • crawlAttachments

  • crawlListData

  • isCrawlLocalGroupMapping

  • isCrawlAdGroupMapping

  • aclConfiguration

  • emailDomain

  • maxFileSizeInMegaBytes

  • eventTitleFilterRegEx

  • pageTitleFilterRegEx

  • linkTitleFilterRegEx

  • inclusionFilePath

  • exclusionFilePath

  • inclusionFileTypePatterns

  • exclusionFileTypePatterns

  • inclusionFileNamePatterns

  • exclusionFileNamePatterns

  • inclusionOneNoteSectionNamePatterns

  • exclusionOneNoteSectionNamePatterns

  • inclusionOneNotePageNamePatterns

  • exclusionOneNotePageNamePatterns

  • proxyHost

  • proxyPort

Yes
  • eventTitleFilterRegEx

  • pageTitleFilterRegEx

  • linkTitleFilterRegEx

  • inclusionFilePath

  • exclusionFilePath

  • inclusionFileTypePatterns

  • exclusionFileTypePatterns

  • inclusionFileNamePatterns

  • exclusionFileNamePatterns

  • inclusionOneNoteSectionNamePatterns

  • exclusionOneNoteSectionNamePatterns

  • inclusionOneNotePageNamePatterns

  • exclusionOneNotePageNamePatterns

  • emailDomain

A list of regular expression patterns to include/exclude specific files in your SharePoint data source. Files that match the patterns are included in the index. File that don&t match the patterns are excluded from the index. If a file matches both an inclusion and exclusion pattern, the exclusion pattern takes precedence, and the file isn&t included in the index.

array (string)

No

aclConfiguration

Specifes how your ACL is configured.

string>

Valid values are ACLWithLDAPEmailFmt, ACLWithManualEmailFmt, or ACLWithUsernameFmt.

No

proxyHost

The host where the web proxy is required. The host name should be without protocol (http:// or https://).

string

Yes

proxyPort

Port used by the host URL transport protocol. The port number should be a numeric value between 0 and 65535.

string

Yes
  • crawlAcl

  • crawlFiles

  • crawlPages

  • crawlEvents

  • crawlComments

  • crawlLinks

  • crawlAttachments

  • crawlListData

  • isCrawlLocalGroupMapping

  • isCrawlAdGroupMapping

Input TRUE to index.

boolean

No

maxFileSizeInMegaBytes

Specify the maximum single file size limit in MBs that Amazon Q will crawl. Amazon Q will crawl only the files within the size limit you define. The default file size is 50MB. The maximum file size should be greater than 0MB and less than or equal to 50MB.

string

No

sslCertificatePath

Configuration information to access the SSL certificate stored in your Amazon S3 bucket.

object

This property has the following sub-properties.

  • bucket

  • key

No

bucket

The name of the Amazon S3 bucket that stores your Azure AD self-signed X.509 certificate.

string

Yes

key

The name of the SSL certificate stored in your Amazon S3 bucket.

string

Yes

type

We recommend that you use SHAREPOINTV2 as your data source type.

string

Valid values are SHAREPOINTV2 and SHAREPOINT.

Yes

enableIdentityCrawler

true to activate identity crawler. Identity crawler is activated by default. Crawling identity information on users and groups with access to specific documents is useful for user context filtering. Search results are filtered based on the user or their group access to documents. See Identity crawler for more information.

boolean

Yes

syncMode

Specify whether Amazon Q should update your index by syncing all documents or only new, modified, and deleted documents.

string

You can choose between the following options:

  • Use FORCED_FULL_CRAWL to freshly re-crawl all content and replace existing content each time your data source syncs with your index

  • Use FULL_CRAWL to incrementally crawl only new, modified, and deleted content each time your data source syncs with your index

  • Use CHANGE_LOG to incrementally crawl only new and modified content each time your data source syncs with your index

Yes

secretARN

The Amazon Resource Name (ARN) of an AWS Secrets Manager secret that contains the key-value pairs required to connect to your SharePoint. If you use OAuth2App authentication, provide the client ID, client secret, LDAP URL, LDAP base DN, LDAP user name, and LDAP password. If you use NTLM or Kerberos authentication, provide the user name, password, LDAP URL, Base DN, LDAP user, and LDAP password.

string

The minimum length is 20 and the maximum length is 2,048 characters.

If you use Sharepoint App-Only authentication (authType should be OAuth2App authentication) the secret must contain a JSON structure with the following keys:

{ "clientId": "client ID", "clientSecret": "client secret", "ldapUrl": "LDAP URL", "ldbaseDn": "LDAP base DN", "ldapUser": "LDAP user name", "ldapPassword": "LDAP password" }

If you use NTLM authentication or Kerberos authentication, the secret must contain a JSON structure with the following keys:

{ "userName": "SharePoint account user name", "password": "SharePoint account password", "ldapUrl": "LDAP URL", "baseDn": "LDAP base DN", "ldapUser": "LDAP user name", "ldapPassword": "LDAP password" }
Yes

version

The version of this template that&s currently supported.

string

No

SharePoint Server (Subscription Edition) JSON schema

The following is the SharePoint Server (Subscription Edition) JSON schema:

{ "type": "object", "properties": { "type": { "type": "string", "enum": ["SHAREPOINTV2", "SHAREPOINT"] }, "syncMode": { "type": "string", "enum": ["FULL_CRAWL", "FORCED_FULL_CRAWL", "CHANGE_LOG"] }, "secretArn": { "type": "string", "minLength": 20, "maxLength": 2048 }, "enableIdentityCrawler": { "anyOf": [ { "type": "boolean" }, { "type": "string", "enum": ["true", "false"] } ] }, "sslCertificatePath": { "type": "object", "properties": { "bucket": { "type": "string", "pattern": "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", "minLength": 3, "maxLength": 63 }, "key": { "type": "string", "minLength": 1, "maxLength": 10240 } }, "required": ["bucket", "key"] }, "connectionConfiguration": { "type": "object", "properties": { "repositoryEndpointMetadata": { "type": "object", "properties": { "tenantId": { "type": "string", "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", "minLength": 36, "maxLength": 36 }, "domain": { "type": "string" }, "siteUrls": { "type": "array", "items": { "type": "string", "pattern": "https://.*" } }, "repositoryAdditionalProperties": { "type": "object", "properties": { "authType": { "type": "string", "enum": ["OAuth2App", "NTLM", "Kerberos"] }, "version": { "type": "string", "enum": ["Server"] }, "onPremVersion": { "type": "string", "enum": ["", "2013", "2016", "2019", "SubscriptionEdition"] }, "enableDeletionProtection": { "anyOf": [ { "type": "boolean" }, { "type": "string", "enum": ["true", "false"] } ], "default": false }, "deletionProtectionThreshold": { "type": "string", "default": "15" } }, "required": ["authType", "version"] } }, "required": ["siteUrls", "domain", "repositoryAdditionalProperties"] } }, "required": ["repositoryEndpointMetadata"] }, "repositoryConfigurations": { "type": "object", "properties": { "event": { "type": "object", "properties": { "fieldMappings": { "type": "array", "items": [ { "type": "object", "properties": { "indexFieldName": { "type": "string" }, "indexFieldType": { "type": "string", "enum": ["STRING", "STRING_LIST", "DATE"] }, "dataSourceFieldName": { "type": "string" }, "dateFieldFormat": { "type": "string", "pattern": "yyyy-MM-dd'T'HH:mm:ss'Z'" } }, "required": [ "indexFieldName", "indexFieldType", "dataSourceFieldName" ] } ] } }, "required": ["fieldMappings"] }, "page": { "type": "object", "properties": { "fieldMappings": { "type": "array", "items": [ { "type": "object", "properties": { "indexFieldName": { "type": "string" }, "indexFieldType": { "type": "string", "enum": ["STRING", "DATE", "LONG"] }, "dataSourceFieldName": { "type": "string" }, "dateFieldFormat": { "type": "string", "pattern": "yyyy-MM-dd'T'HH:mm:ss'Z'" } }, "required": [ "indexFieldName", "indexFieldType", "dataSourceFieldName" ] } ] } }, "required": ["fieldMappings"] }, "file": { "type": "object", "properties": { "fieldMappings": { "type": "array", "items": [ { "type": "object", "properties": { "indexFieldName": { "type": "string" }, "indexFieldType": { "type": "string", "enum": ["STRING", "DATE", "LONG"] }, "dataSourceFieldName": { "type": "string" }, "dateFieldFormat": { "type": "string", "pattern": "yyyy-MM-dd'T'HH:mm:ss'Z'" } }, "required": [ "indexFieldName", "indexFieldType", "dataSourceFieldName" ] } ] } }, "required": ["fieldMappings"] }, "link": { "type": "object", "properties": { "fieldMappings": { "type": "array", "items": [ { "type": "object", "properties": { "indexFieldName": { "type": "string" }, "indexFieldType": { "type": "string", "enum": ["STRING", "STRING_LIST", "DATE"] }, "dataSourceFieldName": { "type": "string" }, "dateFieldFormat": { "type": "string", "pattern": "yyyy-MM-dd'T'HH:mm:ss'Z'" } }, "required": [ "indexFieldName", "indexFieldType", "dataSourceFieldName" ] } ] } }, "required": ["fieldMappings"] }, "attachment": { "type": "object", "properties": { "fieldMappings": { "type": "array", "items": [ { "type": "object", "properties": { "indexFieldName": { "type": "string" }, "indexFieldType": { "type": "string", "enum": ["STRING", "STRING_LIST", "DATE"] }, "dataSourceFieldName": { "type": "string" }, "dateFieldFormat": { "type": "string", "pattern": "yyyy-MM-dd'T'HH:mm:ss'Z'" } }, "required": [ "indexFieldName", "indexFieldType", "dataSourceFieldName" ] } ] } }, "required": ["fieldMappings"] }, "comment": { "type": "object", "properties": { "fieldMappings": { "type": "array", "items": [ { "type": "object", "properties": { "indexFieldName": { "type": "string" }, "indexFieldType": { "type": "string", "enum": ["STRING", "STRING_LIST", "DATE"] }, "dataSourceFieldName": { "type": "string" }, "dateFieldFormat": { "type": "string", "pattern": "yyyy-MM-dd'T'HH:mm:ss'Z'" } }, "required": [ "indexFieldName", "indexFieldType", "dataSourceFieldName" ] } ] } }, "required": ["fieldMappings"] } } }, "additionalProperties": { "type": "object", "properties": { "eventTitleFilterRegEx": { "type": "array", "items": { "type": "string" } }, "pageTitleFilterRegEx": { "type": "array", "items": { "type": "string" } }, "linkTitleFilterRegEx": { "type": "array", "items": { "type": "string" } }, "inclusionFilePath": { "type": "array", "items": { "type": "string" } }, "exclusionFilePath": { "type": "array", "items": { "type": "string" } }, "inclusionFileTypePatterns": { "type": "array", "items": { "type": "string" } }, "exclusionFileTypePatterns": { "type": "array", "items": { "type": "string" } }, "inclusionFileNamePatterns": { "type": "array", "items": { "type": "string" } }, "exclusionFileNamePatterns": { "type": "array", "items": { "type": "string" } }, "inclusionOneNoteSectionNamePatterns": { "type": "array", "items": { "type": "string" } }, "exclusionOneNoteSectionNamePatterns": { "type": "array", "items": { "type": "string" } }, "inclusionOneNotePageNamePatterns": { "type": "array", "items": { "type": "string" } }, "exclusionOneNotePageNamePatterns": { "type": "array", "items": { "type": "string" } }, "crawlFiles": { "anyOf": [ { "type": "boolean" }, { "type": "string", "enum": ["true", "false"] } ] }, "crawlPages": { "anyOf": [ { "type": "boolean" }, { "type": "string", "enum": ["true", "false"] } ] }, "crawlEvents": { "anyOf": [ { "type": "boolean" }, { "type": "string", "enum": ["true", "false"] } ] }, "crawlComments": { "anyOf": [ { "type": "boolean" }, { "type": "string", "enum": ["true", "false"] } ] }, "crawlLinks": { "anyOf": [ { "type": "boolean" }, { "type": "string", "enum": ["true", "false"] } ] }, "crawlAttachments": { "anyOf": [ { "type": "boolean" }, { "type": "string", "enum": ["true", "false"] } ] }, "crawlListData": { "anyOf": [ { "type": "boolean" }, { "type": "string", "enum": ["true", "false"] } ] }, "crawlAcl": { "anyOf": [ { "type": "boolean" }, { "type": "string", "enum": ["true", "false"] } ] }, "aclConfiguration": { "type": "string", "enum": [ "ACLWithLDAPEmailFmt", "ACLWithManualEmailFmt", "ACLWithUsernameFmt" ] }, "emailDomain": { "type": "string" }, "isCrawlLocalGroupMapping": { "anyOf": [ { "type": "boolean" }, { "type": "string", "enum": ["true", "false"] } ] }, "isCrawlAdGroupMapping": { "anyOf": [ { "type": "boolean" }, { "type": "string", "enum": ["true", "false"] } ] }, "proxyHost": { "type": "string" }, "proxyPort": { "type": "string" }, "maxFileSizeInMegaBytes": { "type": "string" } }, "required": [] }, "version": { "type": "string", "anyOf": [ { "pattern": "1.0.0" } ] } }, "required": [ "type", "secretArn", "syncMode", "enableIdentityCrawler", "connectionConfiguration", "repositoryConfigurations", "additionalProperties" ] }

SharePoint Server (Subscription Edition) JSON schema example

The following is the SharePoint Server (Subscription Edition) JSON schema example:

{ "type": "SHAREPOINTV2", "syncMode": "FULL_CRAWL", "secretArn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:my-sharepoint-secret", "enableIdentityCrawler": "true", "sslCertificatePath": { "bucket": "my-sharepoint-bucket", "key": "ssl/cert.pem" }, "connectionConfiguration": { "repositoryEndpointMetadata": { "tenantId": "1234567a-890b-1234-567c-123456789012", "domain": "mycompany.sharepoint.com", "siteUrls": [ "https://mycompany.sharepoint.com/sites/TeamSite" ], "repositoryAdditionalProperties": { "authType": "OAuth2", "version": "Server", "onPremVersion": "2019", "enableDeletionProtection": "false", "deletionProtectionThreshold": "15" } } }, "repositoryConfigurations": { "event": { "fieldMappings": [ { "indexFieldName": "event_id", "indexFieldType": "STRING", "dataSourceFieldName": "id", "dateFieldFormat": "yyyy-MM-dd'T'HH:mm:ss'Z'" } ] }, "page": { "fieldMappings": [ { "indexFieldName": "page_id", "indexFieldType": "STRING", "dataSourceFieldName": "id", "dateFieldFormat": "yyyy-MM-dd'T'HH:mm:ss'Z'" } ] }, "file": { "fieldMappings": [ { "indexFieldName": "file_id", "indexFieldType": "STRING", "dataSourceFieldName": "id", "dateFieldFormat": "yyyy-MM-dd'T'HH:mm:ss'Z'" } ] }, "link": { "fieldMappings": [ { "indexFieldName": "link_id", "indexFieldType": "STRING", "dataSourceFieldName": "id", "dateFieldFormat": "yyyy-MM-dd'T'HH:mm:ss'Z'" } ] }, "attachment": { "fieldMappings": [ { "indexFieldName": "attachment_id", "indexFieldType": "STRING", "dataSourceFieldName": "id", "dateFieldFormat": "yyyy-MM-dd'T'HH:mm:ss'Z'" } ] }, "comment": { "fieldMappings": [ { "indexFieldName": "comment_id", "indexFieldType": "STRING", "dataSourceFieldName": "id", "dateFieldFormat": "yyyy-MM-dd'T'HH:mm:ss'Z'" } ] } }, "additionalProperties": { "eventTitleFilterRegEx": [ "^.*$" ], "pageTitleFilterRegEx": [ "^.*$" ], "linkTitleFilterRegEx": [ "^.*$" ], "inclusionFilePath": [ "documents/" ], "exclusionFilePath": [ "drafts/" ], "inclusionFileTypePatterns": [ "*.pdf", "*.docx" ], "exclusionFileTypePatterns": [ "*.tmp" ], "inclusionFileNamePatterns": [ "*report*" ], "exclusionFileNamePatterns": [ "*draft*" ], "inclusionOneNoteSectionNamePatterns": [ "*" ], "exclusionOneNoteSectionNamePatterns": [ "archived" ], "inclusionOneNotePageNamePatterns": [ "*" ], "exclusionOneNotePageNamePatterns": [ "test" ], "crawlFiles": "true", "crawlPages": "true", "crawlEvents": "true", "crawlComments": "true", "crawlLinks": "true", "crawlAttachments": "true", "crawlListData": "false", "crawlAcl": "true", "aclConfiguration": "ACLWithUsernameFmt", "emailDomain": "mycompany.com", "isCrawlLocalGroupMapping": "false", "isCrawlAdGroupMapping": "true", "proxyHost": "proxy.mycompany.com", "proxyPort": "8080", "maxFileSizeInMegaBytes": "50" }, "version": "1.0.0" }
PrivacySite termsCookie preferences
© 2025, Amazon Web Services, Inc. or its affiliates. All rights reserved.