/* * 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; } } }