/*
* 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 Box as your data source.
///
public partial class BoxConfiguration
{
private List _commentFieldMappings = new List();
private bool? _crawlComments;
private bool? _crawlTasks;
private bool? _crawlWebLinks;
private string _enterpriseId;
private List _exclusionPatterns = new List();
private List _fileFieldMappings = new List();
private List _inclusionPatterns = new List();
private string _secretArn;
private List _taskFieldMappings = new List();
private bool? _useChangeLog;
private DataSourceVpcConfiguration _vpcConfiguration;
private List _webLinkFieldMappings = new List();
///
/// Gets and sets the property CommentFieldMappings.
///
/// A list of DataSourceToIndexFieldMapping
objects that map attributes or
/// field names of Box comments to Amazon Kendra index field names. To create custom fields,
/// use the UpdateIndex
API before you map to Box fields. For more information,
/// see Mapping
/// data source fields. The Box field names must exist in your Box custom metadata.
///
///
[AWSProperty(Min=1, Max=100)]
public List CommentFieldMappings
{
get { return this._commentFieldMappings; }
set { this._commentFieldMappings = value; }
}
// Check to see if CommentFieldMappings property is set
internal bool IsSetCommentFieldMappings()
{
return this._commentFieldMappings != null && this._commentFieldMappings.Count > 0;
}
///
/// Gets and sets the property CrawlComments.
///
/// TRUE
to index comments.
///
///
public bool CrawlComments
{
get { return this._crawlComments.GetValueOrDefault(); }
set { this._crawlComments = value; }
}
// Check to see if CrawlComments property is set
internal bool IsSetCrawlComments()
{
return this._crawlComments.HasValue;
}
///
/// Gets and sets the property CrawlTasks.
///
/// TRUE
to index the contents of tasks.
///
///
public bool CrawlTasks
{
get { return this._crawlTasks.GetValueOrDefault(); }
set { this._crawlTasks = value; }
}
// Check to see if CrawlTasks property is set
internal bool IsSetCrawlTasks()
{
return this._crawlTasks.HasValue;
}
///
/// Gets and sets the property CrawlWebLinks.
///
/// TRUE
to index web links.
///
///
public bool CrawlWebLinks
{
get { return this._crawlWebLinks.GetValueOrDefault(); }
set { this._crawlWebLinks = value; }
}
// Check to see if CrawlWebLinks property is set
internal bool IsSetCrawlWebLinks()
{
return this._crawlWebLinks.HasValue;
}
///
/// Gets and sets the property EnterpriseId.
///
/// The identifier of the Box Enterprise platform. You can find the enterprise ID in the
/// Box Developer Console settings or when you create an app in Box and download your
/// authentication credentials. For example, 801234567.
///
///
[AWSProperty(Required=true, Min=1, Max=64)]
public string EnterpriseId
{
get { return this._enterpriseId; }
set { this._enterpriseId = value; }
}
// Check to see if EnterpriseId property is set
internal bool IsSetEnterpriseId()
{
return this._enterpriseId != null;
}
///
/// Gets and sets the property ExclusionPatterns.
///
/// A list of regular expression patterns to exclude certain files and folders from your
/// Box platform. Files and folders that match the patterns are excluded from the index.Files
/// and folders that don't match the patterns are included in the index. If a file or
/// folder matches both an inclusion and exclusion pattern, the exclusion pattern takes
/// precedence and the file or folder isn't included in the index.
///
///
[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 FileFieldMappings.
///
/// A list of DataSourceToIndexFieldMapping
objects that map attributes or
/// field names of Box files to Amazon Kendra index field names. To create custom fields,
/// use the UpdateIndex
API before you map to Box fields. For more information,
/// see Mapping
/// data source fields. The Box field names must exist in your Box custom metadata.
///
///
[AWSProperty(Min=1, Max=100)]
public List FileFieldMappings
{
get { return this._fileFieldMappings; }
set { this._fileFieldMappings = value; }
}
// Check to see if FileFieldMappings property is set
internal bool IsSetFileFieldMappings()
{
return this._fileFieldMappings != null && this._fileFieldMappings.Count > 0;
}
///
/// Gets and sets the property InclusionPatterns.
///
/// A list of regular expression patterns to include certain files and folders in your
/// Box platform. Files and folders that match the patterns are included in the index.
/// Files and folders that don't match the patterns are excluded from the index. If a
/// file or folder matches both an inclusion and exclusion pattern, the exclusion pattern
/// takes precedence and the file or folder isn't included in the index.
///
///
[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 SecretArn.
///
/// The Amazon Resource Name (ARN) of an Secrets Manager secret that contains the key-value
/// pairs required to connect to your Box platform. The secret must contain a JSON structure
/// with the following keys:
///
/// -
///
/// clientID—The identifier of the client OAuth 2.0 authentication application created
/// in Box.
///
///
-
///
/// clientSecret—A set of characters known only to the OAuth 2.0 authentication application
/// created in Box.
///
///
-
///
/// publicKeyId—The identifier of the public key contained within an identity certificate.
///
///
-
///
/// privateKey—A set of characters that make up an encryption key.
///
///
-
///
/// passphrase—A set of characters that act like a password.
///
///
///
/// You create an application in Box to generate the keys or credentials required for
/// the secret. For more information, see Using
/// a Box data source.
///
///
[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 TaskFieldMappings.
///
/// A list of DataSourceToIndexFieldMapping
objects that map attributes or
/// field names of Box tasks to Amazon Kendra index field names. To create custom fields,
/// use the UpdateIndex
API before you map to Box fields. For more information,
/// see Mapping
/// data source fields. The Box field names must exist in your Box custom metadata.
///
///
[AWSProperty(Min=1, Max=100)]
public List TaskFieldMappings
{
get { return this._taskFieldMappings; }
set { this._taskFieldMappings = value; }
}
// Check to see if TaskFieldMappings property is set
internal bool IsSetTaskFieldMappings()
{
return this._taskFieldMappings != null && this._taskFieldMappings.Count > 0;
}
///
/// Gets and sets the property UseChangeLog.
///
/// TRUE
to use the Slack change log to determine which documents require
/// updating in the index. Depending on the data source change log's size, it may take
/// longer for Amazon Kendra to use the change log than to scan all of your documents.
///
///
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 VPC to connect to your Box. 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;
}
///
/// Gets and sets the property WebLinkFieldMappings.
///
/// A list of DataSourceToIndexFieldMapping
objects that map attributes or
/// field names of Box web links to Amazon Kendra index field names. To create custom
/// fields, use the UpdateIndex
API before you map to Box fields. For more
/// information, see Mapping
/// data source fields. The Box field names must exist in your Box custom metadata.
///
///
[AWSProperty(Min=1, Max=100)]
public List WebLinkFieldMappings
{
get { return this._webLinkFieldMappings; }
set { this._webLinkFieldMappings = value; }
}
// Check to see if WebLinkFieldMappings property is set
internal bool IsSetWebLinkFieldMappings()
{
return this._webLinkFieldMappings != null && this._webLinkFieldMappings.Count > 0;
}
}
}