VaporShell.ServiceCatalog.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 'ServiceCatalogCloudFormationProvisionedProductProvisioningParameter'"

class ServiceCatalogCloudFormationProvisionedProductProvisioningParameter : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSServiceCatalogCloudFormationProvisionedProductProvisioningParameter'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningparameter.html'

    hidden [object] $_key
    hidden [object] $_value

    [string] $Key
    [string] $Value

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

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

Write-Verbose "Importing class 'ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences'"

class ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSServiceCatalogCloudFormationProvisionedProductProvisioningPreferences'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationprovisionedproduct-provisioningpreferences.html'

    hidden [object] $_stackSetAccounts
    hidden [object] $_stackSetFailureToleranceCount
    hidden [object] $_stackSetFailureTolerancePercentage
    hidden [object] $_stackSetMaxConcurrencyCount
    hidden [object] $_stackSetMaxConcurrencyPercentage
    hidden [object] $_stackSetOperationType
    hidden [object] $_stackSetRegions

    [string[]] $StackSetAccounts
    [int] $StackSetFailureToleranceCount
    [int] $StackSetFailureTolerancePercentage
    [int] $StackSetMaxConcurrencyCount
    [int] $StackSetMaxConcurrencyPercentage
    [string] $StackSetOperationType
    [string[]] $StackSetRegions

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name StackSetAccounts -Value {
            $this._stackSetAccounts
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._stackSetAccounts = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StackSetFailureToleranceCount -Value {
            $this._stackSetFailureToleranceCount
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._stackSetFailureToleranceCount = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StackSetFailureTolerancePercentage -Value {
            $this._stackSetFailureTolerancePercentage
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._stackSetFailureTolerancePercentage = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StackSetMaxConcurrencyCount -Value {
            $this._stackSetMaxConcurrencyCount
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._stackSetMaxConcurrencyCount = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StackSetMaxConcurrencyPercentage -Value {
            $this._stackSetMaxConcurrencyPercentage
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._stackSetMaxConcurrencyPercentage = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StackSetOperationType -Value {
            $this._stackSetOperationType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._stackSetOperationType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StackSetRegions -Value {
            $this._stackSetRegions
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._stackSetRegions = @($value)
        }
    }

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

Write-Verbose "Importing class 'ServiceCatalogServiceActionDefinitionParameter'"

class ServiceCatalogServiceActionDefinitionParameter : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSServiceCatalogServiceActionDefinitionParameter'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-serviceaction-definitionparameter.html'

    hidden [object] $_key
    hidden [object] $_value

    [string] $Key
    [string] $Value

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

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

Write-Verbose "Importing class 'ServiceCatalogCloudFormationProductProvisioningArtifactProperties'"

class ServiceCatalogCloudFormationProductProvisioningArtifactProperties : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSServiceCatalogCloudFormationProductProvisioningArtifactProperties'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationproduct-provisioningartifactproperties.html'

    hidden [object] $_description
    hidden [object] $_disableTemplateValidation
    hidden [VSJson] $_info
    hidden [object] $_name

    [string] $Description
    [bool] $DisableTemplateValidation
    [VSJson] $Info
    [string] $Name

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this._description
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._description = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DisableTemplateValidation -Value {
            $this._disableTemplateValidation
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._disableTemplateValidation = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Info -Value {
            $this._info
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._info = [VSJson]::Transform($value)
            Write-Debug $this._info
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this._name
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._name = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ServiceCatalogPortfolioShare'"

class ServiceCatalogPortfolioShare : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSServiceCatalogPortfolioShare'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioshare.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::ServiceCatalog::PortfolioShare'
    [string] $AccountId
    [string] $AcceptLanguage
    [string] $PortfolioId
    [bool] $ShareTagOptions
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'ServiceCatalogServiceActionAssociation'"

class ServiceCatalogServiceActionAssociation : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSServiceCatalogServiceActionAssociation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-serviceactionassociation.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::ServiceCatalog::ServiceActionAssociation'
    [string] $ProductId
    [string] $ProvisioningArtifactId
    [string] $ServiceActionId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'ServiceCatalogResourceUpdateConstraint'"

class ServiceCatalogResourceUpdateConstraint : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSServiceCatalogResourceUpdateConstraint'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-resourceupdateconstraint.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::ServiceCatalog::ResourceUpdateConstraint'
    [string] $Description
    [string] $AcceptLanguage
    [string] $TagUpdateOnProvisionedProduct
    [string] $PortfolioId
    [string] $ProductId
    [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 AcceptLanguage -Value {
            $this.Properties['AcceptLanguage']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AcceptLanguage'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TagUpdateOnProvisionedProduct -Value {
            $this.Properties['TagUpdateOnProvisionedProduct']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TagUpdateOnProvisionedProduct'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PortfolioId -Value {
            $this.Properties['PortfolioId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PortfolioId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProductId -Value {
            $this.Properties['ProductId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProductId'] = 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
        }
    }

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

Write-Verbose "Importing class 'ServiceCatalogTagOption'"

class ServiceCatalogTagOption : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSServiceCatalogTagOption'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoption.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::ServiceCatalog::TagOption'
    [bool] $Active
    [string] $Value
    [string] $Key
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'ServiceCatalogCloudFormationProduct'"

class ServiceCatalogCloudFormationProduct : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSServiceCatalogCloudFormationProduct'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationproduct.html'

    hidden [string[]] $_attributes = @('ProductName','ProvisioningArtifactIds','ProvisioningArtifactNames')
    hidden [object] $_condition

    [string] $Type = 'AWS::ServiceCatalog::CloudFormationProduct'
    [bool] $ReplaceProvisioningArtifacts
    [string] $Owner
    [string] $SupportDescription
    [string] $Description
    [string] $Distributor
    [string] $SupportEmail
    [string] $AcceptLanguage
    [string] $SupportUrl
    [VSTag[]] $Tags
    [string] $Name
    [ServiceCatalogCloudFormationProductProvisioningArtifactProperties[]] $ProvisioningArtifactParameters
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReplaceProvisioningArtifacts -Value {
            $this.Properties['ReplaceProvisioningArtifacts']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ReplaceProvisioningArtifacts'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Owner -Value {
            $this.Properties['Owner']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Owner'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SupportDescription -Value {
            $this.Properties['SupportDescription']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SupportDescription'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $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 Distributor -Value {
            $this.Properties['Distributor']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Distributor'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SupportEmail -Value {
            $this.Properties['SupportEmail']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SupportEmail'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AcceptLanguage -Value {
            $this.Properties['AcceptLanguage']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AcceptLanguage'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SupportUrl -Value {
            $this.Properties['SupportUrl']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SupportUrl'] = 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 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 ProvisioningArtifactParameters -Value {
            $this.Properties['ProvisioningArtifactParameters']
        } -SecondValue {
            param([ValidateType(([ServiceCatalogCloudFormationProductProvisioningArtifactProperties], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['ProvisioningArtifactParameters'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'ServiceCatalogPortfolioProductAssociation'"

class ServiceCatalogPortfolioProductAssociation : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSServiceCatalogPortfolioProductAssociation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioproductassociation.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::ServiceCatalog::PortfolioProductAssociation'
    [string] $SourcePortfolioId
    [string] $AcceptLanguage
    [string] $PortfolioId
    [string] $ProductId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'ServiceCatalogAcceptedPortfolioShare'"

class ServiceCatalogAcceptedPortfolioShare : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSServiceCatalogAcceptedPortfolioShare'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-acceptedportfolioshare.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::ServiceCatalog::AcceptedPortfolioShare'
    [string] $AcceptLanguage
    [string] $PortfolioId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'ServiceCatalogStackSetConstraint'"

class ServiceCatalogStackSetConstraint : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSServiceCatalogStackSetConstraint'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-stacksetconstraint.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::ServiceCatalog::StackSetConstraint'
    [string] $Description
    [string] $StackInstanceControl
    [string] $AcceptLanguage
    [string] $PortfolioId
    [string] $ProductId
    [string[]] $RegionList
    [string] $AdminRole
    [string[]] $AccountList
    [string] $ExecutionRole
    [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 StackInstanceControl -Value {
            $this.Properties['StackInstanceControl']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['StackInstanceControl'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AcceptLanguage -Value {
            $this.Properties['AcceptLanguage']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AcceptLanguage'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PortfolioId -Value {
            $this.Properties['PortfolioId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PortfolioId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProductId -Value {
            $this.Properties['ProductId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProductId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RegionList -Value {
            $this.Properties['RegionList']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['RegionList'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AdminRole -Value {
            $this.Properties['AdminRole']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AdminRole'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AccountList -Value {
            $this.Properties['AccountList']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['AccountList'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExecutionRole -Value {
            $this.Properties['ExecutionRole']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ExecutionRole'] = 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
        }
    }

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

Write-Verbose "Importing class 'ServiceCatalogServiceAction'"

class ServiceCatalogServiceAction : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSServiceCatalogServiceAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-serviceaction.html'

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

    [string] $Type = 'AWS::ServiceCatalog::ServiceAction'
    [string] $AcceptLanguage
    [string] $Name
    [string] $DefinitionType
    [ServiceCatalogServiceActionDefinitionParameter[]] $Definition
    [string] $Description
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'ServiceCatalogTagOptionAssociation'"

class ServiceCatalogTagOptionAssociation : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSServiceCatalogTagOptionAssociation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-tagoptionassociation.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::ServiceCatalog::TagOptionAssociation'
    [string] $TagOptionId
    [string] $ResourceId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'ServiceCatalogLaunchTemplateConstraint'"

class ServiceCatalogLaunchTemplateConstraint : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSServiceCatalogLaunchTemplateConstraint'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchtemplateconstraint.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::ServiceCatalog::LaunchTemplateConstraint'
    [string] $Description
    [string] $AcceptLanguage
    [string] $PortfolioId
    [string] $ProductId
    [string] $Rules
    [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 AcceptLanguage -Value {
            $this.Properties['AcceptLanguage']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AcceptLanguage'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PortfolioId -Value {
            $this.Properties['PortfolioId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PortfolioId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProductId -Value {
            $this.Properties['ProductId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProductId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Rules -Value {
            $this.Properties['Rules']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Rules'] = 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
        }
    }

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

Write-Verbose "Importing class 'ServiceCatalogPortfolioPrincipalAssociation'"

class ServiceCatalogPortfolioPrincipalAssociation : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSServiceCatalogPortfolioPrincipalAssociation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolioprincipalassociation.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::ServiceCatalog::PortfolioPrincipalAssociation'
    [string] $PrincipalARN
    [string] $AcceptLanguage
    [string] $PortfolioId
    [string] $PrincipalType
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'ServiceCatalogLaunchRoleConstraint'"

class ServiceCatalogLaunchRoleConstraint : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSServiceCatalogLaunchRoleConstraint'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchroleconstraint.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::ServiceCatalog::LaunchRoleConstraint'
    [string] $Description
    [string] $LocalRoleName
    [string] $AcceptLanguage
    [string] $PortfolioId
    [string] $ProductId
    [string] $RoleArn
    [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 LocalRoleName -Value {
            $this.Properties['LocalRoleName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LocalRoleName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AcceptLanguage -Value {
            $this.Properties['AcceptLanguage']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AcceptLanguage'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PortfolioId -Value {
            $this.Properties['PortfolioId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PortfolioId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProductId -Value {
            $this.Properties['ProductId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProductId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleArn -Value {
            $this.Properties['RoleArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RoleArn'] = 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
        }
    }

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

Write-Verbose "Importing class 'ServiceCatalogCloudFormationProvisionedProduct'"

class ServiceCatalogCloudFormationProvisionedProduct : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSServiceCatalogCloudFormationProvisionedProduct'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-cloudformationprovisionedproduct.html'

    hidden [string[]] $_attributes = @('ProvisionedProductId','RecordId','CloudformationStackArn')
    hidden [object] $_condition

    [string] $Type = 'AWS::ServiceCatalog::CloudFormationProvisionedProduct'
    [string] $AcceptLanguage
    [string[]] $NotificationArns
    [string] $PathId
    [string] $PathName
    [string] $ProductId
    [string] $ProductName
    [string] $ProvisionedProductName
    [string] $ProvisioningArtifactId
    [string] $ProvisioningArtifactName
    [ServiceCatalogCloudFormationProvisionedProductProvisioningParameter[]] $ProvisioningParameters
    [ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences] $ProvisioningPreferences
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name AcceptLanguage -Value {
            $this.Properties['AcceptLanguage']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AcceptLanguage'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $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 PathId -Value {
            $this.Properties['PathId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PathId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PathName -Value {
            $this.Properties['PathName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PathName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProductId -Value {
            $this.Properties['ProductId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProductId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProductName -Value {
            $this.Properties['ProductName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProductName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProvisionedProductName -Value {
            $this.Properties['ProvisionedProductName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProvisionedProductName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProvisioningArtifactId -Value {
            $this.Properties['ProvisioningArtifactId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProvisioningArtifactId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProvisioningArtifactName -Value {
            $this.Properties['ProvisioningArtifactName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProvisioningArtifactName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProvisioningParameters -Value {
            $this.Properties['ProvisioningParameters']
        } -SecondValue {
            param([ValidateType(([ServiceCatalogCloudFormationProvisionedProductProvisioningParameter], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['ProvisioningParameters'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProvisioningPreferences -Value {
            $this.Properties['ProvisioningPreferences']
        } -SecondValue {
            param([ValidateType(([ServiceCatalogCloudFormationProvisionedProductProvisioningPreferences], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProvisioningPreferences'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'ServiceCatalogPortfolio'"

class ServiceCatalogPortfolio : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSServiceCatalogPortfolio'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-portfolio.html'

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

    [string] $Type = 'AWS::ServiceCatalog::Portfolio'
    [string] $ProviderName
    [string] $Description
    [string] $DisplayName
    [string] $AcceptLanguage
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProviderName -Value {
            $this.Properties['ProviderName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProviderName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $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 DisplayName -Value {
            $this.Properties['DisplayName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DisplayName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AcceptLanguage -Value {
            $this.Properties['AcceptLanguage']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AcceptLanguage'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'ServiceCatalogLaunchNotificationConstraint'"

class ServiceCatalogLaunchNotificationConstraint : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSServiceCatalogLaunchNotificationConstraint'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-launchnotificationconstraint.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::ServiceCatalog::LaunchNotificationConstraint'
    [string] $Description
    [string[]] $NotificationArns
    [string] $AcceptLanguage
    [string] $PortfolioId
    [string] $ProductId
    [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 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 AcceptLanguage -Value {
            $this.Properties['AcceptLanguage']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AcceptLanguage'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PortfolioId -Value {
            $this.Properties['PortfolioId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PortfolioId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProductId -Value {
            $this.Properties['ProductId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProductId'] = 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
        }
    }

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