/*
* 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 GitHub as your data source.
///
public partial class GitHubConfiguration
{
private List _exclusionFileNamePatterns = new List();
private List _exclusionFileTypePatterns = new List();
private List _exclusionFolderNamePatterns = new List();
private List _gitHubCommitConfigurationFieldMappings = new List();
private GitHubDocumentCrawlProperties _gitHubDocumentCrawlProperties;
private List _gitHubIssueAttachmentConfigurationFieldMappings = new List();
private List _gitHubIssueCommentConfigurationFieldMappings = new List();
private List _gitHubIssueDocumentConfigurationFieldMappings = new List();
private List _gitHubPullRequestCommentConfigurationFieldMappings = new List();
private List _gitHubPullRequestDocumentAttachmentConfigurationFieldMappings = new List();
private List _gitHubPullRequestDocumentConfigurationFieldMappings = new List();
private List _gitHubRepositoryConfigurationFieldMappings = new List();
private List _inclusionFileNamePatterns = new List();
private List _inclusionFileTypePatterns = new List();
private List _inclusionFolderNamePatterns = new List();
private OnPremiseConfiguration _onPremiseConfiguration;
private List _repositoryFilter = new List();
private SaaSConfiguration _saaSConfiguration;
private string _secretArn;
private Type _type;
private bool? _useChangeLog;
private DataSourceVpcConfiguration _vpcConfiguration;
///
/// Gets and sets the property ExclusionFileNamePatterns.
///
/// A list of regular expression patterns to exclude certain file names in your GitHub
/// repository or repositories. File names that match the patterns are excluded from the
/// index. File names that don't match the patterns are included in the index. If a file
/// matches both an exclusion and inclusion pattern, the exclusion pattern takes precedence
/// and the file isn't included in the index.
///
///
public List ExclusionFileNamePatterns
{
get { return this._exclusionFileNamePatterns; }
set { this._exclusionFileNamePatterns = value; }
}
// Check to see if ExclusionFileNamePatterns property is set
internal bool IsSetExclusionFileNamePatterns()
{
return this._exclusionFileNamePatterns != null && this._exclusionFileNamePatterns.Count > 0;
}
///
/// Gets and sets the property ExclusionFileTypePatterns.
///
/// A list of regular expression patterns to exclude certain file types in your GitHub
/// repository or repositories. File types that match the patterns are excluded from the
/// index. File types that don't match the patterns are included in the index. If a file
/// matches both an exclusion and inclusion pattern, the exclusion pattern takes precedence
/// and the file isn't included in the index.
///
///
public List ExclusionFileTypePatterns
{
get { return this._exclusionFileTypePatterns; }
set { this._exclusionFileTypePatterns = value; }
}
// Check to see if ExclusionFileTypePatterns property is set
internal bool IsSetExclusionFileTypePatterns()
{
return this._exclusionFileTypePatterns != null && this._exclusionFileTypePatterns.Count > 0;
}
///
/// Gets and sets the property ExclusionFolderNamePatterns.
///
/// A list of regular expression patterns to exclude certain folder names in your GitHub
/// repository or repositories. Folder names that match the patterns are excluded from
/// the index. Folder names that don't match the patterns are included in the index. If
/// a folder matches both an exclusion and inclusion pattern, the exclusion pattern takes
/// precedence and the folder isn't included in the index.
///
///
public List ExclusionFolderNamePatterns
{
get { return this._exclusionFolderNamePatterns; }
set { this._exclusionFolderNamePatterns = value; }
}
// Check to see if ExclusionFolderNamePatterns property is set
internal bool IsSetExclusionFolderNamePatterns()
{
return this._exclusionFolderNamePatterns != null && this._exclusionFolderNamePatterns.Count > 0;
}
///
/// Gets and sets the property GitHubCommitConfigurationFieldMappings.
///
/// A list of DataSourceToIndexFieldMapping
objects that map attributes or
/// field names of GitHub commits to Amazon Kendra index field names. To create custom
/// fields, use the UpdateIndex
API before you map to GitHub fields. For
/// more information, see Mapping
/// data source fields. The GitHub data source field names must exist in your GitHub
/// custom metadata.
///
///
[AWSProperty(Min=1, Max=100)]
public List GitHubCommitConfigurationFieldMappings
{
get { return this._gitHubCommitConfigurationFieldMappings; }
set { this._gitHubCommitConfigurationFieldMappings = value; }
}
// Check to see if GitHubCommitConfigurationFieldMappings property is set
internal bool IsSetGitHubCommitConfigurationFieldMappings()
{
return this._gitHubCommitConfigurationFieldMappings != null && this._gitHubCommitConfigurationFieldMappings.Count > 0;
}
///
/// Gets and sets the property GitHubDocumentCrawlProperties.
///
/// Configuration information to include certain types of GitHub content. You can configure
/// to index repository files only, or also include issues and pull requests, comments,
/// and comment attachments.
///
///
public GitHubDocumentCrawlProperties GitHubDocumentCrawlProperties
{
get { return this._gitHubDocumentCrawlProperties; }
set { this._gitHubDocumentCrawlProperties = value; }
}
// Check to see if GitHubDocumentCrawlProperties property is set
internal bool IsSetGitHubDocumentCrawlProperties()
{
return this._gitHubDocumentCrawlProperties != null;
}
///
/// Gets and sets the property GitHubIssueAttachmentConfigurationFieldMappings.
///
/// A list of DataSourceToIndexFieldMapping
objects that map attributes or
/// field names of GitHub issue attachments to Amazon Kendra index field names. To create
/// custom fields, use the UpdateIndex
API before you map to GitHub fields.
/// For more information, see Mapping
/// data source fields. The GitHub data source field names must exist in your GitHub
/// custom metadata.
///
///
[AWSProperty(Min=1, Max=100)]
public List GitHubIssueAttachmentConfigurationFieldMappings
{
get { return this._gitHubIssueAttachmentConfigurationFieldMappings; }
set { this._gitHubIssueAttachmentConfigurationFieldMappings = value; }
}
// Check to see if GitHubIssueAttachmentConfigurationFieldMappings property is set
internal bool IsSetGitHubIssueAttachmentConfigurationFieldMappings()
{
return this._gitHubIssueAttachmentConfigurationFieldMappings != null && this._gitHubIssueAttachmentConfigurationFieldMappings.Count > 0;
}
///
/// Gets and sets the property GitHubIssueCommentConfigurationFieldMappings.
///
/// A list of DataSourceToIndexFieldMapping
objects that map attributes or
/// field names of GitHub issue comments to Amazon Kendra index field names. To create
/// custom fields, use the UpdateIndex
API before you map to GitHub fields.
/// For more information, see Mapping
/// data source fields. The GitHub data source field names must exist in your GitHub
/// custom metadata.
///
///
[AWSProperty(Min=1, Max=100)]
public List GitHubIssueCommentConfigurationFieldMappings
{
get { return this._gitHubIssueCommentConfigurationFieldMappings; }
set { this._gitHubIssueCommentConfigurationFieldMappings = value; }
}
// Check to see if GitHubIssueCommentConfigurationFieldMappings property is set
internal bool IsSetGitHubIssueCommentConfigurationFieldMappings()
{
return this._gitHubIssueCommentConfigurationFieldMappings != null && this._gitHubIssueCommentConfigurationFieldMappings.Count > 0;
}
///
/// Gets and sets the property GitHubIssueDocumentConfigurationFieldMappings.
///
/// A list of DataSourceToIndexFieldMapping
objects that map attributes or
/// field names of GitHub issues to Amazon Kendra index field names. To create custom
/// fields, use the UpdateIndex
API before you map to GitHub fields. For
/// more information, see Mapping
/// data source fields. The GitHub data source field names must exist in your GitHub
/// custom metadata.
///
///
[AWSProperty(Min=1, Max=100)]
public List GitHubIssueDocumentConfigurationFieldMappings
{
get { return this._gitHubIssueDocumentConfigurationFieldMappings; }
set { this._gitHubIssueDocumentConfigurationFieldMappings = value; }
}
// Check to see if GitHubIssueDocumentConfigurationFieldMappings property is set
internal bool IsSetGitHubIssueDocumentConfigurationFieldMappings()
{
return this._gitHubIssueDocumentConfigurationFieldMappings != null && this._gitHubIssueDocumentConfigurationFieldMappings.Count > 0;
}
///
/// Gets and sets the property GitHubPullRequestCommentConfigurationFieldMappings.
///
/// A list of DataSourceToIndexFieldMapping
objects that map attributes or
/// field names of GitHub pull request comments to Amazon Kendra index field names. To
/// create custom fields, use the UpdateIndex
API before you map to GitHub
/// fields. For more information, see Mapping
/// data source fields. The GitHub data source field names must exist in your GitHub
/// custom metadata.
///
///
[AWSProperty(Min=1, Max=100)]
public List GitHubPullRequestCommentConfigurationFieldMappings
{
get { return this._gitHubPullRequestCommentConfigurationFieldMappings; }
set { this._gitHubPullRequestCommentConfigurationFieldMappings = value; }
}
// Check to see if GitHubPullRequestCommentConfigurationFieldMappings property is set
internal bool IsSetGitHubPullRequestCommentConfigurationFieldMappings()
{
return this._gitHubPullRequestCommentConfigurationFieldMappings != null && this._gitHubPullRequestCommentConfigurationFieldMappings.Count > 0;
}
///
/// Gets and sets the property GitHubPullRequestDocumentAttachmentConfigurationFieldMappings.
///
///
/// A list of DataSourceToIndexFieldMapping
objects that map attributes or
/// field names of GitHub pull request attachments to Amazon Kendra index field names.
/// To create custom fields, use the UpdateIndex
API before you map to GitHub
/// fields. For more information, see Mapping
/// data source fields. The GitHub data source field names must exist in your GitHub
/// custom metadata.
///
///
[AWSProperty(Min=1, Max=100)]
public List GitHubPullRequestDocumentAttachmentConfigurationFieldMappings
{
get { return this._gitHubPullRequestDocumentAttachmentConfigurationFieldMappings; }
set { this._gitHubPullRequestDocumentAttachmentConfigurationFieldMappings = value; }
}
// Check to see if GitHubPullRequestDocumentAttachmentConfigurationFieldMappings property is set
internal bool IsSetGitHubPullRequestDocumentAttachmentConfigurationFieldMappings()
{
return this._gitHubPullRequestDocumentAttachmentConfigurationFieldMappings != null && this._gitHubPullRequestDocumentAttachmentConfigurationFieldMappings.Count > 0;
}
///
/// Gets and sets the property GitHubPullRequestDocumentConfigurationFieldMappings.
///
/// A list of DataSourceToIndexFieldMapping
objects that map attributes or
/// field names of GitHub pull requests to Amazon Kendra index field names. To create
/// custom fields, use the UpdateIndex
API before you map to GitHub fields.
/// For more information, see Mapping
/// data source fields. The GitHub data source field names must exist in your GitHub
/// custom metadata.
///
///
[AWSProperty(Min=1, Max=100)]
public List GitHubPullRequestDocumentConfigurationFieldMappings
{
get { return this._gitHubPullRequestDocumentConfigurationFieldMappings; }
set { this._gitHubPullRequestDocumentConfigurationFieldMappings = value; }
}
// Check to see if GitHubPullRequestDocumentConfigurationFieldMappings property is set
internal bool IsSetGitHubPullRequestDocumentConfigurationFieldMappings()
{
return this._gitHubPullRequestDocumentConfigurationFieldMappings != null && this._gitHubPullRequestDocumentConfigurationFieldMappings.Count > 0;
}
///
/// Gets and sets the property GitHubRepositoryConfigurationFieldMappings.
///
/// A list of DataSourceToIndexFieldMapping
objects that map GitHub repository
/// attributes or field names to Amazon Kendra index field names. To create custom fields,
/// use the UpdateIndex
API before you map to GitHub fields. For more information,
/// see Mapping
/// data source fields. The GitHub data source field names must exist in your GitHub
/// custom metadata.
///
///
[AWSProperty(Min=1, Max=100)]
public List GitHubRepositoryConfigurationFieldMappings
{
get { return this._gitHubRepositoryConfigurationFieldMappings; }
set { this._gitHubRepositoryConfigurationFieldMappings = value; }
}
// Check to see if GitHubRepositoryConfigurationFieldMappings property is set
internal bool IsSetGitHubRepositoryConfigurationFieldMappings()
{
return this._gitHubRepositoryConfigurationFieldMappings != null && this._gitHubRepositoryConfigurationFieldMappings.Count > 0;
}
///
/// Gets and sets the property InclusionFileNamePatterns.
///
/// A list of regular expression patterns to include certain file names in your GitHub
/// repository or repositories. File names that match the patterns are included in the
/// index. File names 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.
///
///
public List InclusionFileNamePatterns
{
get { return this._inclusionFileNamePatterns; }
set { this._inclusionFileNamePatterns = value; }
}
// Check to see if InclusionFileNamePatterns property is set
internal bool IsSetInclusionFileNamePatterns()
{
return this._inclusionFileNamePatterns != null && this._inclusionFileNamePatterns.Count > 0;
}
///
/// Gets and sets the property InclusionFileTypePatterns.
///
/// A list of regular expression patterns to include certain file types in your GitHub
/// repository or repositories. File types that match the patterns are included in the
/// index. File types 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.
///
///
public List InclusionFileTypePatterns
{
get { return this._inclusionFileTypePatterns; }
set { this._inclusionFileTypePatterns = value; }
}
// Check to see if InclusionFileTypePatterns property is set
internal bool IsSetInclusionFileTypePatterns()
{
return this._inclusionFileTypePatterns != null && this._inclusionFileTypePatterns.Count > 0;
}
///
/// Gets and sets the property InclusionFolderNamePatterns.
///
/// A list of regular expression patterns to include certain folder names in your GitHub
/// repository or repositories. Folder names that match the patterns are included in the
/// index. Folder names that don't match the patterns are excluded from the index. If
/// a folder matches both an inclusion and exclusion pattern, the exclusion pattern takes
/// precedence and the folder isn't included in the index.
///
///
public List InclusionFolderNamePatterns
{
get { return this._inclusionFolderNamePatterns; }
set { this._inclusionFolderNamePatterns = value; }
}
// Check to see if InclusionFolderNamePatterns property is set
internal bool IsSetInclusionFolderNamePatterns()
{
return this._inclusionFolderNamePatterns != null && this._inclusionFolderNamePatterns.Count > 0;
}
///
/// Gets and sets the property OnPremiseConfiguration.
///
/// Configuration information to connect to GitHub Enterprise Server (on premises).
///
///
public OnPremiseConfiguration OnPremiseConfiguration
{
get { return this._onPremiseConfiguration; }
set { this._onPremiseConfiguration = value; }
}
// Check to see if OnPremiseConfiguration property is set
internal bool IsSetOnPremiseConfiguration()
{
return this._onPremiseConfiguration != null;
}
///
/// Gets and sets the property RepositoryFilter.
///
/// A list of names of the specific repositories you want to index.
///
///
public List RepositoryFilter
{
get { return this._repositoryFilter; }
set { this._repositoryFilter = value; }
}
// Check to see if RepositoryFilter property is set
internal bool IsSetRepositoryFilter()
{
return this._repositoryFilter != null && this._repositoryFilter.Count > 0;
}
///
/// Gets and sets the property SaaSConfiguration.
///
/// Configuration information to connect to GitHub Enterprise Cloud (SaaS).
///
///
public SaaSConfiguration SaaSConfiguration
{
get { return this._saaSConfiguration; }
set { this._saaSConfiguration = value; }
}
// Check to see if SaaSConfiguration property is set
internal bool IsSetSaaSConfiguration()
{
return this._saaSConfiguration != null;
}
///
/// 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 GitHub. The secret must contain a JSON structure
/// with the following keys:
///
/// -
///
/// personalToken—The access token created in GitHub. For more information on creating
/// a token in GitHub, see Using
/// a GitHub 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 Type.
///
/// The type of GitHub service you want to connect to—GitHub Enterprise Cloud (SaaS) or
/// GitHub Enterprise Server (on premises).
///
///
public Type Type
{
get { return this._type; }
set { this._type = value; }
}
// Check to see if Type property is set
internal bool IsSetType()
{
return this._type != null;
}
///
/// Gets and sets the property UseChangeLog.
///
/// TRUE
to use the GitHub change log to determine which documents require
/// updating in the index. Depending on the GitHub change log's size, it may take longer
/// for Amazon Kendra to use the change log than to scan all of your documents in GitHub.
///
///
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 of an Amazon Virtual Private Cloud to connect to your GitHub.
/// 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;
}
}
}