VaporShell.DMS.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 'DMSEndpointKinesisSettings'"

class DMSEndpointKinesisSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDMSEndpointKinesisSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kinesissettings.html'

    hidden [object] $_messageFormat
    hidden [object] $_includeTransactionDetails
    hidden [object] $_includeTableAlterOperations
    hidden [object] $_includeControlDetails
    hidden [object] $_streamArn
    hidden [object] $_serviceAccessRoleArn
    hidden [object] $_noHexPrefix
    hidden [object] $_partitionIncludeSchemaTable
    hidden [object] $_includeNullAndEmpty

    [string] $MessageFormat
    [bool] $IncludeTransactionDetails
    [bool] $IncludeTableAlterOperations
    [bool] $IncludeControlDetails
    [string] $StreamArn
    [string] $ServiceAccessRoleArn
    [bool] $NoHexPrefix
    [bool] $PartitionIncludeSchemaTable
    [bool] $IncludeNullAndEmpty

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name MessageFormat -Value {
            $this._messageFormat
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._messageFormat = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeTransactionDetails -Value {
            $this._includeTransactionDetails
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeTransactionDetails = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeTableAlterOperations -Value {
            $this._includeTableAlterOperations
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeTableAlterOperations = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeControlDetails -Value {
            $this._includeControlDetails
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeControlDetails = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StreamArn -Value {
            $this._streamArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._streamArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServiceAccessRoleArn -Value {
            $this._serviceAccessRoleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serviceAccessRoleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NoHexPrefix -Value {
            $this._noHexPrefix
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._noHexPrefix = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PartitionIncludeSchemaTable -Value {
            $this._partitionIncludeSchemaTable
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._partitionIncludeSchemaTable = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeNullAndEmpty -Value {
            $this._includeNullAndEmpty
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeNullAndEmpty = $value
        }
    }

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

Write-Verbose "Importing class 'DMSEndpointS3Settings'"

class DMSEndpointS3Settings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDMSEndpointS3Settings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-s3settings.html'

    hidden [object] $_timestampColumnName
    hidden [object] $_enableStatistics
    hidden [object] $_datePartitionSequence
    hidden [object] $_includeOpForFullLoad
    hidden [object] $_csvNullValue
    hidden [object] $_cdcInsertsAndUpdates
    hidden [object] $_bucketName
    hidden [object] $_serverSideEncryptionKmsKeyId
    hidden [object] $_useTaskStartTimeForFullLoadTimestamp
    hidden [object] $_dataFormat
    hidden [object] $_csvDelimiter
    hidden [object] $_ignoreHeaderRows
    hidden [object] $_cannedAclForObjects
    hidden [object] $_rfc4180
    hidden [object] $_serviceAccessRoleArn
    hidden [object] $_parquetTimestampInMillisecond
    hidden [object] $_preserveTransactions
    hidden [object] $_bucketFolder
    hidden [object] $_datePartitionDelimiter
    hidden [object] $_encodingType
    hidden [object] $_parquetVersion
    hidden [object] $_addColumnName
    hidden [object] $_cdcMinFileSize
    hidden [object] $_externalTableDefinition
    hidden [object] $_useCsvNoSupValue
    hidden [object] $_maxFileSize
    hidden [object] $_csvNoSupValue
    hidden [object] $_cdcPath
    hidden [object] $_csvRowDelimiter
    hidden [object] $_rowGroupLength
    hidden [object] $_cdcMaxBatchInterval
    hidden [object] $_dataPageSize
    hidden [object] $_dictPageSizeLimit
    hidden [object] $_datePartitionEnabled
    hidden [object] $_compressionType
    hidden [object] $_datePartitionTimezone
    hidden [object] $_cdcInsertsOnly
    hidden [object] $_encryptionMode

    [string] $TimestampColumnName
    [bool] $EnableStatistics
    [string] $DatePartitionSequence
    [bool] $IncludeOpForFullLoad
    [string] $CsvNullValue
    [bool] $CdcInsertsAndUpdates
    [string] $BucketName
    [string] $ServerSideEncryptionKmsKeyId
    [bool] $UseTaskStartTimeForFullLoadTimestamp
    [string] $DataFormat
    [string] $CsvDelimiter
    [int] $IgnoreHeaderRows
    [string] $CannedAclForObjects
    [bool] $Rfc4180
    [string] $ServiceAccessRoleArn
    [bool] $ParquetTimestampInMillisecond
    [bool] $PreserveTransactions
    [string] $BucketFolder
    [string] $DatePartitionDelimiter
    [string] $EncodingType
    [string] $ParquetVersion
    [bool] $AddColumnName
    [int] $CdcMinFileSize
    [string] $ExternalTableDefinition
    [bool] $UseCsvNoSupValue
    [int] $MaxFileSize
    [string] $CsvNoSupValue
    [string] $CdcPath
    [string] $CsvRowDelimiter
    [int] $RowGroupLength
    [int] $CdcMaxBatchInterval
    [int] $DataPageSize
    [int] $DictPageSizeLimit
    [bool] $DatePartitionEnabled
    [string] $CompressionType
    [string] $DatePartitionTimezone
    [bool] $CdcInsertsOnly
    [string] $EncryptionMode

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name TimestampColumnName -Value {
            $this._timestampColumnName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._timestampColumnName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnableStatistics -Value {
            $this._enableStatistics
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._enableStatistics = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DatePartitionSequence -Value {
            $this._datePartitionSequence
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._datePartitionSequence = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeOpForFullLoad -Value {
            $this._includeOpForFullLoad
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeOpForFullLoad = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CsvNullValue -Value {
            $this._csvNullValue
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._csvNullValue = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CdcInsertsAndUpdates -Value {
            $this._cdcInsertsAndUpdates
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cdcInsertsAndUpdates = $value
        }
        $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 ServerSideEncryptionKmsKeyId -Value {
            $this._serverSideEncryptionKmsKeyId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serverSideEncryptionKmsKeyId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UseTaskStartTimeForFullLoadTimestamp -Value {
            $this._useTaskStartTimeForFullLoadTimestamp
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._useTaskStartTimeForFullLoadTimestamp = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DataFormat -Value {
            $this._dataFormat
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dataFormat = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CsvDelimiter -Value {
            $this._csvDelimiter
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._csvDelimiter = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IgnoreHeaderRows -Value {
            $this._ignoreHeaderRows
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ignoreHeaderRows = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CannedAclForObjects -Value {
            $this._cannedAclForObjects
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cannedAclForObjects = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Rfc4180 -Value {
            $this._rfc4180
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._rfc4180 = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServiceAccessRoleArn -Value {
            $this._serviceAccessRoleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serviceAccessRoleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ParquetTimestampInMillisecond -Value {
            $this._parquetTimestampInMillisecond
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._parquetTimestampInMillisecond = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PreserveTransactions -Value {
            $this._preserveTransactions
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._preserveTransactions = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BucketFolder -Value {
            $this._bucketFolder
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._bucketFolder = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DatePartitionDelimiter -Value {
            $this._datePartitionDelimiter
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._datePartitionDelimiter = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EncodingType -Value {
            $this._encodingType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._encodingType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ParquetVersion -Value {
            $this._parquetVersion
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._parquetVersion = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AddColumnName -Value {
            $this._addColumnName
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._addColumnName = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CdcMinFileSize -Value {
            $this._cdcMinFileSize
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cdcMinFileSize = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExternalTableDefinition -Value {
            $this._externalTableDefinition
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._externalTableDefinition = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UseCsvNoSupValue -Value {
            $this._useCsvNoSupValue
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._useCsvNoSupValue = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxFileSize -Value {
            $this._maxFileSize
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._maxFileSize = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CsvNoSupValue -Value {
            $this._csvNoSupValue
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._csvNoSupValue = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CdcPath -Value {
            $this._cdcPath
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cdcPath = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CsvRowDelimiter -Value {
            $this._csvRowDelimiter
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._csvRowDelimiter = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RowGroupLength -Value {
            $this._rowGroupLength
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._rowGroupLength = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CdcMaxBatchInterval -Value {
            $this._cdcMaxBatchInterval
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cdcMaxBatchInterval = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DataPageSize -Value {
            $this._dataPageSize
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dataPageSize = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DictPageSizeLimit -Value {
            $this._dictPageSizeLimit
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dictPageSizeLimit = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DatePartitionEnabled -Value {
            $this._datePartitionEnabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._datePartitionEnabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CompressionType -Value {
            $this._compressionType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._compressionType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DatePartitionTimezone -Value {
            $this._datePartitionTimezone
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._datePartitionTimezone = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CdcInsertsOnly -Value {
            $this._cdcInsertsOnly
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cdcInsertsOnly = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EncryptionMode -Value {
            $this._encryptionMode
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._encryptionMode = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'DMSEndpointPostgreSqlSettings'"

class DMSEndpointPostgreSqlSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDMSEndpointPostgreSqlSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-postgresqlsettings.html'

    hidden [object] $_secretsManagerSecretId
    hidden [object] $_secretsManagerAccessRoleArn

    [string] $SecretsManagerSecretId
    [string] $SecretsManagerAccessRoleArn

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

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

Write-Verbose "Importing class 'DMSEndpointMicrosoftSqlServerSettings'"

class DMSEndpointMicrosoftSqlServerSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDMSEndpointMicrosoftSqlServerSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-microsoftsqlserversettings.html'

    hidden [object] $_secretsManagerSecretId
    hidden [object] $_secretsManagerAccessRoleArn

    [string] $SecretsManagerSecretId
    [string] $SecretsManagerAccessRoleArn

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

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

Write-Verbose "Importing class 'DMSEndpointMongoDbSettings'"

class DMSEndpointMongoDbSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDMSEndpointMongoDbSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mongodbsettings.html'

    hidden [object] $_port
    hidden [object] $_extractDocId
    hidden [object] $_databaseName
    hidden [object] $_authSource
    hidden [object] $_authMechanism
    hidden [object] $_username
    hidden [object] $_docsToInvestigate
    hidden [object] $_serverName
    hidden [object] $_secretsManagerSecretId
    hidden [object] $_authType
    hidden [object] $_secretsManagerAccessRoleArn
    hidden [object] $_password
    hidden [object] $_nestingLevel

    [int] $Port
    [string] $ExtractDocId
    [string] $DatabaseName
    [string] $AuthSource
    [string] $AuthMechanism
    [string] $Username
    [string] $DocsToInvestigate
    [string] $ServerName
    [string] $SecretsManagerSecretId
    [string] $AuthType
    [string] $SecretsManagerAccessRoleArn
    [string] $Password
    [string] $NestingLevel

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Port -Value {
            $this._port
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._port = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExtractDocId -Value {
            $this._extractDocId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._extractDocId = if ($value -is [int]) {
                $value.ToString()
            }
            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 AuthSource -Value {
            $this._authSource
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._authSource = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AuthMechanism -Value {
            $this._authMechanism
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._authMechanism = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Username -Value {
            $this._username
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._username = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocsToInvestigate -Value {
            $this._docsToInvestigate
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._docsToInvestigate = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServerName -Value {
            $this._serverName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serverName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretsManagerSecretId -Value {
            $this._secretsManagerSecretId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretsManagerSecretId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AuthType -Value {
            $this._authType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._authType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretsManagerAccessRoleArn -Value {
            $this._secretsManagerAccessRoleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretsManagerAccessRoleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Password -Value {
            $this._password
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._password = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NestingLevel -Value {
            $this._nestingLevel
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._nestingLevel = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'DMSEndpointKafkaSettings'"

class DMSEndpointKafkaSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDMSEndpointKafkaSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-kafkasettings.html'

    hidden [object] $_broker
    hidden [object] $_saslPassword
    hidden [object] $_sslClientCertificateArn
    hidden [object] $_includeTransactionDetails
    hidden [object] $_securityProtocol
    hidden [object] $_includeTableAlterOperations
    hidden [object] $_sslCaCertificateArn
    hidden [object] $_includeControlDetails
    hidden [object] $_noHexPrefix
    hidden [object] $_sslClientKeyArn
    hidden [object] $_sslClientKeyPassword
    hidden [object] $_saslUserName
    hidden [object] $_topic
    hidden [object] $_partitionIncludeSchemaTable
    hidden [object] $_includeNullAndEmpty

    [string] $Broker
    [string] $SaslPassword
    [string] $SslClientCertificateArn
    [bool] $IncludeTransactionDetails
    [string] $SecurityProtocol
    [bool] $IncludeTableAlterOperations
    [string] $SslCaCertificateArn
    [bool] $IncludeControlDetails
    [bool] $NoHexPrefix
    [string] $SslClientKeyArn
    [string] $SslClientKeyPassword
    [string] $SaslUserName
    [string] $Topic
    [bool] $PartitionIncludeSchemaTable
    [bool] $IncludeNullAndEmpty

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Broker -Value {
            $this._broker
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._broker = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SaslPassword -Value {
            $this._saslPassword
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._saslPassword = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SslClientCertificateArn -Value {
            $this._sslClientCertificateArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sslClientCertificateArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeTransactionDetails -Value {
            $this._includeTransactionDetails
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeTransactionDetails = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecurityProtocol -Value {
            $this._securityProtocol
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._securityProtocol = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeTableAlterOperations -Value {
            $this._includeTableAlterOperations
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeTableAlterOperations = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SslCaCertificateArn -Value {
            $this._sslCaCertificateArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sslCaCertificateArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeControlDetails -Value {
            $this._includeControlDetails
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeControlDetails = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NoHexPrefix -Value {
            $this._noHexPrefix
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._noHexPrefix = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SslClientKeyArn -Value {
            $this._sslClientKeyArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sslClientKeyArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SslClientKeyPassword -Value {
            $this._sslClientKeyPassword
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sslClientKeyPassword = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SaslUserName -Value {
            $this._saslUserName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._saslUserName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Topic -Value {
            $this._topic
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._topic = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PartitionIncludeSchemaTable -Value {
            $this._partitionIncludeSchemaTable
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._partitionIncludeSchemaTable = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeNullAndEmpty -Value {
            $this._includeNullAndEmpty
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeNullAndEmpty = $value
        }
    }

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

Write-Verbose "Importing class 'DMSEndpointMySqlSettings'"

class DMSEndpointMySqlSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDMSEndpointMySqlSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-mysqlsettings.html'

    hidden [object] $_secretsManagerSecretId
    hidden [object] $_secretsManagerAccessRoleArn

    [string] $SecretsManagerSecretId
    [string] $SecretsManagerAccessRoleArn

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

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

Write-Verbose "Importing class 'DMSEndpointNeptuneSettings'"

class DMSEndpointNeptuneSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDMSEndpointNeptuneSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-neptunesettings.html'

    hidden [object] $_maxRetryCount
    hidden [object] $_maxFileSize
    hidden [object] $_s3BucketFolder
    hidden [object] $_errorRetryDuration
    hidden [object] $_iamAuthEnabled
    hidden [object] $_s3BucketName
    hidden [object] $_serviceAccessRoleArn

    [int] $MaxRetryCount
    [int] $MaxFileSize
    [string] $S3BucketFolder
    [int] $ErrorRetryDuration
    [bool] $IamAuthEnabled
    [string] $S3BucketName
    [string] $ServiceAccessRoleArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxRetryCount -Value {
            $this._maxRetryCount
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._maxRetryCount = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxFileSize -Value {
            $this._maxFileSize
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._maxFileSize = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3BucketFolder -Value {
            $this._s3BucketFolder
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3BucketFolder = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ErrorRetryDuration -Value {
            $this._errorRetryDuration
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._errorRetryDuration = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IamAuthEnabled -Value {
            $this._iamAuthEnabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iamAuthEnabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3BucketName -Value {
            $this._s3BucketName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3BucketName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServiceAccessRoleArn -Value {
            $this._serviceAccessRoleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serviceAccessRoleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'DMSEndpointGcpMySQLSettings'"

class DMSEndpointGcpMySQLSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDMSEndpointGcpMySQLSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-gcpmysqlsettings.html'

    hidden [object] $_afterConnectScript
    hidden [object] $_port
    hidden [object] $_databaseName
    hidden [object] $_cleanSourceMetadataOnMismatch
    hidden [object] $_serverTimezone
    hidden [object] $_eventsPollInterval
    hidden [object] $_parallelLoadThreads
    hidden [object] $_username
    hidden [object] $_maxFileSize
    hidden [object] $_serverName
    hidden [object] $_secretsManagerSecretId
    hidden [object] $_secretsManagerAccessRoleArn
    hidden [object] $_password

    [string] $AfterConnectScript
    [int] $Port
    [string] $DatabaseName
    [bool] $CleanSourceMetadataOnMismatch
    [string] $ServerTimezone
    [int] $EventsPollInterval
    [int] $ParallelLoadThreads
    [string] $Username
    [int] $MaxFileSize
    [string] $ServerName
    [string] $SecretsManagerSecretId
    [string] $SecretsManagerAccessRoleArn
    [string] $Password

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name AfterConnectScript -Value {
            $this._afterConnectScript
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._afterConnectScript = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Port -Value {
            $this._port
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._port = 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 CleanSourceMetadataOnMismatch -Value {
            $this._cleanSourceMetadataOnMismatch
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cleanSourceMetadataOnMismatch = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServerTimezone -Value {
            $this._serverTimezone
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serverTimezone = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EventsPollInterval -Value {
            $this._eventsPollInterval
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._eventsPollInterval = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ParallelLoadThreads -Value {
            $this._parallelLoadThreads
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._parallelLoadThreads = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Username -Value {
            $this._username
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._username = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxFileSize -Value {
            $this._maxFileSize
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._maxFileSize = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServerName -Value {
            $this._serverName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serverName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretsManagerSecretId -Value {
            $this._secretsManagerSecretId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretsManagerSecretId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretsManagerAccessRoleArn -Value {
            $this._secretsManagerAccessRoleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretsManagerAccessRoleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Password -Value {
            $this._password
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._password = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'DMSEndpointIbmDb2Settings'"

class DMSEndpointIbmDb2Settings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDMSEndpointIbmDb2Settings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-ibmdb2settings.html'

    hidden [object] $_secretsManagerSecretId
    hidden [object] $_secretsManagerAccessRoleArn

    [string] $SecretsManagerSecretId
    [string] $SecretsManagerAccessRoleArn

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

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

Write-Verbose "Importing class 'DMSEndpointElasticsearchSettings'"

class DMSEndpointElasticsearchSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDMSEndpointElasticsearchSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-elasticsearchsettings.html'

    hidden [object] $_endpointUri
    hidden [object] $_fullLoadErrorPercentage
    hidden [object] $_errorRetryDuration
    hidden [object] $_serviceAccessRoleArn

    [string] $EndpointUri
    [int] $FullLoadErrorPercentage
    [int] $ErrorRetryDuration
    [string] $ServiceAccessRoleArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name EndpointUri -Value {
            $this._endpointUri
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._endpointUri = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FullLoadErrorPercentage -Value {
            $this._fullLoadErrorPercentage
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._fullLoadErrorPercentage = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ErrorRetryDuration -Value {
            $this._errorRetryDuration
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._errorRetryDuration = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServiceAccessRoleArn -Value {
            $this._serviceAccessRoleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serviceAccessRoleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'DMSEndpointOracleSettings'"

class DMSEndpointOracleSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDMSEndpointOracleSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-oraclesettings.html'

    hidden [object] $_secretsManagerOracleAsmAccessRoleArn
    hidden [object] $_secretsManagerOracleAsmSecretId
    hidden [object] $_secretsManagerSecretId
    hidden [object] $_secretsManagerAccessRoleArn

    [string] $SecretsManagerOracleAsmAccessRoleArn
    [string] $SecretsManagerOracleAsmSecretId
    [string] $SecretsManagerSecretId
    [string] $SecretsManagerAccessRoleArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretsManagerOracleAsmAccessRoleArn -Value {
            $this._secretsManagerOracleAsmAccessRoleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretsManagerOracleAsmAccessRoleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretsManagerOracleAsmSecretId -Value {
            $this._secretsManagerOracleAsmSecretId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretsManagerOracleAsmSecretId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretsManagerSecretId -Value {
            $this._secretsManagerSecretId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretsManagerSecretId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretsManagerAccessRoleArn -Value {
            $this._secretsManagerAccessRoleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretsManagerAccessRoleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'DMSEndpointRedisSettings'"

class DMSEndpointRedisSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDMSEndpointRedisSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redissettings.html'

    hidden [object] $_sslSecurityProtocol
    hidden [object] $_authUserName
    hidden [object] $_serverName
    hidden [object] $_port
    hidden [object] $_sslCaCertificateArn
    hidden [object] $_authPassword
    hidden [object] $_authType

    [string] $SslSecurityProtocol
    [string] $AuthUserName
    [string] $ServerName
    [double] $Port
    [string] $SslCaCertificateArn
    [string] $AuthPassword
    [string] $AuthType

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SslSecurityProtocol -Value {
            $this._sslSecurityProtocol
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sslSecurityProtocol = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AuthUserName -Value {
            $this._authUserName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._authUserName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServerName -Value {
            $this._serverName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serverName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Port -Value {
            $this._port
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._port = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SslCaCertificateArn -Value {
            $this._sslCaCertificateArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sslCaCertificateArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AuthPassword -Value {
            $this._authPassword
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._authPassword = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AuthType -Value {
            $this._authType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._authType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'DMSEndpointDynamoDbSettings'"

class DMSEndpointDynamoDbSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDMSEndpointDynamoDbSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-dynamodbsettings.html'

    hidden [object] $_serviceAccessRoleArn

    [string] $ServiceAccessRoleArn

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

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

Write-Verbose "Importing class 'DMSEndpointDocDbSettings'"

class DMSEndpointDocDbSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDMSEndpointDocDbSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-docdbsettings.html'

    hidden [object] $_secretsManagerSecretId
    hidden [object] $_secretsManagerAccessRoleArn

    [string] $SecretsManagerSecretId
    [string] $SecretsManagerAccessRoleArn

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

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

Write-Verbose "Importing class 'DMSEndpointSybaseSettings'"

class DMSEndpointSybaseSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDMSEndpointSybaseSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-sybasesettings.html'

    hidden [object] $_secretsManagerSecretId
    hidden [object] $_secretsManagerAccessRoleArn

    [string] $SecretsManagerSecretId
    [string] $SecretsManagerAccessRoleArn

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

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

Write-Verbose "Importing class 'DMSEndpointRedshiftSettings'"

class DMSEndpointRedshiftSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDMSEndpointRedshiftSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dms-endpoint-redshiftsettings.html'

    hidden [object] $_secretsManagerSecretId
    hidden [object] $_secretsManagerAccessRoleArn

    [string] $SecretsManagerSecretId
    [string] $SecretsManagerAccessRoleArn

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

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

Write-Verbose "Importing class 'DMSReplicationSubnetGroup'"

class DMSReplicationSubnetGroup : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSDMSReplicationSubnetGroup'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationsubnetgroup.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::DMS::ReplicationSubnetGroup'
    [string] $ReplicationSubnetGroupDescription
    [string] $ReplicationSubnetGroupIdentifier
    [string[]] $SubnetIds
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReplicationSubnetGroupDescription -Value {
            $this.Properties['ReplicationSubnetGroupDescription']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ReplicationSubnetGroupDescription'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReplicationSubnetGroupIdentifier -Value {
            $this.Properties['ReplicationSubnetGroupIdentifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ReplicationSubnetGroupIdentifier'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SubnetIds -Value {
            $this.Properties['SubnetIds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['SubnetIds'] = @($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
        }
    }

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

Write-Verbose "Importing class 'DMSEventSubscription'"

class DMSEventSubscription : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSDMSEventSubscription'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-eventsubscription.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::DMS::EventSubscription'
    [string] $SourceType
    [string[]] $EventCategories
    [bool] $Enabled
    [string] $SubscriptionName
    [string] $SnsTopicArn
    [string[]] $SourceIds
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name SourceType -Value {
            $this.Properties['SourceType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SourceType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EventCategories -Value {
            $this.Properties['EventCategories']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['EventCategories'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Enabled -Value {
            $this.Properties['Enabled']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Enabled'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SubscriptionName -Value {
            $this.Properties['SubscriptionName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SubscriptionName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SnsTopicArn -Value {
            $this.Properties['SnsTopicArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SnsTopicArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SourceIds -Value {
            $this.Properties['SourceIds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['SourceIds'] = @($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
        }
    }

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

Write-Verbose "Importing class 'DMSCertificate'"

class DMSCertificate : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSDMSCertificate'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-certificate.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::DMS::Certificate'
    [string] $CertificateIdentifier
    [string] $CertificatePem
    [string] $CertificateWallet
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name CertificateIdentifier -Value {
            $this.Properties['CertificateIdentifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CertificateIdentifier'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CertificatePem -Value {
            $this.Properties['CertificatePem']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CertificatePem'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CertificateWallet -Value {
            $this.Properties['CertificateWallet']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CertificateWallet'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'DMSEndpoint'"

class DMSEndpoint : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSDMSEndpoint'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html'

    hidden [string[]] $_attributes = @('ExternalId')
    hidden [object] $_condition

    [string] $Type = 'AWS::DMS::Endpoint'
    [DMSEndpointSybaseSettings] $SybaseSettings
    [DMSEndpointRedisSettings] $RedisSettings
    [DMSEndpointOracleSettings] $OracleSettings
    [DMSEndpointKafkaSettings] $KafkaSettings
    [int] $Port
    [DMSEndpointMySqlSettings] $MySqlSettings
    [DMSEndpointS3Settings] $S3Settings
    [string] $ResourceIdentifier
    [DMSEndpointKinesisSettings] $KinesisSettings
    [string] $SslMode
    [DMSEndpointRedshiftSettings] $RedshiftSettings
    [string] $EndpointType
    [VSTag[]] $Tags
    [string] $Password
    [DMSEndpointMongoDbSettings] $MongoDbSettings
    [DMSEndpointIbmDb2Settings] $IbmDb2Settings
    [string] $KmsKeyId
    [string] $DatabaseName
    [DMSEndpointNeptuneSettings] $NeptuneSettings
    [DMSEndpointElasticsearchSettings] $ElasticsearchSettings
    [string] $EngineName
    [DMSEndpointDocDbSettings] $DocDbSettings
    [DMSEndpointDynamoDbSettings] $DynamoDbSettings
    [string] $Username
    [DMSEndpointMicrosoftSqlServerSettings] $MicrosoftSqlServerSettings
    [DMSEndpointGcpMySQLSettings] $GcpMySQLSettings
    [string] $ServerName
    [string] $ExtraConnectionAttributes
    [string] $EndpointIdentifier
    [string] $CertificateArn
    [DMSEndpointPostgreSqlSettings] $PostgreSqlSettings
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name SybaseSettings -Value {
            $this.Properties['SybaseSettings']
        } -SecondValue {
            param([ValidateType(([DMSEndpointSybaseSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SybaseSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RedisSettings -Value {
            $this.Properties['RedisSettings']
        } -SecondValue {
            param([ValidateType(([DMSEndpointRedisSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RedisSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OracleSettings -Value {
            $this.Properties['OracleSettings']
        } -SecondValue {
            param([ValidateType(([DMSEndpointOracleSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['OracleSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KafkaSettings -Value {
            $this.Properties['KafkaSettings']
        } -SecondValue {
            param([ValidateType(([DMSEndpointKafkaSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['KafkaSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Port -Value {
            $this.Properties['Port']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Port'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MySqlSettings -Value {
            $this.Properties['MySqlSettings']
        } -SecondValue {
            param([ValidateType(([DMSEndpointMySqlSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MySqlSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3Settings -Value {
            $this.Properties['S3Settings']
        } -SecondValue {
            param([ValidateType(([DMSEndpointS3Settings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['S3Settings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResourceIdentifier -Value {
            $this.Properties['ResourceIdentifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ResourceIdentifier'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KinesisSettings -Value {
            $this.Properties['KinesisSettings']
        } -SecondValue {
            param([ValidateType(([DMSEndpointKinesisSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['KinesisSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SslMode -Value {
            $this.Properties['SslMode']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SslMode'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RedshiftSettings -Value {
            $this.Properties['RedshiftSettings']
        } -SecondValue {
            param([ValidateType(([DMSEndpointRedshiftSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RedshiftSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EndpointType -Value {
            $this.Properties['EndpointType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EndpointType'] = 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 Password -Value {
            $this.Properties['Password']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Password'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MongoDbSettings -Value {
            $this.Properties['MongoDbSettings']
        } -SecondValue {
            param([ValidateType(([DMSEndpointMongoDbSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MongoDbSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IbmDb2Settings -Value {
            $this.Properties['IbmDb2Settings']
        } -SecondValue {
            param([ValidateType(([DMSEndpointIbmDb2Settings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['IbmDb2Settings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KmsKeyId -Value {
            $this.Properties['KmsKeyId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['KmsKeyId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DatabaseName -Value {
            $this.Properties['DatabaseName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DatabaseName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NeptuneSettings -Value {
            $this.Properties['NeptuneSettings']
        } -SecondValue {
            param([ValidateType(([DMSEndpointNeptuneSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['NeptuneSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ElasticsearchSettings -Value {
            $this.Properties['ElasticsearchSettings']
        } -SecondValue {
            param([ValidateType(([DMSEndpointElasticsearchSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ElasticsearchSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EngineName -Value {
            $this.Properties['EngineName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EngineName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DocDbSettings -Value {
            $this.Properties['DocDbSettings']
        } -SecondValue {
            param([ValidateType(([DMSEndpointDocDbSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DocDbSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DynamoDbSettings -Value {
            $this.Properties['DynamoDbSettings']
        } -SecondValue {
            param([ValidateType(([DMSEndpointDynamoDbSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DynamoDbSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Username -Value {
            $this.Properties['Username']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Username'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MicrosoftSqlServerSettings -Value {
            $this.Properties['MicrosoftSqlServerSettings']
        } -SecondValue {
            param([ValidateType(([DMSEndpointMicrosoftSqlServerSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MicrosoftSqlServerSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GcpMySQLSettings -Value {
            $this.Properties['GcpMySQLSettings']
        } -SecondValue {
            param([ValidateType(([DMSEndpointGcpMySQLSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['GcpMySQLSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServerName -Value {
            $this.Properties['ServerName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ServerName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExtraConnectionAttributes -Value {
            $this.Properties['ExtraConnectionAttributes']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ExtraConnectionAttributes'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EndpointIdentifier -Value {
            $this.Properties['EndpointIdentifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EndpointIdentifier'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CertificateArn -Value {
            $this.Properties['CertificateArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CertificateArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PostgreSqlSettings -Value {
            $this.Properties['PostgreSqlSettings']
        } -SecondValue {
            param([ValidateType(([DMSEndpointPostgreSqlSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PostgreSqlSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'DMSReplicationTask'"

class DMSReplicationTask : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSDMSReplicationTask'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::DMS::ReplicationTask'
    [string] $ReplicationTaskSettings
    [string] $CdcStartPosition
    [string] $CdcStopPosition
    [string] $MigrationType
    [string] $TargetEndpointArn
    [string] $ReplicationInstanceArn
    [string] $TaskData
    [double] $CdcStartTime
    [string] $ResourceIdentifier
    [string] $TableMappings
    [string] $ReplicationTaskIdentifier
    [string] $SourceEndpointArn
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReplicationTaskSettings -Value {
            $this.Properties['ReplicationTaskSettings']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ReplicationTaskSettings'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CdcStartPosition -Value {
            $this.Properties['CdcStartPosition']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CdcStartPosition'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CdcStopPosition -Value {
            $this.Properties['CdcStopPosition']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CdcStopPosition'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MigrationType -Value {
            $this.Properties['MigrationType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MigrationType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetEndpointArn -Value {
            $this.Properties['TargetEndpointArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TargetEndpointArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReplicationInstanceArn -Value {
            $this.Properties['ReplicationInstanceArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ReplicationInstanceArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TaskData -Value {
            $this.Properties['TaskData']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TaskData'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CdcStartTime -Value {
            $this.Properties['CdcStartTime']
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CdcStartTime'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResourceIdentifier -Value {
            $this.Properties['ResourceIdentifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ResourceIdentifier'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TableMappings -Value {
            $this.Properties['TableMappings']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TableMappings'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReplicationTaskIdentifier -Value {
            $this.Properties['ReplicationTaskIdentifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ReplicationTaskIdentifier'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SourceEndpointArn -Value {
            $this.Properties['SourceEndpointArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SourceEndpointArn'] = 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
        }
    }

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

Write-Verbose "Importing class 'DMSReplicationInstance'"

class DMSReplicationInstance : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSDMSReplicationInstance'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationinstance.html'

    hidden [string[]] $_attributes = @('ReplicationInstancePublicIpAddresses','ReplicationInstancePrivateIpAddresses')
    hidden [object] $_condition

    [string] $Type = 'AWS::DMS::ReplicationInstance'
    [string] $ReplicationInstanceIdentifier
    [string] $EngineVersion
    [string] $KmsKeyId
    [string] $AvailabilityZone
    [string] $PreferredMaintenanceWindow
    [bool] $AutoMinorVersionUpgrade
    [string] $ReplicationSubnetGroupIdentifier
    [int] $AllocatedStorage
    [string] $ResourceIdentifier
    [string[]] $VpcSecurityGroupIds
    [bool] $AllowMajorVersionUpgrade
    [string] $ReplicationInstanceClass
    [bool] $PubliclyAccessible
    [bool] $MultiAZ
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReplicationInstanceIdentifier -Value {
            $this.Properties['ReplicationInstanceIdentifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ReplicationInstanceIdentifier'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EngineVersion -Value {
            $this.Properties['EngineVersion']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EngineVersion'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KmsKeyId -Value {
            $this.Properties['KmsKeyId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['KmsKeyId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AvailabilityZone -Value {
            $this.Properties['AvailabilityZone']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AvailabilityZone'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PreferredMaintenanceWindow -Value {
            $this.Properties['PreferredMaintenanceWindow']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PreferredMaintenanceWindow'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AutoMinorVersionUpgrade -Value {
            $this.Properties['AutoMinorVersionUpgrade']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AutoMinorVersionUpgrade'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReplicationSubnetGroupIdentifier -Value {
            $this.Properties['ReplicationSubnetGroupIdentifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ReplicationSubnetGroupIdentifier'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AllocatedStorage -Value {
            $this.Properties['AllocatedStorage']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AllocatedStorage'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResourceIdentifier -Value {
            $this.Properties['ResourceIdentifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ResourceIdentifier'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name VpcSecurityGroupIds -Value {
            $this.Properties['VpcSecurityGroupIds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['VpcSecurityGroupIds'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AllowMajorVersionUpgrade -Value {
            $this.Properties['AllowMajorVersionUpgrade']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AllowMajorVersionUpgrade'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReplicationInstanceClass -Value {
            $this.Properties['ReplicationInstanceClass']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ReplicationInstanceClass'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PubliclyAccessible -Value {
            $this.Properties['PubliclyAccessible']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PubliclyAccessible'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MultiAZ -Value {
            $this.Properties['MultiAZ']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MultiAZ'] = $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
        }
    }

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