VaporShell.CloudFormation.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 'CloudFormationStackSetStackInstances'"

class CloudFormationStackSetStackInstances : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudFormationStackSetStackInstances'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-stackinstances.html'

    hidden [object] $_deploymentTargets
    hidden [object] $_regions
    hidden [object] $_parameterOverrides

    [CloudFormationStackSetDeploymentTargets] $DeploymentTargets
    [string[]] $Regions
    [CloudFormationStackSetParameter[]] $ParameterOverrides

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeploymentTargets -Value {
            $this._deploymentTargets
        } -SecondValue {
            param([ValidateType(([CloudFormationStackSetDeploymentTargets], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._deploymentTargets = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Regions -Value {
            $this._regions
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._regions = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ParameterOverrides -Value {
            $this._parameterOverrides
        } -SecondValue {
            param([ValidateType(([CloudFormationStackSetParameter], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._parameterOverrides = $value
        }
    }

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

Write-Verbose "Importing class 'CloudFormationResourceVersionLoggingConfig'"

class CloudFormationResourceVersionLoggingConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudFormationResourceVersionLoggingConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-resourceversion-loggingconfig.html'

    hidden [object] $_logGroupName
    hidden [object] $_logRoleArn

    [string] $LogGroupName
    [string] $LogRoleArn

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

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

Write-Verbose "Importing class 'CloudFormationStackSetAutoDeployment'"

class CloudFormationStackSetAutoDeployment : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudFormationStackSetAutoDeployment'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-autodeployment.html'

    hidden [object] $_enabled
    hidden [object] $_retainStacksOnAccountRemoval

    [bool] $Enabled
    [bool] $RetainStacksOnAccountRemoval

    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
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RetainStacksOnAccountRemoval -Value {
            $this._retainStacksOnAccountRemoval
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._retainStacksOnAccountRemoval = $value
        }
    }

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

Write-Verbose "Importing class 'CloudFormationStackSetDeploymentTargets'"

class CloudFormationStackSetDeploymentTargets : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudFormationStackSetDeploymentTargets'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-deploymenttargets.html'

    hidden [object] $_accounts
    hidden [object] $_organizationalUnitIds

    [string[]] $Accounts
    [string[]] $OrganizationalUnitIds

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

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

Write-Verbose "Importing class 'CloudFormationStackSetOperationPreferences'"

class CloudFormationStackSetOperationPreferences : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudFormationStackSetOperationPreferences'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-operationpreferences.html'

    hidden [object] $_failureToleranceCount
    hidden [object] $_failureTolerancePercentage
    hidden [object] $_maxConcurrentCount
    hidden [object] $_maxConcurrentPercentage
    hidden [object] $_regionOrder
    hidden [object] $_regionConcurrencyType

    [int] $FailureToleranceCount
    [int] $FailureTolerancePercentage
    [int] $MaxConcurrentCount
    [int] $MaxConcurrentPercentage
    [string[]] $RegionOrder
    [string] $RegionConcurrencyType

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name FailureToleranceCount -Value {
            $this._failureToleranceCount
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._failureToleranceCount = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FailureTolerancePercentage -Value {
            $this._failureTolerancePercentage
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._failureTolerancePercentage = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxConcurrentCount -Value {
            $this._maxConcurrentCount
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._maxConcurrentCount = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxConcurrentPercentage -Value {
            $this._maxConcurrentPercentage
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._maxConcurrentPercentage = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RegionOrder -Value {
            $this._regionOrder
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._regionOrder = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RegionConcurrencyType -Value {
            $this._regionConcurrencyType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._regionConcurrencyType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'CloudFormationStackSetParameter'"

class CloudFormationStackSetParameter : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudFormationStackSetParameter'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-stackset-parameter.html'

    hidden [object] $_parameterKey
    hidden [object] $_parameterValue

    [string] $ParameterKey
    [string] $ParameterValue

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

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

Write-Verbose "Importing class 'CloudFormationTypeActivationLoggingConfig'"

class CloudFormationTypeActivationLoggingConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSCloudFormationTypeActivationLoggingConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudformation-typeactivation-loggingconfig.html'

    hidden [object] $_logGroupName
    hidden [object] $_logRoleArn

    [string] $LogGroupName
    [string] $LogRoleArn

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

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

Write-Verbose "Importing class 'CloudFormationStackSet'"

class CloudFormationStackSet : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudFormationStackSet'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-stackset.html'

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

    [string] $Type = 'AWS::CloudFormation::StackSet'
    [string] $StackSetName
    [string] $AdministrationRoleARN
    [CloudFormationStackSetAutoDeployment] $AutoDeployment
    [string[]] $Capabilities
    [string] $Description
    [string] $ExecutionRoleName
    [CloudFormationStackSetOperationPreferences] $OperationPreferences
    [CloudFormationStackSetStackInstances[]] $StackInstancesGroup
    [CloudFormationStackSetParameter[]] $Parameters
    [string] $PermissionModel
    [VSTag[]] $Tags
    [string] $TemplateBody
    [string] $TemplateURL
    [string] $CallAs
    [VSJson] $ManagedExecution
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name StackSetName -Value {
            $this.Properties['StackSetName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['StackSetName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AdministrationRoleARN -Value {
            $this.Properties['AdministrationRoleARN']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AdministrationRoleARN'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AutoDeployment -Value {
            $this.Properties['AutoDeployment']
        } -SecondValue {
            param([ValidateType(([CloudFormationStackSetAutoDeployment], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AutoDeployment'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Capabilities -Value {
            $this.Properties['Capabilities']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Capabilities'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this.Properties['Description']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Description'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExecutionRoleName -Value {
            $this.Properties['ExecutionRoleName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ExecutionRoleName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OperationPreferences -Value {
            $this.Properties['OperationPreferences']
        } -SecondValue {
            param([ValidateType(([CloudFormationStackSetOperationPreferences], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['OperationPreferences'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StackInstancesGroup -Value {
            $this.Properties['StackInstancesGroup']
        } -SecondValue {
            param([ValidateType(([CloudFormationStackSetStackInstances], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['StackInstancesGroup'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Parameters -Value {
            $this.Properties['Parameters']
        } -SecondValue {
            param([ValidateType(([CloudFormationStackSetParameter], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Parameters'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PermissionModel -Value {
            $this.Properties['PermissionModel']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PermissionModel'] = 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 TemplateBody -Value {
            $this.Properties['TemplateBody']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TemplateBody'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TemplateURL -Value {
            $this.Properties['TemplateURL']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TemplateURL'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CallAs -Value {
            $this.Properties['CallAs']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CallAs'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ManagedExecution -Value {
            $this.Properties['ManagedExecution']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['ManagedExecution'] = [VSJson]::Transform($value)
            Write-Debug $this.Properties['ManagedExecution']
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'CloudFormationResourceDefaultVersion'"

class CloudFormationResourceDefaultVersion : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudFormationResourceDefaultVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourcedefaultversion.html'

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

    [string] $Type = 'AWS::CloudFormation::ResourceDefaultVersion'
    [string] $TypeVersionArn
    [string] $TypeName
    [string] $VersionId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'CloudFormationCustomResource'"

class CloudFormationCustomResource : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudFormationCustomResource'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cfn-customresource.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::CloudFormation::CustomResource'
    [string] $ServiceToken
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'CloudFormationTypeActivation'"

class CloudFormationTypeActivation : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudFormationTypeActivation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-typeactivation.html'

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

    [string] $Type = 'AWS::CloudFormation::TypeActivation'
    [string] $ExecutionRoleArn
    [string] $PublisherId
    [CloudFormationTypeActivationLoggingConfig] $LoggingConfig
    [string] $PublicTypeArn
    [bool] $AutoUpdate
    [string] $TypeNameAlias
    [string] $VersionBump
    [string] $MajorVersion
    [string] $TypeName
    [string] $TypeActivationType
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExecutionRoleArn -Value {
            $this.Properties['ExecutionRoleArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ExecutionRoleArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PublisherId -Value {
            $this.Properties['PublisherId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PublisherId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LoggingConfig -Value {
            $this.Properties['LoggingConfig']
        } -SecondValue {
            param([ValidateType(([CloudFormationTypeActivationLoggingConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LoggingConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PublicTypeArn -Value {
            $this.Properties['PublicTypeArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PublicTypeArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AutoUpdate -Value {
            $this.Properties['AutoUpdate']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AutoUpdate'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TypeNameAlias -Value {
            $this.Properties['TypeNameAlias']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TypeNameAlias'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name VersionBump -Value {
            $this.Properties['VersionBump']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['VersionBump'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MajorVersion -Value {
            $this.Properties['MajorVersion']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MajorVersion'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TypeName -Value {
            $this.Properties['TypeName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TypeName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TypeActivationType -Value {
            $this.Properties['TypeActivationType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TypeActivationType'] = 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
        }
    }

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

Write-Verbose "Importing class 'CloudFormationPublicTypeVersion'"

class CloudFormationPublicTypeVersion : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudFormationPublicTypeVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publictypeversion.html'

    hidden [string[]] $_attributes = @('TypeVersionArn','PublisherId','PublicTypeArn')
    hidden [object] $_condition

    [string] $Type = 'AWS::CloudFormation::PublicTypeVersion'
    [string] $Arn
    [string] $PublicVersionNumber
    [string] $TypeName
    [string] $LogDeliveryBucket
    [string] $PublicTypeVersionType
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'CloudFormationResourceVersion'"

class CloudFormationResourceVersion : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudFormationResourceVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-resourceversion.html'

    hidden [string[]] $_attributes = @('Arn','TypeArn','IsDefaultVersion','ProvisioningType','VersionId','Visibility')
    hidden [object] $_condition

    [string] $Type = 'AWS::CloudFormation::ResourceVersion'
    [string] $ExecutionRoleArn
    [CloudFormationResourceVersionLoggingConfig] $LoggingConfig
    [string] $SchemaHandlerPackage
    [string] $TypeName
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'CloudFormationMacro'"

class CloudFormationMacro : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudFormationMacro'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-macro.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::CloudFormation::Macro'
    [string] $Description
    [string] $FunctionName
    [string] $LogGroupName
    [string] $LogRoleARN
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'CloudFormationModuleDefaultVersion'"

class CloudFormationModuleDefaultVersion : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudFormationModuleDefaultVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduledefaultversion.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::CloudFormation::ModuleDefaultVersion'
    [string] $Arn
    [string] $ModuleName
    [string] $VersionId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'CloudFormationStack'"

class CloudFormationStack : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudFormationStack'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::CloudFormation::Stack'
    [string[]] $NotificationARNs
    [string] $Parameters
    [VSTag[]] $Tags
    [string] $TemplateURL
    [int] $TimeoutInMinutes
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'CloudFormationPublisher'"

class CloudFormationPublisher : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudFormationPublisher'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-publisher.html'

    hidden [string[]] $_attributes = @('PublisherId','PublisherStatus','PublisherProfile','IdentityProvider')
    hidden [object] $_condition

    [string] $Type = 'AWS::CloudFormation::Publisher'
    [bool] $AcceptTermsAndConditions
    [string] $ConnectionArn
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name AcceptTermsAndConditions -Value {
            $this.Properties['AcceptTermsAndConditions']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AcceptTermsAndConditions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConnectionArn -Value {
            $this.Properties['ConnectionArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ConnectionArn'] = 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
        }
    }

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

Write-Verbose "Importing class 'CloudFormationWaitCondition'"

class CloudFormationWaitCondition : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudFormationWaitCondition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitcondition.html'

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

    [string] $Type = 'AWS::CloudFormation::WaitCondition'
    [int] $Count
    [string] $Handle
    [string] $Timeout
    [VSJson] $Metadata
    [CreationPolicy] $CreationPolicy
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'CloudFormationWaitConditionHandle'"

class CloudFormationWaitConditionHandle : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudFormationWaitConditionHandle'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-waitconditionhandle.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::CloudFormation::WaitConditionHandle'
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'CloudFormationModuleVersion'"

class CloudFormationModuleVersion : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudFormationModuleVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-moduleversion.html'

    hidden [string[]] $_attributes = @('Arn','Description','DocumentationUrl','IsDefaultVersion','Schema','TimeCreated','VersionId','Visibility')
    hidden [object] $_condition

    [string] $Type = 'AWS::CloudFormation::ModuleVersion'
    [string] $ModuleName
    [string] $ModulePackage
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'CloudFormationHookTypeConfig'"

class CloudFormationHookTypeConfig : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudFormationHookTypeConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hooktypeconfig.html'

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

    [string] $Type = 'AWS::CloudFormation::HookTypeConfig'
    [string] $TypeArn
    [string] $TypeName
    [string] $Configuration
    [string] $ConfigurationAlias
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'CloudFormationHookDefaultVersion'"

class CloudFormationHookDefaultVersion : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSCloudFormationHookDefaultVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-hookdefaultversion.html'

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

    [string] $Type = 'AWS::CloudFormation::HookDefaultVersion'
    [string] $TypeVersionArn
    [string] $TypeName
    [string] $VersionId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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