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] $_streamArn
    hidden [object] $_serviceAccessRoleArn

    [string] $MessageFormat
    [string] $StreamArn
    [string] $ServiceAccessRoleArn

    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 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
            }
        }
    }

    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] $_externalTableDefinition
    hidden [object] $_bucketName
    hidden [object] $_bucketFolder
    hidden [object] $_csvRowDelimiter
    hidden [object] $_csvDelimiter
    hidden [object] $_serviceAccessRoleArn
    hidden [object] $_compressionType

    [string] $ExternalTableDefinition
    [string] $BucketName
    [string] $BucketFolder
    [string] $CsvRowDelimiter
    [string] $CsvDelimiter
    [string] $ServiceAccessRoleArn
    [string] $CompressionType

    hidden [void] _addAccessors() {
        $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 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 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 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 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 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 CompressionType -Value {
            $this._compressionType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._compressionType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    DMSEndpointS3Settings() : base() {}
    DMSEndpointS3Settings([IDictionary] $props) : base($props) {}
    DMSEndpointS3Settings([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] $_authSource
    hidden [object] $_authMechanism
    hidden [object] $_username
    hidden [object] $_docsToInvestigate
    hidden [object] $_serverName
    hidden [object] $_port
    hidden [object] $_extractDocId
    hidden [object] $_databaseName
    hidden [object] $_authType
    hidden [object] $_password
    hidden [object] $_nestingLevel

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

    hidden [void] _addAccessors() {
        $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 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 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 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] $_topic

    [string] $Broker
    [string] $Topic

    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 Topic -Value {
            $this._topic
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._topic = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    DMSEndpointKafkaSettings() : base() {}
    DMSEndpointKafkaSettings([IDictionary] $props) : base($props) {}
    DMSEndpointKafkaSettings([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 '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 '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 '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'
    [string] $KmsKeyId
    [DMSEndpointKafkaSettings] $KafkaSettings
    [int] $Port
    [string] $DatabaseName
    [DMSEndpointNeptuneSettings] $NeptuneSettings
    [DMSEndpointElasticsearchSettings] $ElasticsearchSettings
    [DMSEndpointS3Settings] $S3Settings
    [string] $EngineName
    [DMSEndpointDynamoDbSettings] $DynamoDbSettings
    [DMSEndpointKinesisSettings] $KinesisSettings
    [string] $Username
    [string] $SslMode
    [string] $ServerName
    [string] $ExtraConnectionAttributes
    [string] $EndpointType
    [VSTag[]] $Tags
    [string] $EndpointIdentifier
    [string] $Password
    [string] $CertificateArn
    [DMSEndpointMongoDbSettings] $MongoDbSettings
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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] $TableMappings
    [string] $CdcStartPosition
    [string] $ReplicationTaskIdentifier
    [string] $CdcStopPosition
    [string] $SourceEndpointArn
    [string] $MigrationType
    [string] $TargetEndpointArn
    [string] $ReplicationInstanceArn
    [VSTag[]] $Tags
    [string] $TaskData
    [double] $CdcStartTime
    [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 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 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 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 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 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 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 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 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 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[]] $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 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) {}
}