/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the kendra-2019-02-03.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Kendra.Model
{
///
/// Provides the configuration information to connect to Microsoft SharePoint as your
/// data source.
///
public partial class SharePointConfiguration
{
private SharePointOnlineAuthenticationType _authenticationType;
private bool? _crawlAttachments;
private bool? _disableLocalGroups;
private string _documentTitleFieldName;
private List _exclusionPatterns = new List();
private List _fieldMappings = new List();
private List _inclusionPatterns = new List();
private ProxyConfiguration _proxyConfiguration;
private string _secretArn;
private SharePointVersion _sharePointVersion;
private S3Path _sslCertificateS3Path;
private List _urls = new List();
private bool? _useChangeLog;
private DataSourceVpcConfiguration _vpcConfiguration;
///
/// Gets and sets the property AuthenticationType.
///
/// Whether you want to connect to SharePoint Online using basic authentication of user
/// name and password, or OAuth authentication of user name, password, client ID, and
/// client secret, or AD App-only authentication of client secret.
///
///
public SharePointOnlineAuthenticationType AuthenticationType
{
get { return this._authenticationType; }
set { this._authenticationType = value; }
}
// Check to see if AuthenticationType property is set
internal bool IsSetAuthenticationType()
{
return this._authenticationType != null;
}
///
/// Gets and sets the property CrawlAttachments.
///
/// TRUE
to index document attachments.
///
///
public bool CrawlAttachments
{
get { return this._crawlAttachments.GetValueOrDefault(); }
set { this._crawlAttachments = value; }
}
// Check to see if CrawlAttachments property is set
internal bool IsSetCrawlAttachments()
{
return this._crawlAttachments.HasValue;
}
///
/// Gets and sets the property DisableLocalGroups.
///
/// TRUE
to disable local groups information.
///
///
public bool DisableLocalGroups
{
get { return this._disableLocalGroups.GetValueOrDefault(); }
set { this._disableLocalGroups = value; }
}
// Check to see if DisableLocalGroups property is set
internal bool IsSetDisableLocalGroups()
{
return this._disableLocalGroups.HasValue;
}
///
/// Gets and sets the property DocumentTitleFieldName.
///
/// The Microsoft SharePoint attribute field that contains the title of the document.
///
///
[AWSProperty(Min=1, Max=100)]
public string DocumentTitleFieldName
{
get { return this._documentTitleFieldName; }
set { this._documentTitleFieldName = value; }
}
// Check to see if DocumentTitleFieldName property is set
internal bool IsSetDocumentTitleFieldName()
{
return this._documentTitleFieldName != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=0, Max=250)]
public List ExclusionPatterns
{
get { return this._exclusionPatterns; }
set { this._exclusionPatterns = value; }
}
// Check to see if ExclusionPatterns property is set
internal bool IsSetExclusionPatterns()
{
return this._exclusionPatterns != null && this._exclusionPatterns.Count > 0;
}
///
/// Gets and sets the property 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 Mapping
/// data source fields. The SharePoint data source field names must exist in your
/// SharePoint custom metadata.
///
///
[AWSProperty(Min=1, Max=100)]
public List FieldMappings
{
get { return this._fieldMappings; }
set { this._fieldMappings = value; }
}
// Check to see if FieldMappings property is set
internal bool IsSetFieldMappings()
{
return this._fieldMappings != null && this._fieldMappings.Count > 0;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=0, Max=250)]
public List InclusionPatterns
{
get { return this._inclusionPatterns; }
set { this._inclusionPatterns = value; }
}
// Check to see if InclusionPatterns property is set
internal bool IsSetInclusionPatterns()
{
return this._inclusionPatterns != null && this._inclusionPatterns.Count > 0;
}
///
/// Gets and sets the property 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.
///
///
public ProxyConfiguration ProxyConfiguration
{
get { return this._proxyConfiguration; }
set { this._proxyConfiguration = value; }
}
// Check to see if ProxyConfiguration property is set
internal bool IsSetProxyConfiguration()
{
return this._proxyConfiguration != null;
}
///
/// Gets and sets the property 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. For more information,
/// see Microsoft
/// SharePoint.
///
///
[AWSProperty(Required=true, Min=1, Max=1284)]
public string SecretArn
{
get { return this._secretArn; }
set { this._secretArn = value; }
}
// Check to see if SecretArn property is set
internal bool IsSetSecretArn()
{
return this._secretArn != null;
}
///
/// Gets and sets the property SharePointVersion.
///
/// The version of Microsoft SharePoint that you use.
///
///
[AWSProperty(Required=true)]
public SharePointVersion SharePointVersion
{
get { return this._sharePointVersion; }
set { this._sharePointVersion = value; }
}
// Check to see if SharePointVersion property is set
internal bool IsSetSharePointVersion()
{
return this._sharePointVersion != null;
}
///
/// Gets and sets the property 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 generate a self-signed X509 certificate on any computer using OpenSSL. For
/// an example of using OpenSSL to create an X509 certificate, see Create
/// and sign an X509 certificate.
///
///
public S3Path SslCertificateS3Path
{
get { return this._sslCertificateS3Path; }
set { this._sslCertificateS3Path = value; }
}
// Check to see if SslCertificateS3Path property is set
internal bool IsSetSslCertificateS3Path()
{
return this._sslCertificateS3Path != null;
}
///
/// Gets and sets the property Urls.
///
/// The Microsoft SharePoint site URLs for the documents you want to index.
///
///
[AWSProperty(Required=true, Min=1, Max=100)]
public List Urls
{
get { return this._urls; }
set { this._urls = value; }
}
// Check to see if Urls property is set
internal bool IsSetUrls()
{
return this._urls != null && this._urls.Count > 0;
}
///
/// Gets and sets the property 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.
///
///
public bool UseChangeLog
{
get { return this._useChangeLog.GetValueOrDefault(); }
set { this._useChangeLog = value; }
}
// Check to see if UseChangeLog property is set
internal bool IsSetUseChangeLog()
{
return this._useChangeLog.HasValue;
}
///
/// Gets and sets the property VpcConfiguration.
///
/// Configuration information for an Amazon Virtual Private Cloud to connect to your Microsoft
/// SharePoint. For more information, see Configuring
/// a VPC.
///
///
public DataSourceVpcConfiguration VpcConfiguration
{
get { return this._vpcConfiguration; }
set { this._vpcConfiguration = value; }
}
// Check to see if VpcConfiguration property is set
internal bool IsSetVpcConfiguration()
{
return this._vpcConfiguration != null;
}
}
}