/*
* 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 Slack as your data source.
///
public partial class SlackConfiguration
{
private bool? _crawlBotMessage;
private bool? _excludeArchived;
private List _exclusionPatterns = new List();
private List _fieldMappings = new List();
private List _inclusionPatterns = new List();
private int? _lookBackPeriod;
private List _privateChannelFilter = new List();
private List _publicChannelFilter = new List();
private string _secretArn;
private string _sinceCrawlDate;
private List _slackEntityList = new List();
private string _teamId;
private bool? _useChangeLog;
private DataSourceVpcConfiguration _vpcConfiguration;
///
/// Gets and sets the property CrawlBotMessage.
///
/// TRUE
to index bot messages from your Slack workspace team.
///
///
public bool CrawlBotMessage
{
get { return this._crawlBotMessage.GetValueOrDefault(); }
set { this._crawlBotMessage = value; }
}
// Check to see if CrawlBotMessage property is set
internal bool IsSetCrawlBotMessage()
{
return this._crawlBotMessage.HasValue;
}
///
/// Gets and sets the property ExcludeArchived.
///
/// TRUE
to exclude archived messages to index from your Slack workspace
/// team.
///
///
public bool ExcludeArchived
{
get { return this._excludeArchived.GetValueOrDefault(); }
set { this._excludeArchived = value; }
}
// Check to see if ExcludeArchived property is set
internal bool IsSetExcludeArchived()
{
return this._excludeArchived.HasValue;
}
///
/// Gets and sets the property ExclusionPatterns.
///
/// A list of regular expression patterns to exclude certain attached files in your Slack
/// workspace team. Files that match the patterns are excluded from the index. Files that
/// don’t match the patterns are included in 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.
///
///
[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 Slack data source
/// attributes or field names to Amazon Kendra index field names. To create custom fields,
/// use the UpdateIndex
API before you map to Slack fields. For more information,
/// see Mapping
/// data source fields. The Slack data source field names must exist in your Slack
/// 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 attached files in your Slack
/// workspace team. Files that match the patterns are included in the index. Files 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.
///
///
[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 LookBackPeriod.
///
/// The number of hours for change log to look back from when you last synchronized your
/// data. You can look back up to 7 days or 168 hours.
///
///
///
/// Change log updates your index only if new content was added since you last synced
/// your data. Updated or deleted content from before you last synced does not get updated
/// in your index. To capture updated or deleted content before you last synced, set the
/// LookBackPeriod
to the number of hours you want change log to look back.
///
///
[AWSProperty(Min=0, Max=168)]
public int LookBackPeriod
{
get { return this._lookBackPeriod.GetValueOrDefault(); }
set { this._lookBackPeriod = value; }
}
// Check to see if LookBackPeriod property is set
internal bool IsSetLookBackPeriod()
{
return this._lookBackPeriod.HasValue;
}
///
/// Gets and sets the property PrivateChannelFilter.
///
/// The list of private channel names from your Slack workspace team. You use this if
/// you want to index specific private channels, not all private channels. You can also
/// use regular expression patterns to filter private channels.
///
///
public List PrivateChannelFilter
{
get { return this._privateChannelFilter; }
set { this._privateChannelFilter = value; }
}
// Check to see if PrivateChannelFilter property is set
internal bool IsSetPrivateChannelFilter()
{
return this._privateChannelFilter != null && this._privateChannelFilter.Count > 0;
}
///
/// Gets and sets the property PublicChannelFilter.
///
/// The list of public channel names to index from your Slack workspace team. You use
/// this if you want to index specific public channels, not all public channels. You can
/// also use regular expression patterns to filter public channels.
///
///
public List PublicChannelFilter
{
get { return this._publicChannelFilter; }
set { this._publicChannelFilter = value; }
}
// Check to see if PublicChannelFilter property is set
internal bool IsSetPublicChannelFilter()
{
return this._publicChannelFilter != null && this._publicChannelFilter.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 Slack workspace team. The secret must contain a
/// JSON structure with the following keys:
///
///
///
[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 SinceCrawlDate.
///
/// The date to start crawling your data from your Slack workspace team. The date must
/// follow this format: yyyy-mm-dd
.
///
///
[AWSProperty(Required=true, Min=10, Max=10)]
public string SinceCrawlDate
{
get { return this._sinceCrawlDate; }
set { this._sinceCrawlDate = value; }
}
// Check to see if SinceCrawlDate property is set
internal bool IsSetSinceCrawlDate()
{
return this._sinceCrawlDate != null;
}
///
/// Gets and sets the property SlackEntityList.
///
/// Specify whether to index public channels, private channels, group messages, and direct
/// messages. You can specify one or more of these options.
///
///
[AWSProperty(Required=true, Min=1, Max=4)]
public List SlackEntityList
{
get { return this._slackEntityList; }
set { this._slackEntityList = value; }
}
// Check to see if SlackEntityList property is set
internal bool IsSetSlackEntityList()
{
return this._slackEntityList != null && this._slackEntityList.Count > 0;
}
///
/// Gets and sets the property TeamId.
///
/// The identifier of the team in the Slack workspace. For example, T0123456789.
///
///
///
/// You can find your team ID in the URL of the main page of your Slack workspace. When
/// you log in to Slack via a browser, you are directed to the URL of the main page. For
/// example, https://app.slack.com/client/T0123456789/....
///
///
[AWSProperty(Required=true, Min=1, Max=64)]
public string TeamId
{
get { return this._teamId; }
set { this._teamId = value; }
}
// Check to see if TeamId property is set
internal bool IsSetTeamId()
{
return this._teamId != null;
}
///
/// 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 Slack change log's size, it may take longer
/// for Amazon Kendra to use the change log than to scan all of your documents in Slack.
///
///
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 Slack.
/// 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;
}
}
}