VaporShell.DynamoDB.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 'DynamoDBTableLocalSecondaryIndex'"

class DynamoDBTableLocalSecondaryIndex : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBTableLocalSecondaryIndex'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-lsi.html'

    hidden [object] $_indexName
    hidden [object] $_keySchema
    hidden [object] $_projection

    [string] $IndexName
    [DynamoDBTableKeySchema[]] $KeySchema
    [DynamoDBTableProjection] $Projection

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name IndexName -Value {
            $this._indexName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._indexName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeySchema -Value {
            $this._keySchema
        } -SecondValue {
            param([ValidateType(([DynamoDBTableKeySchema], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._keySchema = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Projection -Value {
            $this._projection
        } -SecondValue {
            param([ValidateType(([DynamoDBTableProjection], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._projection = $value
        }
    }

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

Write-Verbose "Importing class 'DynamoDBGlobalTablePointInTimeRecoverySpecification'"

class DynamoDBGlobalTablePointInTimeRecoverySpecification : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBGlobalTablePointInTimeRecoverySpecification'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-pointintimerecoveryspecification.html'

    hidden [object] $_pointInTimeRecoveryEnabled

    [bool] $PointInTimeRecoveryEnabled

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

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

Write-Verbose "Importing class 'DynamoDBTablePointInTimeRecoverySpecification'"

class DynamoDBTablePointInTimeRecoverySpecification : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBTablePointInTimeRecoverySpecification'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-pointintimerecoveryspecification.html'

    hidden [object] $_pointInTimeRecoveryEnabled

    [bool] $PointInTimeRecoveryEnabled

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

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

Write-Verbose "Importing class 'DynamoDBTableKinesisStreamSpecification'"

class DynamoDBTableKinesisStreamSpecification : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBTableKinesisStreamSpecification'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-kinesisstreamspecification.html'

    hidden [object] $_streamArn

    [string] $StreamArn

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

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

Write-Verbose "Importing class 'DynamoDBGlobalTableContributorInsightsSpecification'"

class DynamoDBGlobalTableContributorInsightsSpecification : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBGlobalTableContributorInsightsSpecification'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-contributorinsightsspecification.html'

    hidden [object] $_enabled

    [bool] $Enabled

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

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

Write-Verbose "Importing class 'DynamoDBTableAttributeDefinition'"

class DynamoDBTableAttributeDefinition : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBTableAttributeDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html'

    hidden [object] $_attributeName
    hidden [object] $_attributeType

    [string] $AttributeName
    [string] $AttributeType

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

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

Write-Verbose "Importing class 'DynamoDBGlobalTableCapacityAutoScalingSettings'"

class DynamoDBGlobalTableCapacityAutoScalingSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBGlobalTableCapacityAutoScalingSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-capacityautoscalingsettings.html'

    hidden [object] $_minCapacity
    hidden [object] $_maxCapacity
    hidden [object] $_seedCapacity
    hidden [object] $_targetTrackingScalingPolicyConfiguration

    [int] $MinCapacity
    [int] $MaxCapacity
    [int] $SeedCapacity
    [DynamoDBGlobalTableTargetTrackingScalingPolicyConfiguration] $TargetTrackingScalingPolicyConfiguration

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name MinCapacity -Value {
            $this._minCapacity
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._minCapacity = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxCapacity -Value {
            $this._maxCapacity
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._maxCapacity = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SeedCapacity -Value {
            $this._seedCapacity
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._seedCapacity = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetTrackingScalingPolicyConfiguration -Value {
            $this._targetTrackingScalingPolicyConfiguration
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableTargetTrackingScalingPolicyConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._targetTrackingScalingPolicyConfiguration = $value
        }
    }

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

Write-Verbose "Importing class 'DynamoDBGlobalTableReadProvisionedThroughputSettings'"

class DynamoDBGlobalTableReadProvisionedThroughputSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBGlobalTableReadProvisionedThroughputSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-readprovisionedthroughputsettings.html'

    hidden [object] $_readCapacityUnits
    hidden [object] $_readCapacityAutoScalingSettings

    [int] $ReadCapacityUnits
    [DynamoDBGlobalTableCapacityAutoScalingSettings] $ReadCapacityAutoScalingSettings

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

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

Write-Verbose "Importing class 'DynamoDBGlobalTableLocalSecondaryIndex'"

class DynamoDBGlobalTableLocalSecondaryIndex : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBGlobalTableLocalSecondaryIndex'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-localsecondaryindex.html'

    hidden [object] $_indexName
    hidden [object] $_keySchema
    hidden [object] $_projection

    [string] $IndexName
    [DynamoDBGlobalTableKeySchema[]] $KeySchema
    [DynamoDBGlobalTableProjection] $Projection

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name IndexName -Value {
            $this._indexName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._indexName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeySchema -Value {
            $this._keySchema
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableKeySchema], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._keySchema = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Projection -Value {
            $this._projection
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableProjection], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._projection = $value
        }
    }

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

Write-Verbose "Importing class 'DynamoDBTableGlobalSecondaryIndex'"

class DynamoDBTableGlobalSecondaryIndex : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBTableGlobalSecondaryIndex'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-gsi.html'

    hidden [object] $_contributorInsightsSpecification
    hidden [object] $_indexName
    hidden [object] $_keySchema
    hidden [object] $_projection
    hidden [object] $_provisionedThroughput

    [DynamoDBTableContributorInsightsSpecification] $ContributorInsightsSpecification
    [string] $IndexName
    [DynamoDBTableKeySchema[]] $KeySchema
    [DynamoDBTableProjection] $Projection
    [DynamoDBTableProvisionedThroughput] $ProvisionedThroughput

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContributorInsightsSpecification -Value {
            $this._contributorInsightsSpecification
        } -SecondValue {
            param([ValidateType(([DynamoDBTableContributorInsightsSpecification], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._contributorInsightsSpecification = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IndexName -Value {
            $this._indexName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._indexName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeySchema -Value {
            $this._keySchema
        } -SecondValue {
            param([ValidateType(([DynamoDBTableKeySchema], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._keySchema = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Projection -Value {
            $this._projection
        } -SecondValue {
            param([ValidateType(([DynamoDBTableProjection], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._projection = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProvisionedThroughput -Value {
            $this._provisionedThroughput
        } -SecondValue {
            param([ValidateType(([DynamoDBTableProvisionedThroughput], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._provisionedThroughput = $value
        }
    }

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

Write-Verbose "Importing class 'DynamoDBTableContributorInsightsSpecification'"

class DynamoDBTableContributorInsightsSpecification : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBTableContributorInsightsSpecification'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-contributorinsightsspecification.html'

    hidden [object] $_enabled

    [bool] $Enabled

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

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

Write-Verbose "Importing class 'DynamoDBTableKeySchema'"

class DynamoDBTableKeySchema : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBTableKeySchema'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html'

    hidden [object] $_attributeName
    hidden [object] $_keyType

    [string] $AttributeName
    [string] $KeyType

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

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

Write-Verbose "Importing class 'DynamoDBGlobalTableTargetTrackingScalingPolicyConfiguration'"

class DynamoDBGlobalTableTargetTrackingScalingPolicyConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBGlobalTableTargetTrackingScalingPolicyConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-targettrackingscalingpolicyconfiguration.html'

    hidden [object] $_disableScaleIn
    hidden [object] $_scaleInCooldown
    hidden [object] $_scaleOutCooldown
    hidden [object] $_targetValue

    [bool] $DisableScaleIn
    [int] $ScaleInCooldown
    [int] $ScaleOutCooldown
    [double] $TargetValue

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DisableScaleIn -Value {
            $this._disableScaleIn
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._disableScaleIn = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ScaleInCooldown -Value {
            $this._scaleInCooldown
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._scaleInCooldown = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ScaleOutCooldown -Value {
            $this._scaleOutCooldown
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._scaleOutCooldown = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetValue -Value {
            $this._targetValue
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._targetValue = $value
        }
    }

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

Write-Verbose "Importing class 'DynamoDBGlobalTableReplicaSpecification'"

class DynamoDBGlobalTableReplicaSpecification : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBGlobalTableReplicaSpecification'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html'

    hidden [object] $_region
    hidden [object] $_globalSecondaryIndexes
    hidden [object] $_contributorInsightsSpecification
    hidden [object] $_pointInTimeRecoverySpecification
    hidden [object] $_sSESpecification
    hidden [object] $_tags
    hidden [object] $_readProvisionedThroughputSettings

    [string] $Region
    [DynamoDBGlobalTableReplicaGlobalSecondaryIndexSpecification[]] $GlobalSecondaryIndexes
    [DynamoDBGlobalTableContributorInsightsSpecification] $ContributorInsightsSpecification
    [DynamoDBGlobalTablePointInTimeRecoverySpecification] $PointInTimeRecoverySpecification
    [DynamoDBGlobalTableReplicaSSESpecification] $SSESpecification
    [VSTag[]] $Tags
    [DynamoDBGlobalTableReadProvisionedThroughputSettings] $ReadProvisionedThroughputSettings

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Region -Value {
            $this._region
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._region = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GlobalSecondaryIndexes -Value {
            $this._globalSecondaryIndexes
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableReplicaGlobalSecondaryIndexSpecification], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._globalSecondaryIndexes = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContributorInsightsSpecification -Value {
            $this._contributorInsightsSpecification
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableContributorInsightsSpecification], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._contributorInsightsSpecification = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PointInTimeRecoverySpecification -Value {
            $this._pointInTimeRecoverySpecification
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTablePointInTimeRecoverySpecification], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._pointInTimeRecoverySpecification = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SSESpecification -Value {
            $this._sSESpecification
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableReplicaSSESpecification], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sSESpecification = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this._tags
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this._tags = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReadProvisionedThroughputSettings -Value {
            $this._readProvisionedThroughputSettings
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableReadProvisionedThroughputSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._readProvisionedThroughputSettings = $value
        }
    }

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

Write-Verbose "Importing class 'DynamoDBGlobalTableGlobalSecondaryIndex'"

class DynamoDBGlobalTableGlobalSecondaryIndex : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBGlobalTableGlobalSecondaryIndex'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-globalsecondaryindex.html'

    hidden [object] $_indexName
    hidden [object] $_keySchema
    hidden [object] $_projection
    hidden [object] $_writeProvisionedThroughputSettings

    [string] $IndexName
    [DynamoDBGlobalTableKeySchema[]] $KeySchema
    [DynamoDBGlobalTableProjection] $Projection
    [DynamoDBGlobalTableWriteProvisionedThroughputSettings] $WriteProvisionedThroughputSettings

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name IndexName -Value {
            $this._indexName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._indexName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeySchema -Value {
            $this._keySchema
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableKeySchema], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._keySchema = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Projection -Value {
            $this._projection
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableProjection], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._projection = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name WriteProvisionedThroughputSettings -Value {
            $this._writeProvisionedThroughputSettings
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableWriteProvisionedThroughputSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._writeProvisionedThroughputSettings = $value
        }
    }

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

Write-Verbose "Importing class 'DynamoDBGlobalTableKeySchema'"

class DynamoDBGlobalTableKeySchema : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBGlobalTableKeySchema'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-keyschema.html'

    hidden [object] $_attributeName
    hidden [object] $_keyType

    [string] $AttributeName
    [string] $KeyType

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

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

Write-Verbose "Importing class 'DynamoDBGlobalTableStreamSpecification'"

class DynamoDBGlobalTableStreamSpecification : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBGlobalTableStreamSpecification'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-streamspecification.html'

    hidden [object] $_streamViewType

    [string] $StreamViewType

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

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

Write-Verbose "Importing class 'DynamoDBGlobalTableProjection'"

class DynamoDBGlobalTableProjection : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBGlobalTableProjection'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-projection.html'

    hidden [object] $_nonKeyAttributes
    hidden [object] $_projectionType

    [string[]] $NonKeyAttributes
    [string] $ProjectionType

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

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

Write-Verbose "Importing class 'DynamoDBGlobalTableReplicaGlobalSecondaryIndexSpecification'"

class DynamoDBGlobalTableReplicaGlobalSecondaryIndexSpecification : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBGlobalTableReplicaGlobalSecondaryIndexSpecification'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaglobalsecondaryindexspecification.html'

    hidden [object] $_indexName
    hidden [object] $_contributorInsightsSpecification
    hidden [object] $_readProvisionedThroughputSettings

    [string] $IndexName
    [DynamoDBGlobalTableContributorInsightsSpecification] $ContributorInsightsSpecification
    [DynamoDBGlobalTableReadProvisionedThroughputSettings] $ReadProvisionedThroughputSettings

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name IndexName -Value {
            $this._indexName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._indexName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContributorInsightsSpecification -Value {
            $this._contributorInsightsSpecification
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableContributorInsightsSpecification], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._contributorInsightsSpecification = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReadProvisionedThroughputSettings -Value {
            $this._readProvisionedThroughputSettings
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableReadProvisionedThroughputSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._readProvisionedThroughputSettings = $value
        }
    }

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

Write-Verbose "Importing class 'DynamoDBGlobalTableAttributeDefinition'"

class DynamoDBGlobalTableAttributeDefinition : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBGlobalTableAttributeDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-attributedefinition.html'

    hidden [object] $_attributeName
    hidden [object] $_attributeType

    [string] $AttributeName
    [string] $AttributeType

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

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

Write-Verbose "Importing class 'DynamoDBGlobalTableSSESpecification'"

class DynamoDBGlobalTableSSESpecification : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBGlobalTableSSESpecification'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-ssespecification.html'

    hidden [object] $_sSEEnabled
    hidden [object] $_sSEType

    [bool] $SSEEnabled
    [string] $SSEType

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

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

Write-Verbose "Importing class 'DynamoDBTableSSESpecification'"

class DynamoDBTableSSESpecification : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBTableSSESpecification'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html'

    hidden [object] $_kMSMasterKeyId
    hidden [object] $_sSEEnabled
    hidden [object] $_sSEType

    [string] $KMSMasterKeyId
    [bool] $SSEEnabled
    [string] $SSEType

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

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

Write-Verbose "Importing class 'DynamoDBTableTimeToLiveSpecification'"

class DynamoDBTableTimeToLiveSpecification : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBTableTimeToLiveSpecification'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-timetolivespecification.html'

    hidden [object] $_attributeName
    hidden [object] $_enabled

    [string] $AttributeName
    [bool] $Enabled

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

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

Write-Verbose "Importing class 'DynamoDBTableProvisionedThroughput'"

class DynamoDBTableProvisionedThroughput : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBTableProvisionedThroughput'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-provisionedthroughput.html'

    hidden [object] $_readCapacityUnits
    hidden [object] $_writeCapacityUnits

    [long] $ReadCapacityUnits
    [long] $WriteCapacityUnits

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReadCapacityUnits -Value {
            $this._readCapacityUnits
        } -SecondValue {
            param([ValidateType(([long], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._readCapacityUnits = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name WriteCapacityUnits -Value {
            $this._writeCapacityUnits
        } -SecondValue {
            param([ValidateType(([long], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._writeCapacityUnits = $value
        }
    }

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

Write-Verbose "Importing class 'DynamoDBGlobalTableWriteProvisionedThroughputSettings'"

class DynamoDBGlobalTableWriteProvisionedThroughputSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBGlobalTableWriteProvisionedThroughputSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-writeprovisionedthroughputsettings.html'

    hidden [object] $_writeCapacityAutoScalingSettings

    [DynamoDBGlobalTableCapacityAutoScalingSettings] $WriteCapacityAutoScalingSettings

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

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

Write-Verbose "Importing class 'DynamoDBTableProjection'"

class DynamoDBTableProjection : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBTableProjection'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-projectionobject.html'

    hidden [object] $_nonKeyAttributes
    hidden [object] $_projectionType

    [string[]] $NonKeyAttributes
    [string] $ProjectionType

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

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

Write-Verbose "Importing class 'DynamoDBGlobalTableTimeToLiveSpecification'"

class DynamoDBGlobalTableTimeToLiveSpecification : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBGlobalTableTimeToLiveSpecification'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-timetolivespecification.html'

    hidden [object] $_attributeName
    hidden [object] $_enabled

    [string] $AttributeName
    [bool] $Enabled

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

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

Write-Verbose "Importing class 'DynamoDBGlobalTableReplicaSSESpecification'"

class DynamoDBGlobalTableReplicaSSESpecification : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBGlobalTableReplicaSSESpecification'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicassespecification.html'

    hidden [object] $_kMSMasterKeyId

    [string] $KMSMasterKeyId

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

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

Write-Verbose "Importing class 'DynamoDBTableStreamSpecification'"

class DynamoDBTableStreamSpecification : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDynamoDBTableStreamSpecification'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-streamspecification.html'

    hidden [object] $_streamViewType

    [string] $StreamViewType

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

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

Write-Verbose "Importing class 'DynamoDBTable'"

class DynamoDBTable : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSDynamoDBTable'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html'

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

    [string] $Type = 'AWS::DynamoDB::Table'
    [DynamoDBTableAttributeDefinition[]] $AttributeDefinitions
    [string] $BillingMode
    [DynamoDBTableContributorInsightsSpecification] $ContributorInsightsSpecification
    [DynamoDBTableGlobalSecondaryIndex[]] $GlobalSecondaryIndexes
    [DynamoDBTableKeySchema[]] $KeySchema
    [DynamoDBTableKinesisStreamSpecification] $KinesisStreamSpecification
    [DynamoDBTableLocalSecondaryIndex[]] $LocalSecondaryIndexes
    [DynamoDBTablePointInTimeRecoverySpecification] $PointInTimeRecoverySpecification
    [DynamoDBTableProvisionedThroughput] $ProvisionedThroughput
    [DynamoDBTableSSESpecification] $SSESpecification
    [DynamoDBTableStreamSpecification] $StreamSpecification
    [string] $TableName
    [VSTag[]] $Tags
    [DynamoDBTableTimeToLiveSpecification] $TimeToLiveSpecification
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name AttributeDefinitions -Value {
            $this.Properties['AttributeDefinitions']
        } -SecondValue {
            param([ValidateType(([DynamoDBTableAttributeDefinition], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['AttributeDefinitions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BillingMode -Value {
            $this.Properties['BillingMode']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BillingMode'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContributorInsightsSpecification -Value {
            $this.Properties['ContributorInsightsSpecification']
        } -SecondValue {
            param([ValidateType(([DynamoDBTableContributorInsightsSpecification], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ContributorInsightsSpecification'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GlobalSecondaryIndexes -Value {
            $this.Properties['GlobalSecondaryIndexes']
        } -SecondValue {
            param([ValidateType(([DynamoDBTableGlobalSecondaryIndex], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['GlobalSecondaryIndexes'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeySchema -Value {
            $this.Properties['KeySchema']
        } -SecondValue {
            param([ValidateType(([DynamoDBTableKeySchema], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['KeySchema'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KinesisStreamSpecification -Value {
            $this.Properties['KinesisStreamSpecification']
        } -SecondValue {
            param([ValidateType(([DynamoDBTableKinesisStreamSpecification], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['KinesisStreamSpecification'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LocalSecondaryIndexes -Value {
            $this.Properties['LocalSecondaryIndexes']
        } -SecondValue {
            param([ValidateType(([DynamoDBTableLocalSecondaryIndex], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['LocalSecondaryIndexes'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PointInTimeRecoverySpecification -Value {
            $this.Properties['PointInTimeRecoverySpecification']
        } -SecondValue {
            param([ValidateType(([DynamoDBTablePointInTimeRecoverySpecification], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PointInTimeRecoverySpecification'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProvisionedThroughput -Value {
            $this.Properties['ProvisionedThroughput']
        } -SecondValue {
            param([ValidateType(([DynamoDBTableProvisionedThroughput], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProvisionedThroughput'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SSESpecification -Value {
            $this.Properties['SSESpecification']
        } -SecondValue {
            param([ValidateType(([DynamoDBTableSSESpecification], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SSESpecification'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StreamSpecification -Value {
            $this.Properties['StreamSpecification']
        } -SecondValue {
            param([ValidateType(([DynamoDBTableStreamSpecification], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['StreamSpecification'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TableName -Value {
            $this.Properties['TableName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TableName'] = 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 TimeToLiveSpecification -Value {
            $this.Properties['TimeToLiveSpecification']
        } -SecondValue {
            param([ValidateType(([DynamoDBTableTimeToLiveSpecification], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TimeToLiveSpecification'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'DynamoDBGlobalTable'"

class DynamoDBGlobalTable : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSDynamoDBGlobalTable'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html'

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

    [string] $Type = 'AWS::DynamoDB::GlobalTable'
    [DynamoDBGlobalTableAttributeDefinition[]] $AttributeDefinitions
    [string] $BillingMode
    [DynamoDBGlobalTableGlobalSecondaryIndex[]] $GlobalSecondaryIndexes
    [DynamoDBGlobalTableKeySchema[]] $KeySchema
    [DynamoDBGlobalTableLocalSecondaryIndex[]] $LocalSecondaryIndexes
    [DynamoDBGlobalTableWriteProvisionedThroughputSettings] $WriteProvisionedThroughputSettings
    [DynamoDBGlobalTableReplicaSpecification[]] $Replicas
    [DynamoDBGlobalTableSSESpecification] $SSESpecification
    [DynamoDBGlobalTableStreamSpecification] $StreamSpecification
    [string] $TableName
    [DynamoDBGlobalTableTimeToLiveSpecification] $TimeToLiveSpecification
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name AttributeDefinitions -Value {
            $this.Properties['AttributeDefinitions']
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableAttributeDefinition], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['AttributeDefinitions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BillingMode -Value {
            $this.Properties['BillingMode']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BillingMode'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GlobalSecondaryIndexes -Value {
            $this.Properties['GlobalSecondaryIndexes']
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableGlobalSecondaryIndex], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['GlobalSecondaryIndexes'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeySchema -Value {
            $this.Properties['KeySchema']
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableKeySchema], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['KeySchema'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LocalSecondaryIndexes -Value {
            $this.Properties['LocalSecondaryIndexes']
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableLocalSecondaryIndex], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['LocalSecondaryIndexes'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name WriteProvisionedThroughputSettings -Value {
            $this.Properties['WriteProvisionedThroughputSettings']
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableWriteProvisionedThroughputSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['WriteProvisionedThroughputSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Replicas -Value {
            $this.Properties['Replicas']
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableReplicaSpecification], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Replicas'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SSESpecification -Value {
            $this.Properties['SSESpecification']
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableSSESpecification], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SSESpecification'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StreamSpecification -Value {
            $this.Properties['StreamSpecification']
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableStreamSpecification], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['StreamSpecification'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TableName -Value {
            $this.Properties['TableName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TableName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TimeToLiveSpecification -Value {
            $this.Properties['TimeToLiveSpecification']
        } -SecondValue {
            param([ValidateType(([DynamoDBGlobalTableTimeToLiveSpecification], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TimeToLiveSpecification'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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