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 '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 '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 '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] $_indexName
    hidden [object] $_keySchema
    hidden [object] $_projection
    hidden [object] $_provisionedThroughput

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

    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
        }
        $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 '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 '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 '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 '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
    [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 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) {}
}