VaporShell.Kendra.Classes.ps1

using namespace System
using namespace System.Collections
using namespace System.Collections.Generic
using namespace System.IO
using namespace System.Management.Automation
[CmdletBinding()]
Param()

Write-Verbose "Importing class 'KendraDataSourceConfluenceAttachmentToIndexFieldMapping'"

class KendraDataSourceConfluenceAttachmentToIndexFieldMapping : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceConfluenceAttachmentToIndexFieldMapping'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceattachmenttoindexfieldmapping.html'

    hidden [object] $_dataSourceFieldName
    hidden [object] $_dateFieldFormat
    hidden [object] $_indexFieldName

    [string] $DataSourceFieldName
    [string] $DateFieldFormat
    [string] $IndexFieldName

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DataSourceFieldName -Value {
            $this._dataSourceFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dataSourceFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DateFieldFormat -Value {
            $this._dateFieldFormat
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dateFieldFormat = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IndexFieldName -Value {
            $this._indexFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._indexFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    KendraDataSourceConfluenceAttachmentToIndexFieldMapping() : base() {}
    KendraDataSourceConfluenceAttachmentToIndexFieldMapping([IDictionary] $props) : base($props) {}
    KendraDataSourceConfluenceAttachmentToIndexFieldMapping([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceSalesforceStandardObjectConfiguration'"

class KendraDataSourceSalesforceStandardObjectConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceSalesforceStandardObjectConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcestandardobjectconfiguration.html'

    hidden [object] $_name
    hidden [object] $_documentDataFieldName
    hidden [object] $_documentTitleFieldName
    hidden [object] $_fieldMappings

    [string] $Name
    [string] $DocumentDataFieldName
    [string] $DocumentTitleFieldName
    [KendraDataSourceDataSourceToIndexFieldMapping[]] $FieldMappings

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this._name
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._name = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentDataFieldName -Value {
            $this._documentDataFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentDataFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentTitleFieldName -Value {
            $this._documentTitleFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentTitleFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FieldMappings -Value {
            $this._fieldMappings
        } -SecondValue {
            param([ValidateType(([KendraDataSourceDataSourceToIndexFieldMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._fieldMappings = $value
        }
    }

    KendraDataSourceSalesforceStandardObjectConfiguration() : base() {}
    KendraDataSourceSalesforceStandardObjectConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceSalesforceStandardObjectConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceSalesforceChatterFeedConfiguration'"

class KendraDataSourceSalesforceChatterFeedConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceSalesforceChatterFeedConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcechatterfeedconfiguration.html'

    hidden [object] $_documentDataFieldName
    hidden [object] $_documentTitleFieldName
    hidden [object] $_fieldMappings
    hidden [object] $_includeFilterTypes

    [string] $DocumentDataFieldName
    [string] $DocumentTitleFieldName
    [KendraDataSourceDataSourceToIndexFieldMapping[]] $FieldMappings
    [string[]] $IncludeFilterTypes

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentDataFieldName -Value {
            $this._documentDataFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentDataFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentTitleFieldName -Value {
            $this._documentTitleFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentTitleFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FieldMappings -Value {
            $this._fieldMappings
        } -SecondValue {
            param([ValidateType(([KendraDataSourceDataSourceToIndexFieldMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._fieldMappings = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeFilterTypes -Value {
            $this._includeFilterTypes
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._includeFilterTypes = @($value)
        }
    }

    KendraDataSourceSalesforceChatterFeedConfiguration() : base() {}
    KendraDataSourceSalesforceChatterFeedConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceSalesforceChatterFeedConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceSalesforceConfiguration'"

class KendraDataSourceSalesforceConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceSalesforceConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceconfiguration.html'

    hidden [object] $_serverUrl
    hidden [object] $_secretArn
    hidden [object] $_standardObjectConfigurations
    hidden [object] $_knowledgeArticleConfiguration
    hidden [object] $_chatterFeedConfiguration
    hidden [object] $_crawlAttachments
    hidden [object] $_standardObjectAttachmentConfiguration
    hidden [object] $_includeAttachmentFilePatterns
    hidden [object] $_excludeAttachmentFilePatterns

    [string] $ServerUrl
    [string] $SecretArn
    [KendraDataSourceSalesforceStandardObjectConfiguration[]] $StandardObjectConfigurations
    [KendraDataSourceSalesforceKnowledgeArticleConfiguration] $KnowledgeArticleConfiguration
    [KendraDataSourceSalesforceChatterFeedConfiguration] $ChatterFeedConfiguration
    [bool] $CrawlAttachments
    [KendraDataSourceSalesforceStandardObjectAttachmentConfiguration] $StandardObjectAttachmentConfiguration
    [string[]] $IncludeAttachmentFilePatterns
    [string[]] $ExcludeAttachmentFilePatterns

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServerUrl -Value {
            $this._serverUrl
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serverUrl = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretArn -Value {
            $this._secretArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StandardObjectConfigurations -Value {
            $this._standardObjectConfigurations
        } -SecondValue {
            param([ValidateType(([KendraDataSourceSalesforceStandardObjectConfiguration], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._standardObjectConfigurations = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KnowledgeArticleConfiguration -Value {
            $this._knowledgeArticleConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceSalesforceKnowledgeArticleConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._knowledgeArticleConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ChatterFeedConfiguration -Value {
            $this._chatterFeedConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceSalesforceChatterFeedConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._chatterFeedConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CrawlAttachments -Value {
            $this._crawlAttachments
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._crawlAttachments = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StandardObjectAttachmentConfiguration -Value {
            $this._standardObjectAttachmentConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceSalesforceStandardObjectAttachmentConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._standardObjectAttachmentConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeAttachmentFilePatterns -Value {
            $this._includeAttachmentFilePatterns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._includeAttachmentFilePatterns = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExcludeAttachmentFilePatterns -Value {
            $this._excludeAttachmentFilePatterns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._excludeAttachmentFilePatterns = @($value)
        }
    }

    KendraDataSourceSalesforceConfiguration() : base() {}
    KendraDataSourceSalesforceConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceSalesforceConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceColumnConfiguration'"

class KendraDataSourceColumnConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceColumnConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-columnconfiguration.html'

    hidden [object] $_documentIdColumnName
    hidden [object] $_documentDataColumnName
    hidden [object] $_documentTitleColumnName
    hidden [object] $_fieldMappings
    hidden [object] $_changeDetectingColumns

    [string] $DocumentIdColumnName
    [string] $DocumentDataColumnName
    [string] $DocumentTitleColumnName
    [KendraDataSourceDataSourceToIndexFieldMapping[]] $FieldMappings
    [string[]] $ChangeDetectingColumns

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentIdColumnName -Value {
            $this._documentIdColumnName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentIdColumnName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentDataColumnName -Value {
            $this._documentDataColumnName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentDataColumnName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentTitleColumnName -Value {
            $this._documentTitleColumnName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentTitleColumnName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FieldMappings -Value {
            $this._fieldMappings
        } -SecondValue {
            param([ValidateType(([KendraDataSourceDataSourceToIndexFieldMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._fieldMappings = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ChangeDetectingColumns -Value {
            $this._changeDetectingColumns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._changeDetectingColumns = @($value)
        }
    }

    KendraDataSourceColumnConfiguration() : base() {}
    KendraDataSourceColumnConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceColumnConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceServiceNowKnowledgeArticleConfiguration'"

class KendraDataSourceServiceNowKnowledgeArticleConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceServiceNowKnowledgeArticleConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowknowledgearticleconfiguration.html'

    hidden [object] $_crawlAttachments
    hidden [object] $_includeAttachmentFilePatterns
    hidden [object] $_excludeAttachmentFilePatterns
    hidden [object] $_documentDataFieldName
    hidden [object] $_documentTitleFieldName
    hidden [object] $_fieldMappings

    [bool] $CrawlAttachments
    [string[]] $IncludeAttachmentFilePatterns
    [string[]] $ExcludeAttachmentFilePatterns
    [string] $DocumentDataFieldName
    [string] $DocumentTitleFieldName
    [KendraDataSourceDataSourceToIndexFieldMapping[]] $FieldMappings

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CrawlAttachments -Value {
            $this._crawlAttachments
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._crawlAttachments = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeAttachmentFilePatterns -Value {
            $this._includeAttachmentFilePatterns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._includeAttachmentFilePatterns = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExcludeAttachmentFilePatterns -Value {
            $this._excludeAttachmentFilePatterns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._excludeAttachmentFilePatterns = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentDataFieldName -Value {
            $this._documentDataFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentDataFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentTitleFieldName -Value {
            $this._documentTitleFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentTitleFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FieldMappings -Value {
            $this._fieldMappings
        } -SecondValue {
            param([ValidateType(([KendraDataSourceDataSourceToIndexFieldMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._fieldMappings = $value
        }
    }

    KendraDataSourceServiceNowKnowledgeArticleConfiguration() : base() {}
    KendraDataSourceServiceNowKnowledgeArticleConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceServiceNowKnowledgeArticleConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceConfluenceSpaceConfiguration'"

class KendraDataSourceConfluenceSpaceConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceConfluenceSpaceConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencespaceconfiguration.html'

    hidden [object] $_crawlPersonalSpaces
    hidden [object] $_crawlArchivedSpaces
    hidden [object] $_includeSpaces
    hidden [object] $_excludeSpaces
    hidden [object] $_spaceFieldMappings

    [bool] $CrawlPersonalSpaces
    [bool] $CrawlArchivedSpaces
    [string[]] $IncludeSpaces
    [string[]] $ExcludeSpaces
    [KendraDataSourceConfluenceSpaceToIndexFieldMapping[]] $SpaceFieldMappings

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CrawlPersonalSpaces -Value {
            $this._crawlPersonalSpaces
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._crawlPersonalSpaces = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CrawlArchivedSpaces -Value {
            $this._crawlArchivedSpaces
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._crawlArchivedSpaces = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeSpaces -Value {
            $this._includeSpaces
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._includeSpaces = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExcludeSpaces -Value {
            $this._excludeSpaces
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._excludeSpaces = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SpaceFieldMappings -Value {
            $this._spaceFieldMappings
        } -SecondValue {
            param([ValidateType(([KendraDataSourceConfluenceSpaceToIndexFieldMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._spaceFieldMappings = $value
        }
    }

    KendraDataSourceConfluenceSpaceConfiguration() : base() {}
    KendraDataSourceConfluenceSpaceConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceConfluenceSpaceConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraIndexServerSideEncryptionConfiguration'"

class KendraIndexServerSideEncryptionConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraIndexServerSideEncryptionConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-serversideencryptionconfiguration.html'

    hidden [object] $_kmsKeyId

    [string] $KmsKeyId

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name KmsKeyId -Value {
            $this._kmsKeyId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._kmsKeyId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    KendraIndexServerSideEncryptionConfiguration() : base() {}
    KendraIndexServerSideEncryptionConfiguration([IDictionary] $props) : base($props) {}
    KendraIndexServerSideEncryptionConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceGoogleDriveConfiguration'"

class KendraDataSourceGoogleDriveConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceGoogleDriveConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-googledriveconfiguration.html'

    hidden [object] $_secretArn
    hidden [object] $_inclusionPatterns
    hidden [object] $_exclusionPatterns
    hidden [object] $_fieldMappings
    hidden [object] $_excludeMimeTypes
    hidden [object] $_excludeUserAccounts
    hidden [object] $_excludeSharedDrives

    [string] $SecretArn
    [string[]] $InclusionPatterns
    [string[]] $ExclusionPatterns
    [KendraDataSourceDataSourceToIndexFieldMapping[]] $FieldMappings
    [string[]] $ExcludeMimeTypes
    [string[]] $ExcludeUserAccounts
    [string[]] $ExcludeSharedDrives

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretArn -Value {
            $this._secretArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InclusionPatterns -Value {
            $this._inclusionPatterns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._inclusionPatterns = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExclusionPatterns -Value {
            $this._exclusionPatterns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._exclusionPatterns = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FieldMappings -Value {
            $this._fieldMappings
        } -SecondValue {
            param([ValidateType(([KendraDataSourceDataSourceToIndexFieldMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._fieldMappings = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExcludeMimeTypes -Value {
            $this._excludeMimeTypes
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._excludeMimeTypes = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExcludeUserAccounts -Value {
            $this._excludeUserAccounts
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._excludeUserAccounts = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExcludeSharedDrives -Value {
            $this._excludeSharedDrives
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._excludeSharedDrives = @($value)
        }
    }

    KendraDataSourceGoogleDriveConfiguration() : base() {}
    KendraDataSourceGoogleDriveConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceGoogleDriveConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraIndexJsonTokenTypeConfiguration'"

class KendraIndexJsonTokenTypeConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraIndexJsonTokenTypeConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-jsontokentypeconfiguration.html'

    hidden [object] $_userNameAttributeField
    hidden [object] $_groupAttributeField

    [string] $UserNameAttributeField
    [string] $GroupAttributeField

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name UserNameAttributeField -Value {
            $this._userNameAttributeField
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._userNameAttributeField = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GroupAttributeField -Value {
            $this._groupAttributeField
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._groupAttributeField = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    KendraIndexJsonTokenTypeConfiguration() : base() {}
    KendraIndexJsonTokenTypeConfiguration([IDictionary] $props) : base($props) {}
    KendraIndexJsonTokenTypeConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraIndexValueImportanceItem'"

class KendraIndexValueImportanceItem : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraIndexValueImportanceItem'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-valueimportanceitem.html'

    hidden [object] $_key
    hidden [object] $_value

    [string] $Key
    [int] $Value

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Key -Value {
            $this._key
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._key = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Value -Value {
            $this._value
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._value = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

    KendraIndexValueImportanceItem() : base() {}
    KendraIndexValueImportanceItem([IDictionary] $props) : base($props) {}
    KendraIndexValueImportanceItem([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraFaqS3Path'"

class KendraFaqS3Path : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraFaqS3Path'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-faq-s3path.html'

    hidden [object] $_bucket
    hidden [object] $_key

    [string] $Bucket
    [string] $Key

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Bucket -Value {
            $this._bucket
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._bucket = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Key -Value {
            $this._key
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._key = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    KendraFaqS3Path() : base() {}
    KendraFaqS3Path([IDictionary] $props) : base($props) {}
    KendraFaqS3Path([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraIndexDocumentMetadataConfiguration'"

class KendraIndexDocumentMetadataConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraIndexDocumentMetadataConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-documentmetadataconfiguration.html'

    hidden [object] $_name
    hidden [object] $_type
    hidden [object] $_relevance
    hidden [object] $_search

    [string] $Name
    [string] $Type
    [KendraIndexRelevance] $Relevance
    [KendraIndexSearch] $Search

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this._name
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._name = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Type -Value {
            $this._type
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._type = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Relevance -Value {
            $this._relevance
        } -SecondValue {
            param([ValidateType(([KendraIndexRelevance], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._relevance = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Search -Value {
            $this._search
        } -SecondValue {
            param([ValidateType(([KendraIndexSearch], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._search = $value
        }
    }

    KendraIndexDocumentMetadataConfiguration() : base() {}
    KendraIndexDocumentMetadataConfiguration([IDictionary] $props) : base($props) {}
    KendraIndexDocumentMetadataConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceS3Path'"

class KendraDataSourceS3Path : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceS3Path'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-s3path.html'

    hidden [object] $_bucket
    hidden [object] $_key

    [string] $Bucket
    [string] $Key

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Bucket -Value {
            $this._bucket
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._bucket = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Key -Value {
            $this._key
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._key = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    KendraDataSourceS3Path() : base() {}
    KendraDataSourceS3Path([IDictionary] $props) : base($props) {}
    KendraDataSourceS3Path([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceServiceNowConfiguration'"

class KendraDataSourceServiceNowConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceServiceNowConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowconfiguration.html'

    hidden [object] $_hostUrl
    hidden [object] $_secretArn
    hidden [object] $_serviceNowBuildVersion
    hidden [object] $_knowledgeArticleConfiguration
    hidden [object] $_serviceCatalogConfiguration

    [string] $HostUrl
    [string] $SecretArn
    [string] $ServiceNowBuildVersion
    [KendraDataSourceServiceNowKnowledgeArticleConfiguration] $KnowledgeArticleConfiguration
    [KendraDataSourceServiceNowServiceCatalogConfiguration] $ServiceCatalogConfiguration

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name HostUrl -Value {
            $this._hostUrl
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._hostUrl = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretArn -Value {
            $this._secretArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServiceNowBuildVersion -Value {
            $this._serviceNowBuildVersion
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serviceNowBuildVersion = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KnowledgeArticleConfiguration -Value {
            $this._knowledgeArticleConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceServiceNowKnowledgeArticleConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._knowledgeArticleConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServiceCatalogConfiguration -Value {
            $this._serviceCatalogConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceServiceNowServiceCatalogConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serviceCatalogConfiguration = $value
        }
    }

    KendraDataSourceServiceNowConfiguration() : base() {}
    KendraDataSourceServiceNowConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceServiceNowConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceConfluenceConfiguration'"

class KendraDataSourceConfluenceConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceConfluenceConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceconfiguration.html'

    hidden [object] $_serverUrl
    hidden [object] $_secretArn
    hidden [object] $_version
    hidden [object] $_spaceConfiguration
    hidden [object] $_pageConfiguration
    hidden [object] $_blogConfiguration
    hidden [object] $_attachmentConfiguration
    hidden [object] $_vpcConfiguration
    hidden [object] $_inclusionPatterns
    hidden [object] $_exclusionPatterns

    [string] $ServerUrl
    [string] $SecretArn
    [string] $Version
    [KendraDataSourceConfluenceSpaceConfiguration] $SpaceConfiguration
    [KendraDataSourceConfluencePageConfiguration] $PageConfiguration
    [KendraDataSourceConfluenceBlogConfiguration] $BlogConfiguration
    [KendraDataSourceConfluenceAttachmentConfiguration] $AttachmentConfiguration
    [KendraDataSourceDataSourceVpcConfiguration] $VpcConfiguration
    [string[]] $InclusionPatterns
    [string[]] $ExclusionPatterns

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServerUrl -Value {
            $this._serverUrl
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serverUrl = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretArn -Value {
            $this._secretArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Version -Value {
            $this._version
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._version = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SpaceConfiguration -Value {
            $this._spaceConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceConfluenceSpaceConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._spaceConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PageConfiguration -Value {
            $this._pageConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceConfluencePageConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._pageConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BlogConfiguration -Value {
            $this._blogConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceConfluenceBlogConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._blogConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AttachmentConfiguration -Value {
            $this._attachmentConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceConfluenceAttachmentConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._attachmentConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name VpcConfiguration -Value {
            $this._vpcConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceDataSourceVpcConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._vpcConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InclusionPatterns -Value {
            $this._inclusionPatterns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._inclusionPatterns = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExclusionPatterns -Value {
            $this._exclusionPatterns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._exclusionPatterns = @($value)
        }
    }

    KendraDataSourceConfluenceConfiguration() : base() {}
    KendraDataSourceConfluenceConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceConfluenceConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceConfluencePageToIndexFieldMapping'"

class KendraDataSourceConfluencePageToIndexFieldMapping : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceConfluencePageToIndexFieldMapping'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencepagetoindexfieldmapping.html'

    hidden [object] $_dataSourceFieldName
    hidden [object] $_dateFieldFormat
    hidden [object] $_indexFieldName

    [string] $DataSourceFieldName
    [string] $DateFieldFormat
    [string] $IndexFieldName

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DataSourceFieldName -Value {
            $this._dataSourceFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dataSourceFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DateFieldFormat -Value {
            $this._dateFieldFormat
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dateFieldFormat = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IndexFieldName -Value {
            $this._indexFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._indexFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    KendraDataSourceConfluencePageToIndexFieldMapping() : base() {}
    KendraDataSourceConfluencePageToIndexFieldMapping([IDictionary] $props) : base($props) {}
    KendraDataSourceConfluencePageToIndexFieldMapping([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceDatabaseConfiguration'"

class KendraDataSourceDatabaseConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceDatabaseConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-databaseconfiguration.html'

    hidden [object] $_databaseEngineType
    hidden [object] $_connectionConfiguration
    hidden [object] $_vpcConfiguration
    hidden [object] $_columnConfiguration
    hidden [object] $_aclConfiguration
    hidden [object] $_sqlConfiguration

    [string] $DatabaseEngineType
    [KendraDataSourceConnectionConfiguration] $ConnectionConfiguration
    [KendraDataSourceDataSourceVpcConfiguration] $VpcConfiguration
    [KendraDataSourceColumnConfiguration] $ColumnConfiguration
    [KendraDataSourceAclConfiguration] $AclConfiguration
    [KendraDataSourceSqlConfiguration] $SqlConfiguration

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DatabaseEngineType -Value {
            $this._databaseEngineType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._databaseEngineType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConnectionConfiguration -Value {
            $this._connectionConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceConnectionConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._connectionConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name VpcConfiguration -Value {
            $this._vpcConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceDataSourceVpcConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._vpcConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ColumnConfiguration -Value {
            $this._columnConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceColumnConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._columnConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AclConfiguration -Value {
            $this._aclConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceAclConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._aclConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SqlConfiguration -Value {
            $this._sqlConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceSqlConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sqlConfiguration = $value
        }
    }

    KendraDataSourceDatabaseConfiguration() : base() {}
    KendraDataSourceDatabaseConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceDatabaseConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraIndexUserTokenConfiguration'"

class KendraIndexUserTokenConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraIndexUserTokenConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-usertokenconfiguration.html'

    hidden [object] $_jwtTokenTypeConfiguration
    hidden [object] $_jsonTokenTypeConfiguration

    [KendraIndexJwtTokenTypeConfiguration] $JwtTokenTypeConfiguration
    [KendraIndexJsonTokenTypeConfiguration] $JsonTokenTypeConfiguration

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name JwtTokenTypeConfiguration -Value {
            $this._jwtTokenTypeConfiguration
        } -SecondValue {
            param([ValidateType(([KendraIndexJwtTokenTypeConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._jwtTokenTypeConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name JsonTokenTypeConfiguration -Value {
            $this._jsonTokenTypeConfiguration
        } -SecondValue {
            param([ValidateType(([KendraIndexJsonTokenTypeConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._jsonTokenTypeConfiguration = $value
        }
    }

    KendraIndexUserTokenConfiguration() : base() {}
    KendraIndexUserTokenConfiguration([IDictionary] $props) : base($props) {}
    KendraIndexUserTokenConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceSqlConfiguration'"

class KendraDataSourceSqlConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceSqlConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sqlconfiguration.html'

    hidden [object] $_queryIdentifiersEnclosingOption

    [string] $QueryIdentifiersEnclosingOption

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name QueryIdentifiersEnclosingOption -Value {
            $this._queryIdentifiersEnclosingOption
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._queryIdentifiersEnclosingOption = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    KendraDataSourceSqlConfiguration() : base() {}
    KendraDataSourceSqlConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceSqlConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceS3DataSourceConfiguration'"

class KendraDataSourceS3DataSourceConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceS3DataSourceConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-s3datasourceconfiguration.html'

    hidden [object] $_bucketName
    hidden [object] $_inclusionPrefixes
    hidden [object] $_inclusionPatterns
    hidden [object] $_exclusionPatterns
    hidden [object] $_documentsMetadataConfiguration
    hidden [object] $_accessControlListConfiguration

    [string] $BucketName
    [string[]] $InclusionPrefixes
    [string[]] $InclusionPatterns
    [string[]] $ExclusionPatterns
    [KendraDataSourceDocumentsMetadataConfiguration] $DocumentsMetadataConfiguration
    [KendraDataSourceAccessControlListConfiguration] $AccessControlListConfiguration

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name BucketName -Value {
            $this._bucketName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._bucketName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InclusionPrefixes -Value {
            $this._inclusionPrefixes
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._inclusionPrefixes = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InclusionPatterns -Value {
            $this._inclusionPatterns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._inclusionPatterns = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExclusionPatterns -Value {
            $this._exclusionPatterns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._exclusionPatterns = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentsMetadataConfiguration -Value {
            $this._documentsMetadataConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceDocumentsMetadataConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentsMetadataConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AccessControlListConfiguration -Value {
            $this._accessControlListConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceAccessControlListConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._accessControlListConfiguration = $value
        }
    }

    KendraDataSourceS3DataSourceConfiguration() : base() {}
    KendraDataSourceS3DataSourceConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceS3DataSourceConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceConfluenceBlogConfiguration'"

class KendraDataSourceConfluenceBlogConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceConfluenceBlogConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceblogconfiguration.html'

    hidden [object] $_blogFieldMappings

    [KendraDataSourceConfluenceBlogToIndexFieldMapping[]] $BlogFieldMappings

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name BlogFieldMappings -Value {
            $this._blogFieldMappings
        } -SecondValue {
            param([ValidateType(([KendraDataSourceConfluenceBlogToIndexFieldMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._blogFieldMappings = $value
        }
    }

    KendraDataSourceConfluenceBlogConfiguration() : base() {}
    KendraDataSourceConfluenceBlogConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceConfluenceBlogConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceConfluencePageConfiguration'"

class KendraDataSourceConfluencePageConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceConfluencePageConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencepageconfiguration.html'

    hidden [object] $_pageFieldMappings

    [KendraDataSourceConfluencePageToIndexFieldMapping[]] $PageFieldMappings

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name PageFieldMappings -Value {
            $this._pageFieldMappings
        } -SecondValue {
            param([ValidateType(([KendraDataSourceConfluencePageToIndexFieldMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._pageFieldMappings = $value
        }
    }

    KendraDataSourceConfluencePageConfiguration() : base() {}
    KendraDataSourceConfluencePageConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceConfluencePageConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraIndexSearch'"

class KendraIndexSearch : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraIndexSearch'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-search.html'

    hidden [object] $_facetable
    hidden [object] $_searchable
    hidden [object] $_displayable
    hidden [object] $_sortable

    [bool] $Facetable
    [bool] $Searchable
    [bool] $Displayable
    [bool] $Sortable

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Facetable -Value {
            $this._facetable
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._facetable = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Searchable -Value {
            $this._searchable
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._searchable = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Displayable -Value {
            $this._displayable
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._displayable = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Sortable -Value {
            $this._sortable
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sortable = $value
        }
    }

    KendraIndexSearch() : base() {}
    KendraIndexSearch([IDictionary] $props) : base($props) {}
    KendraIndexSearch([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceConnectionConfiguration'"

class KendraDataSourceConnectionConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceConnectionConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-connectionconfiguration.html'

    hidden [object] $_databaseHost
    hidden [object] $_databasePort
    hidden [object] $_databaseName
    hidden [object] $_tableName
    hidden [object] $_secretArn

    [string] $DatabaseHost
    [int] $DatabasePort
    [string] $DatabaseName
    [string] $TableName
    [string] $SecretArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DatabaseHost -Value {
            $this._databaseHost
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._databaseHost = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DatabasePort -Value {
            $this._databasePort
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._databasePort = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DatabaseName -Value {
            $this._databaseName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._databaseName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TableName -Value {
            $this._tableName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._tableName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretArn -Value {
            $this._secretArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    KendraDataSourceConnectionConfiguration() : base() {}
    KendraDataSourceConnectionConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceConnectionConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceServiceNowServiceCatalogConfiguration'"

class KendraDataSourceServiceNowServiceCatalogConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceServiceNowServiceCatalogConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-servicenowservicecatalogconfiguration.html'

    hidden [object] $_crawlAttachments
    hidden [object] $_includeAttachmentFilePatterns
    hidden [object] $_excludeAttachmentFilePatterns
    hidden [object] $_documentDataFieldName
    hidden [object] $_documentTitleFieldName
    hidden [object] $_fieldMappings

    [bool] $CrawlAttachments
    [string[]] $IncludeAttachmentFilePatterns
    [string[]] $ExcludeAttachmentFilePatterns
    [string] $DocumentDataFieldName
    [string] $DocumentTitleFieldName
    [KendraDataSourceDataSourceToIndexFieldMapping[]] $FieldMappings

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CrawlAttachments -Value {
            $this._crawlAttachments
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._crawlAttachments = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeAttachmentFilePatterns -Value {
            $this._includeAttachmentFilePatterns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._includeAttachmentFilePatterns = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExcludeAttachmentFilePatterns -Value {
            $this._excludeAttachmentFilePatterns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._excludeAttachmentFilePatterns = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentDataFieldName -Value {
            $this._documentDataFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentDataFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentTitleFieldName -Value {
            $this._documentTitleFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentTitleFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FieldMappings -Value {
            $this._fieldMappings
        } -SecondValue {
            param([ValidateType(([KendraDataSourceDataSourceToIndexFieldMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._fieldMappings = $value
        }
    }

    KendraDataSourceServiceNowServiceCatalogConfiguration() : base() {}
    KendraDataSourceServiceNowServiceCatalogConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceServiceNowServiceCatalogConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceSalesforceStandardObjectAttachmentConfiguration'"

class KendraDataSourceSalesforceStandardObjectAttachmentConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceSalesforceStandardObjectAttachmentConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcestandardobjectattachmentconfiguration.html'

    hidden [object] $_documentTitleFieldName
    hidden [object] $_fieldMappings

    [string] $DocumentTitleFieldName
    [KendraDataSourceDataSourceToIndexFieldMapping[]] $FieldMappings

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentTitleFieldName -Value {
            $this._documentTitleFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentTitleFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FieldMappings -Value {
            $this._fieldMappings
        } -SecondValue {
            param([ValidateType(([KendraDataSourceDataSourceToIndexFieldMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._fieldMappings = $value
        }
    }

    KendraDataSourceSalesforceStandardObjectAttachmentConfiguration() : base() {}
    KendraDataSourceSalesforceStandardObjectAttachmentConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceSalesforceStandardObjectAttachmentConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceSalesforceCustomKnowledgeArticleTypeConfiguration'"

class KendraDataSourceSalesforceCustomKnowledgeArticleTypeConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceSalesforceCustomKnowledgeArticleTypeConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcecustomknowledgearticletypeconfiguration.html'

    hidden [object] $_name
    hidden [object] $_documentDataFieldName
    hidden [object] $_documentTitleFieldName
    hidden [object] $_fieldMappings

    [string] $Name
    [string] $DocumentDataFieldName
    [string] $DocumentTitleFieldName
    [KendraDataSourceDataSourceToIndexFieldMapping[]] $FieldMappings

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this._name
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._name = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentDataFieldName -Value {
            $this._documentDataFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentDataFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentTitleFieldName -Value {
            $this._documentTitleFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentTitleFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FieldMappings -Value {
            $this._fieldMappings
        } -SecondValue {
            param([ValidateType(([KendraDataSourceDataSourceToIndexFieldMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._fieldMappings = $value
        }
    }

    KendraDataSourceSalesforceCustomKnowledgeArticleTypeConfiguration() : base() {}
    KendraDataSourceSalesforceCustomKnowledgeArticleTypeConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceSalesforceCustomKnowledgeArticleTypeConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceConfluenceBlogToIndexFieldMapping'"

class KendraDataSourceConfluenceBlogToIndexFieldMapping : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceConfluenceBlogToIndexFieldMapping'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceblogtoindexfieldmapping.html'

    hidden [object] $_dataSourceFieldName
    hidden [object] $_dateFieldFormat
    hidden [object] $_indexFieldName

    [string] $DataSourceFieldName
    [string] $DateFieldFormat
    [string] $IndexFieldName

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DataSourceFieldName -Value {
            $this._dataSourceFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dataSourceFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DateFieldFormat -Value {
            $this._dateFieldFormat
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dateFieldFormat = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IndexFieldName -Value {
            $this._indexFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._indexFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    KendraDataSourceConfluenceBlogToIndexFieldMapping() : base() {}
    KendraDataSourceConfluenceBlogToIndexFieldMapping([IDictionary] $props) : base($props) {}
    KendraDataSourceConfluenceBlogToIndexFieldMapping([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceOneDriveUsers'"

class KendraDataSourceOneDriveUsers : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceOneDriveUsers'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-onedriveusers.html'

    hidden [object] $_oneDriveUserList
    hidden [object] $_oneDriveUserS3Path

    [string[]] $OneDriveUserList
    [KendraDataSourceS3Path] $OneDriveUserS3Path

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name OneDriveUserList -Value {
            $this._oneDriveUserList
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._oneDriveUserList = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OneDriveUserS3Path -Value {
            $this._oneDriveUserS3Path
        } -SecondValue {
            param([ValidateType(([KendraDataSourceS3Path], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._oneDriveUserS3Path = $value
        }
    }

    KendraDataSourceOneDriveUsers() : base() {}
    KendraDataSourceOneDriveUsers([IDictionary] $props) : base($props) {}
    KendraDataSourceOneDriveUsers([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceAclConfiguration'"

class KendraDataSourceAclConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceAclConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-aclconfiguration.html'

    hidden [object] $_allowedGroupsColumnName

    [string] $AllowedGroupsColumnName

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name AllowedGroupsColumnName -Value {
            $this._allowedGroupsColumnName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._allowedGroupsColumnName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    KendraDataSourceAclConfiguration() : base() {}
    KendraDataSourceAclConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceAclConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceSalesforceStandardKnowledgeArticleTypeConfiguration'"

class KendraDataSourceSalesforceStandardKnowledgeArticleTypeConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceSalesforceStandardKnowledgeArticleTypeConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforcestandardknowledgearticletypeconfiguration.html'

    hidden [object] $_documentDataFieldName
    hidden [object] $_documentTitleFieldName
    hidden [object] $_fieldMappings

    [string] $DocumentDataFieldName
    [string] $DocumentTitleFieldName
    [KendraDataSourceDataSourceToIndexFieldMapping[]] $FieldMappings

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentDataFieldName -Value {
            $this._documentDataFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentDataFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentTitleFieldName -Value {
            $this._documentTitleFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentTitleFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FieldMappings -Value {
            $this._fieldMappings
        } -SecondValue {
            param([ValidateType(([KendraDataSourceDataSourceToIndexFieldMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._fieldMappings = $value
        }
    }

    KendraDataSourceSalesforceStandardKnowledgeArticleTypeConfiguration() : base() {}
    KendraDataSourceSalesforceStandardKnowledgeArticleTypeConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceSalesforceStandardKnowledgeArticleTypeConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceConfluenceAttachmentConfiguration'"

class KendraDataSourceConfluenceAttachmentConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceConfluenceAttachmentConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluenceattachmentconfiguration.html'

    hidden [object] $_crawlAttachments
    hidden [object] $_attachmentFieldMappings

    [bool] $CrawlAttachments
    [KendraDataSourceConfluenceAttachmentToIndexFieldMapping[]] $AttachmentFieldMappings

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CrawlAttachments -Value {
            $this._crawlAttachments
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._crawlAttachments = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AttachmentFieldMappings -Value {
            $this._attachmentFieldMappings
        } -SecondValue {
            param([ValidateType(([KendraDataSourceConfluenceAttachmentToIndexFieldMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._attachmentFieldMappings = $value
        }
    }

    KendraDataSourceConfluenceAttachmentConfiguration() : base() {}
    KendraDataSourceConfluenceAttachmentConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceConfluenceAttachmentConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraIndexRelevance'"

class KendraIndexRelevance : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraIndexRelevance'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-relevance.html'

    hidden [object] $_freshness
    hidden [object] $_importance
    hidden [object] $_duration
    hidden [object] $_rankOrder
    hidden [object] $_valueImportanceItems

    [bool] $Freshness
    [int] $Importance
    [string] $Duration
    [string] $RankOrder
    [KendraIndexValueImportanceItem[]] $ValueImportanceItems

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Freshness -Value {
            $this._freshness
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._freshness = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Importance -Value {
            $this._importance
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._importance = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Duration -Value {
            $this._duration
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._duration = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RankOrder -Value {
            $this._rankOrder
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._rankOrder = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ValueImportanceItems -Value {
            $this._valueImportanceItems
        } -SecondValue {
            param([ValidateType(([KendraIndexValueImportanceItem], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._valueImportanceItems = $value
        }
    }

    KendraIndexRelevance() : base() {}
    KendraIndexRelevance([IDictionary] $props) : base($props) {}
    KendraIndexRelevance([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraIndexJwtTokenTypeConfiguration'"

class KendraIndexJwtTokenTypeConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraIndexJwtTokenTypeConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-jwttokentypeconfiguration.html'

    hidden [object] $_keyLocation
    hidden [object] $_uRL
    hidden [object] $_secretManagerArn
    hidden [object] $_userNameAttributeField
    hidden [object] $_groupAttributeField
    hidden [object] $_issuer
    hidden [object] $_claimRegex

    [string] $KeyLocation
    [string] $URL
    [string] $SecretManagerArn
    [string] $UserNameAttributeField
    [string] $GroupAttributeField
    [string] $Issuer
    [string] $ClaimRegex

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeyLocation -Value {
            $this._keyLocation
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._keyLocation = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name URL -Value {
            $this._uRL
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._uRL = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretManagerArn -Value {
            $this._secretManagerArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretManagerArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UserNameAttributeField -Value {
            $this._userNameAttributeField
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._userNameAttributeField = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GroupAttributeField -Value {
            $this._groupAttributeField
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._groupAttributeField = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Issuer -Value {
            $this._issuer
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._issuer = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ClaimRegex -Value {
            $this._claimRegex
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._claimRegex = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    KendraIndexJwtTokenTypeConfiguration() : base() {}
    KendraIndexJwtTokenTypeConfiguration([IDictionary] $props) : base($props) {}
    KendraIndexJwtTokenTypeConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceDataSourceVpcConfiguration'"

class KendraDataSourceDataSourceVpcConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceDataSourceVpcConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourcevpcconfiguration.html'

    hidden [object] $_subnetIds
    hidden [object] $_securityGroupIds

    [string[]] $SubnetIds
    [string[]] $SecurityGroupIds

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SubnetIds -Value {
            $this._subnetIds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._subnetIds = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecurityGroupIds -Value {
            $this._securityGroupIds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._securityGroupIds = @($value)
        }
    }

    KendraDataSourceDataSourceVpcConfiguration() : base() {}
    KendraDataSourceDataSourceVpcConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceDataSourceVpcConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraIndexCapacityUnitsConfiguration'"

class KendraIndexCapacityUnitsConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraIndexCapacityUnitsConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-index-capacityunitsconfiguration.html'

    hidden [object] $_storageCapacityUnits
    hidden [object] $_queryCapacityUnits

    [int] $StorageCapacityUnits
    [int] $QueryCapacityUnits

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name StorageCapacityUnits -Value {
            $this._storageCapacityUnits
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._storageCapacityUnits = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name QueryCapacityUnits -Value {
            $this._queryCapacityUnits
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._queryCapacityUnits = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

    KendraIndexCapacityUnitsConfiguration() : base() {}
    KendraIndexCapacityUnitsConfiguration([IDictionary] $props) : base($props) {}
    KendraIndexCapacityUnitsConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceSalesforceKnowledgeArticleConfiguration'"

class KendraDataSourceSalesforceKnowledgeArticleConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceSalesforceKnowledgeArticleConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-salesforceknowledgearticleconfiguration.html'

    hidden [object] $_includedStates
    hidden [object] $_standardKnowledgeArticleTypeConfiguration
    hidden [object] $_customKnowledgeArticleTypeConfigurations

    [string[]] $IncludedStates
    [KendraDataSourceSalesforceStandardKnowledgeArticleTypeConfiguration] $StandardKnowledgeArticleTypeConfiguration
    [KendraDataSourceSalesforceCustomKnowledgeArticleTypeConfiguration[]] $CustomKnowledgeArticleTypeConfigurations

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludedStates -Value {
            $this._includedStates
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._includedStates = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StandardKnowledgeArticleTypeConfiguration -Value {
            $this._standardKnowledgeArticleTypeConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceSalesforceStandardKnowledgeArticleTypeConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._standardKnowledgeArticleTypeConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CustomKnowledgeArticleTypeConfigurations -Value {
            $this._customKnowledgeArticleTypeConfigurations
        } -SecondValue {
            param([ValidateType(([KendraDataSourceSalesforceCustomKnowledgeArticleTypeConfiguration], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._customKnowledgeArticleTypeConfigurations = $value
        }
    }

    KendraDataSourceSalesforceKnowledgeArticleConfiguration() : base() {}
    KendraDataSourceSalesforceKnowledgeArticleConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceSalesforceKnowledgeArticleConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceAccessControlListConfiguration'"

class KendraDataSourceAccessControlListConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceAccessControlListConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-accesscontrollistconfiguration.html'

    hidden [object] $_keyPath

    [string] $KeyPath

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeyPath -Value {
            $this._keyPath
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._keyPath = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    KendraDataSourceAccessControlListConfiguration() : base() {}
    KendraDataSourceAccessControlListConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceAccessControlListConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceDataSourceToIndexFieldMapping'"

class KendraDataSourceDataSourceToIndexFieldMapping : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceDataSourceToIndexFieldMapping'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourcetoindexfieldmapping.html'

    hidden [object] $_dataSourceFieldName
    hidden [object] $_dateFieldFormat
    hidden [object] $_indexFieldName

    [string] $DataSourceFieldName
    [string] $DateFieldFormat
    [string] $IndexFieldName

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DataSourceFieldName -Value {
            $this._dataSourceFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dataSourceFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DateFieldFormat -Value {
            $this._dateFieldFormat
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dateFieldFormat = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IndexFieldName -Value {
            $this._indexFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._indexFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    KendraDataSourceDataSourceToIndexFieldMapping() : base() {}
    KendraDataSourceDataSourceToIndexFieldMapping([IDictionary] $props) : base($props) {}
    KendraDataSourceDataSourceToIndexFieldMapping([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceConfluenceSpaceToIndexFieldMapping'"

class KendraDataSourceConfluenceSpaceToIndexFieldMapping : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceConfluenceSpaceToIndexFieldMapping'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-confluencespacetoindexfieldmapping.html'

    hidden [object] $_dataSourceFieldName
    hidden [object] $_dateFieldFormat
    hidden [object] $_indexFieldName

    [string] $DataSourceFieldName
    [string] $DateFieldFormat
    [string] $IndexFieldName

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DataSourceFieldName -Value {
            $this._dataSourceFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dataSourceFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DateFieldFormat -Value {
            $this._dateFieldFormat
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dateFieldFormat = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IndexFieldName -Value {
            $this._indexFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._indexFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    KendraDataSourceConfluenceSpaceToIndexFieldMapping() : base() {}
    KendraDataSourceConfluenceSpaceToIndexFieldMapping([IDictionary] $props) : base($props) {}
    KendraDataSourceConfluenceSpaceToIndexFieldMapping([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceOneDriveConfiguration'"

class KendraDataSourceOneDriveConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceOneDriveConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-onedriveconfiguration.html'

    hidden [object] $_tenantDomain
    hidden [object] $_secretArn
    hidden [object] $_oneDriveUsers
    hidden [object] $_inclusionPatterns
    hidden [object] $_exclusionPatterns
    hidden [object] $_fieldMappings
    hidden [object] $_disableLocalGroups

    [string] $TenantDomain
    [string] $SecretArn
    [KendraDataSourceOneDriveUsers] $OneDriveUsers
    [string[]] $InclusionPatterns
    [string[]] $ExclusionPatterns
    [KendraDataSourceDataSourceToIndexFieldMapping[]] $FieldMappings
    [bool] $DisableLocalGroups

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name TenantDomain -Value {
            $this._tenantDomain
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._tenantDomain = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretArn -Value {
            $this._secretArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OneDriveUsers -Value {
            $this._oneDriveUsers
        } -SecondValue {
            param([ValidateType(([KendraDataSourceOneDriveUsers], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._oneDriveUsers = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InclusionPatterns -Value {
            $this._inclusionPatterns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._inclusionPatterns = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExclusionPatterns -Value {
            $this._exclusionPatterns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._exclusionPatterns = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FieldMappings -Value {
            $this._fieldMappings
        } -SecondValue {
            param([ValidateType(([KendraDataSourceDataSourceToIndexFieldMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._fieldMappings = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DisableLocalGroups -Value {
            $this._disableLocalGroups
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._disableLocalGroups = $value
        }
    }

    KendraDataSourceOneDriveConfiguration() : base() {}
    KendraDataSourceOneDriveConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceOneDriveConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceDataSourceConfiguration'"

class KendraDataSourceDataSourceConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceDataSourceConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-datasourceconfiguration.html'

    hidden [object] $_s3Configuration
    hidden [object] $_sharePointConfiguration
    hidden [object] $_salesforceConfiguration
    hidden [object] $_oneDriveConfiguration
    hidden [object] $_serviceNowConfiguration
    hidden [object] $_databaseConfiguration
    hidden [object] $_confluenceConfiguration
    hidden [object] $_googleDriveConfiguration

    [KendraDataSourceS3DataSourceConfiguration] $S3Configuration
    [KendraDataSourceSharePointConfiguration] $SharePointConfiguration
    [KendraDataSourceSalesforceConfiguration] $SalesforceConfiguration
    [KendraDataSourceOneDriveConfiguration] $OneDriveConfiguration
    [KendraDataSourceServiceNowConfiguration] $ServiceNowConfiguration
    [KendraDataSourceDatabaseConfiguration] $DatabaseConfiguration
    [KendraDataSourceConfluenceConfiguration] $ConfluenceConfiguration
    [KendraDataSourceGoogleDriveConfiguration] $GoogleDriveConfiguration

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3Configuration -Value {
            $this._s3Configuration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceS3DataSourceConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3Configuration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SharePointConfiguration -Value {
            $this._sharePointConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceSharePointConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sharePointConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SalesforceConfiguration -Value {
            $this._salesforceConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceSalesforceConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._salesforceConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OneDriveConfiguration -Value {
            $this._oneDriveConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceOneDriveConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._oneDriveConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServiceNowConfiguration -Value {
            $this._serviceNowConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceServiceNowConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serviceNowConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DatabaseConfiguration -Value {
            $this._databaseConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceDatabaseConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._databaseConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConfluenceConfiguration -Value {
            $this._confluenceConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceConfluenceConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._confluenceConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GoogleDriveConfiguration -Value {
            $this._googleDriveConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceGoogleDriveConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._googleDriveConfiguration = $value
        }
    }

    KendraDataSourceDataSourceConfiguration() : base() {}
    KendraDataSourceDataSourceConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceDataSourceConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceSharePointConfiguration'"

class KendraDataSourceSharePointConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceSharePointConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-sharepointconfiguration.html'

    hidden [object] $_sharePointVersion
    hidden [object] $_urls
    hidden [object] $_secretArn
    hidden [object] $_crawlAttachments
    hidden [object] $_useChangeLog
    hidden [object] $_inclusionPatterns
    hidden [object] $_exclusionPatterns
    hidden [object] $_vpcConfiguration
    hidden [object] $_fieldMappings
    hidden [object] $_documentTitleFieldName
    hidden [object] $_disableLocalGroups

    [string] $SharePointVersion
    [string[]] $Urls
    [string] $SecretArn
    [bool] $CrawlAttachments
    [bool] $UseChangeLog
    [string[]] $InclusionPatterns
    [string[]] $ExclusionPatterns
    [KendraDataSourceDataSourceVpcConfiguration] $VpcConfiguration
    [KendraDataSourceDataSourceToIndexFieldMapping[]] $FieldMappings
    [string] $DocumentTitleFieldName
    [bool] $DisableLocalGroups

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SharePointVersion -Value {
            $this._sharePointVersion
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sharePointVersion = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Urls -Value {
            $this._urls
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._urls = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretArn -Value {
            $this._secretArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CrawlAttachments -Value {
            $this._crawlAttachments
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._crawlAttachments = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UseChangeLog -Value {
            $this._useChangeLog
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._useChangeLog = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InclusionPatterns -Value {
            $this._inclusionPatterns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._inclusionPatterns = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExclusionPatterns -Value {
            $this._exclusionPatterns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._exclusionPatterns = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name VpcConfiguration -Value {
            $this._vpcConfiguration
        } -SecondValue {
            param([ValidateType(([KendraDataSourceDataSourceVpcConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._vpcConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FieldMappings -Value {
            $this._fieldMappings
        } -SecondValue {
            param([ValidateType(([KendraDataSourceDataSourceToIndexFieldMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._fieldMappings = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentTitleFieldName -Value {
            $this._documentTitleFieldName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._documentTitleFieldName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DisableLocalGroups -Value {
            $this._disableLocalGroups
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._disableLocalGroups = $value
        }
    }

    KendraDataSourceSharePointConfiguration() : base() {}
    KendraDataSourceSharePointConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceSharePointConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSourceDocumentsMetadataConfiguration'"

class KendraDataSourceDocumentsMetadataConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSKendraDataSourceDocumentsMetadataConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kendra-datasource-documentsmetadataconfiguration.html'

    hidden [object] $_s3Prefix

    [string] $S3Prefix

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3Prefix -Value {
            $this._s3Prefix
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3Prefix = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    KendraDataSourceDocumentsMetadataConfiguration() : base() {}
    KendraDataSourceDocumentsMetadataConfiguration([IDictionary] $props) : base($props) {}
    KendraDataSourceDocumentsMetadataConfiguration([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraDataSource'"

class KendraDataSource : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSKendraDataSource'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-datasource.html'

    hidden [string[]] $_attributes = @('Id','Arn')
    hidden [object] $_condition

    [string] $Type = 'AWS::Kendra::DataSource'
    [string] $Name
    [string] $IndexId
    [string] $DataSourceType
    [KendraDataSourceDataSourceConfiguration] $DataSourceConfiguration
    [string] $Description
    [string] $Schedule
    [string] $RoleArn
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this.Properties['Name']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Name'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IndexId -Value {
            $this.Properties['IndexId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['IndexId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DataSourceType -Value {
            $this.Properties['DataSourceType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DataSourceType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DataSourceConfiguration -Value {
            $this.Properties['DataSourceConfiguration']
        } -SecondValue {
            param([ValidateType(([KendraDataSourceDataSourceConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DataSourceConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this.Properties['Description']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Description'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Schedule -Value {
            $this.Properties['Schedule']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Schedule'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleArn -Value {
            $this.Properties['RoleArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RoleArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    KendraDataSource() : base() {}
    KendraDataSource([IDictionary] $props) : base($props) {}
    KendraDataSource([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraIndex'"

class KendraIndex : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSKendraIndex'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-index.html'

    hidden [string[]] $_attributes = @('Id','Arn')
    hidden [object] $_condition

    [string] $Type = 'AWS::Kendra::Index'
    [string] $Description
    [KendraIndexServerSideEncryptionConfiguration] $ServerSideEncryptionConfiguration
    [VSTag[]] $Tags
    [string] $Name
    [string] $RoleArn
    [string] $Edition
    [KendraIndexDocumentMetadataConfiguration[]] $DocumentMetadataConfigurations
    [KendraIndexCapacityUnitsConfiguration] $CapacityUnits
    [string] $UserContextPolicy
    [KendraIndexUserTokenConfiguration[]] $UserTokenConfigurations
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this.Properties['Description']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Description'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServerSideEncryptionConfiguration -Value {
            $this.Properties['ServerSideEncryptionConfiguration']
        } -SecondValue {
            param([ValidateType(([KendraIndexServerSideEncryptionConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ServerSideEncryptionConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this.Properties['Name']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Name'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleArn -Value {
            $this.Properties['RoleArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RoleArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Edition -Value {
            $this.Properties['Edition']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Edition'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocumentMetadataConfigurations -Value {
            $this.Properties['DocumentMetadataConfigurations']
        } -SecondValue {
            param([ValidateType(([KendraIndexDocumentMetadataConfiguration], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['DocumentMetadataConfigurations'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CapacityUnits -Value {
            $this.Properties['CapacityUnits']
        } -SecondValue {
            param([ValidateType(([KendraIndexCapacityUnitsConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CapacityUnits'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UserContextPolicy -Value {
            $this.Properties['UserContextPolicy']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['UserContextPolicy'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UserTokenConfigurations -Value {
            $this.Properties['UserTokenConfigurations']
        } -SecondValue {
            param([ValidateType(([KendraIndexUserTokenConfiguration], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['UserTokenConfigurations'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    KendraIndex() : base() {}
    KendraIndex([IDictionary] $props) : base($props) {}
    KendraIndex([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'KendraFaq'"

class KendraFaq : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSKendraFaq'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kendra-faq.html'

    hidden [string[]] $_attributes = @('Id','Arn')
    hidden [object] $_condition

    [string] $Type = 'AWS::Kendra::Faq'
    [string] $IndexId
    [string] $Name
    [string] $Description
    [string] $FileFormat
    [KendraFaqS3Path] $S3Path
    [string] $RoleArn
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name IndexId -Value {
            $this.Properties['IndexId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['IndexId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this.Properties['Name']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Name'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this.Properties['Description']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Description'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FileFormat -Value {
            $this.Properties['FileFormat']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FileFormat'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3Path -Value {
            $this.Properties['S3Path']
        } -SecondValue {
            param([ValidateType(([KendraFaqS3Path], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['S3Path'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleArn -Value {
            $this.Properties['RoleArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RoleArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    KendraFaq() : base() {}
    KendraFaq([IDictionary] $props) : base($props) {}
    KendraFaq([psobject] $props) : base($props) {}
}