VaporShell.NimbleStudio.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 'NimbleStudioStudioComponentLicenseServiceConfiguration'"

class NimbleStudioStudioComponentLicenseServiceConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSNimbleStudioStudioComponentLicenseServiceConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-licenseserviceconfiguration.html'

    hidden [object] $_endpoint

    [string] $Endpoint

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

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

Write-Verbose "Importing class 'NimbleStudioStudioComponentScriptParameterKeyValue'"

class NimbleStudioStudioComponentScriptParameterKeyValue : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSNimbleStudioStudioComponentScriptParameterKeyValue'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-scriptparameterkeyvalue.html'

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

    [string] $Value
    [string] $Key

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

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

Write-Verbose "Importing class 'NimbleStudioStudioComponentActiveDirectoryConfiguration'"

class NimbleStudioStudioComponentActiveDirectoryConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSNimbleStudioStudioComponentActiveDirectoryConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-activedirectoryconfiguration.html'

    hidden [object] $_directoryId
    hidden [object] $_organizationalUnitDistinguishedName
    hidden [object] $_computerAttributes

    [string] $DirectoryId
    [string] $OrganizationalUnitDistinguishedName
    [NimbleStudioStudioComponentActiveDirectoryComputerAttribute[]] $ComputerAttributes

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

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

Write-Verbose "Importing class 'NimbleStudioStudioComponentActiveDirectoryComputerAttribute'"

class NimbleStudioStudioComponentActiveDirectoryComputerAttribute : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSNimbleStudioStudioComponentActiveDirectoryComputerAttribute'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-activedirectorycomputerattribute.html'

    hidden [object] $_value
    hidden [object] $_name

    [string] $Value
    [string] $Name

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

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

Write-Verbose "Importing class 'NimbleStudioLaunchProfileStreamConfigurationSessionStorage'"

class NimbleStudioLaunchProfileStreamConfigurationSessionStorage : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSNimbleStudioLaunchProfileStreamConfigurationSessionStorage'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-launchprofile-streamconfigurationsessionstorage.html'

    hidden [object] $_root
    hidden [object] $_mode

    [NimbleStudioLaunchProfileStreamingSessionStorageRoot] $Root
    [string[]] $Mode

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Root -Value {
            $this._root
        } -SecondValue {
            param([ValidateType(([NimbleStudioLaunchProfileStreamingSessionStorageRoot], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._root = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Mode -Value {
            $this._mode
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._mode = @($value)
        }
    }

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

Write-Verbose "Importing class 'NimbleStudioStudioComponentComputeFarmConfiguration'"

class NimbleStudioStudioComponentComputeFarmConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSNimbleStudioStudioComponentComputeFarmConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-computefarmconfiguration.html'

    hidden [object] $_activeDirectoryUser
    hidden [object] $_endpoint

    [string] $ActiveDirectoryUser
    [string] $Endpoint

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

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

Write-Verbose "Importing class 'NimbleStudioStudioComponentSharedFileSystemConfiguration'"

class NimbleStudioStudioComponentSharedFileSystemConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSNimbleStudioStudioComponentSharedFileSystemConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-sharedfilesystemconfiguration.html'

    hidden [object] $_endpoint
    hidden [object] $_fileSystemId
    hidden [object] $_shareName
    hidden [object] $_windowsMountDrive
    hidden [object] $_linuxMountPoint

    [string] $Endpoint
    [string] $FileSystemId
    [string] $ShareName
    [string] $WindowsMountDrive
    [string] $LinuxMountPoint

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Endpoint -Value {
            $this._endpoint
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._endpoint = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FileSystemId -Value {
            $this._fileSystemId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._fileSystemId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ShareName -Value {
            $this._shareName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._shareName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name WindowsMountDrive -Value {
            $this._windowsMountDrive
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._windowsMountDrive = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LinuxMountPoint -Value {
            $this._linuxMountPoint
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._linuxMountPoint = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'NimbleStudioLaunchProfileStreamingSessionStorageRoot'"

class NimbleStudioLaunchProfileStreamingSessionStorageRoot : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSNimbleStudioLaunchProfileStreamingSessionStorageRoot'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-launchprofile-streamingsessionstorageroot.html'

    hidden [object] $_linux
    hidden [object] $_windows

    [string] $Linux
    [string] $Windows

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

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

Write-Verbose "Importing class 'NimbleStudioLaunchProfileStreamConfiguration'"

class NimbleStudioLaunchProfileStreamConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSNimbleStudioLaunchProfileStreamConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-launchprofile-streamconfiguration.html'

    hidden [object] $_clipboardMode
    hidden [object] $_ec2InstanceTypes
    hidden [object] $_maxSessionLengthInMinutes
    hidden [object] $_streamingImageIds
    hidden [object] $_maxStoppedSessionLengthInMinutes
    hidden [object] $_sessionStorage

    [string] $ClipboardMode
    [string[]] $Ec2InstanceTypes
    [double] $MaxSessionLengthInMinutes
    [string[]] $StreamingImageIds
    [double] $MaxStoppedSessionLengthInMinutes
    [NimbleStudioLaunchProfileStreamConfigurationSessionStorage] $SessionStorage

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ClipboardMode -Value {
            $this._clipboardMode
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._clipboardMode = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Ec2InstanceTypes -Value {
            $this._ec2InstanceTypes
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._ec2InstanceTypes = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxSessionLengthInMinutes -Value {
            $this._maxSessionLengthInMinutes
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._maxSessionLengthInMinutes = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StreamingImageIds -Value {
            $this._streamingImageIds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._streamingImageIds = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxStoppedSessionLengthInMinutes -Value {
            $this._maxStoppedSessionLengthInMinutes
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._maxStoppedSessionLengthInMinutes = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SessionStorage -Value {
            $this._sessionStorage
        } -SecondValue {
            param([ValidateType(([NimbleStudioLaunchProfileStreamConfigurationSessionStorage], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sessionStorage = $value
        }
    }

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

Write-Verbose "Importing class 'NimbleStudioStudioStudioEncryptionConfiguration'"

class NimbleStudioStudioStudioEncryptionConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSNimbleStudioStudioStudioEncryptionConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studio-studioencryptionconfiguration.html'

    hidden [object] $_keyType
    hidden [object] $_keyArn

    [string] $KeyType
    [string] $KeyArn

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

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

Write-Verbose "Importing class 'NimbleStudioStudioComponentStudioComponentConfiguration'"

class NimbleStudioStudioComponentStudioComponentConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSNimbleStudioStudioComponentStudioComponentConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-studiocomponentconfiguration.html'

    hidden [object] $_licenseServiceConfiguration
    hidden [object] $_computeFarmConfiguration
    hidden [object] $_activeDirectoryConfiguration
    hidden [object] $_sharedFileSystemConfiguration

    [NimbleStudioStudioComponentLicenseServiceConfiguration] $LicenseServiceConfiguration
    [NimbleStudioStudioComponentComputeFarmConfiguration] $ComputeFarmConfiguration
    [NimbleStudioStudioComponentActiveDirectoryConfiguration] $ActiveDirectoryConfiguration
    [NimbleStudioStudioComponentSharedFileSystemConfiguration] $SharedFileSystemConfiguration

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name LicenseServiceConfiguration -Value {
            $this._licenseServiceConfiguration
        } -SecondValue {
            param([ValidateType(([NimbleStudioStudioComponentLicenseServiceConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._licenseServiceConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ComputeFarmConfiguration -Value {
            $this._computeFarmConfiguration
        } -SecondValue {
            param([ValidateType(([NimbleStudioStudioComponentComputeFarmConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._computeFarmConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ActiveDirectoryConfiguration -Value {
            $this._activeDirectoryConfiguration
        } -SecondValue {
            param([ValidateType(([NimbleStudioStudioComponentActiveDirectoryConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._activeDirectoryConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SharedFileSystemConfiguration -Value {
            $this._sharedFileSystemConfiguration
        } -SecondValue {
            param([ValidateType(([NimbleStudioStudioComponentSharedFileSystemConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sharedFileSystemConfiguration = $value
        }
    }

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

Write-Verbose "Importing class 'NimbleStudioStudioComponentStudioComponentInitializationScript'"

class NimbleStudioStudioComponentStudioComponentInitializationScript : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSNimbleStudioStudioComponentStudioComponentInitializationScript'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-nimblestudio-studiocomponent-studiocomponentinitializationscript.html'

    hidden [object] $_script
    hidden [object] $_launchProfileProtocolVersion
    hidden [object] $_platform
    hidden [object] $_runContext

    [string] $Script
    [string] $LaunchProfileProtocolVersion
    [string] $Platform
    [string] $RunContext

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Script -Value {
            $this._script
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._script = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LaunchProfileProtocolVersion -Value {
            $this._launchProfileProtocolVersion
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._launchProfileProtocolVersion = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Platform -Value {
            $this._platform
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._platform = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RunContext -Value {
            $this._runContext
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._runContext = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'NimbleStudioStreamingImage'"

class NimbleStudioStreamingImage : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSNimbleStudioStreamingImage'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-nimblestudio-streamingimage.html'

    hidden [string[]] $_attributes = @('EulaIds','Owner','Platform','StreamingImageId')
    hidden [object] $_condition

    [string] $Type = 'AWS::NimbleStudio::StreamingImage'
    [string] $Description
    [string] $Ec2ImageId
    [string] $Name
    [string] $StudioId
    [string] $Tags
    [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 Ec2ImageId -Value {
            $this.Properties['Ec2ImageId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Ec2ImageId'] = 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 StudioId -Value {
            $this.Properties['StudioId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['StudioId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Tags'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'NimbleStudioLaunchProfile'"

class NimbleStudioLaunchProfile : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSNimbleStudioLaunchProfile'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-nimblestudio-launchprofile.html'

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

    [string] $Type = 'AWS::NimbleStudio::LaunchProfile'
    [string] $Description
    [string[]] $Ec2SubnetIds
    [string[]] $LaunchProfileProtocolVersions
    [string] $Name
    [NimbleStudioLaunchProfileStreamConfiguration] $StreamConfiguration
    [string[]] $StudioComponentIds
    [string] $StudioId
    [string] $Tags
    [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 Ec2SubnetIds -Value {
            $this.Properties['Ec2SubnetIds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Ec2SubnetIds'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LaunchProfileProtocolVersions -Value {
            $this.Properties['LaunchProfileProtocolVersions']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['LaunchProfileProtocolVersions'] = @($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 StreamConfiguration -Value {
            $this.Properties['StreamConfiguration']
        } -SecondValue {
            param([ValidateType(([NimbleStudioLaunchProfileStreamConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['StreamConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StudioComponentIds -Value {
            $this.Properties['StudioComponentIds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['StudioComponentIds'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StudioId -Value {
            $this.Properties['StudioId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['StudioId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Tags'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'NimbleStudioStudioComponent'"

class NimbleStudioStudioComponent : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSNimbleStudioStudioComponent'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-nimblestudio-studiocomponent.html'

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

    [string] $Type = 'AWS::NimbleStudio::StudioComponent'
    [NimbleStudioStudioComponentStudioComponentConfiguration] $Configuration
    [string] $Description
    [string[]] $Ec2SecurityGroupIds
    [NimbleStudioStudioComponentStudioComponentInitializationScript[]] $InitializationScripts
    [string] $Name
    [NimbleStudioStudioComponentScriptParameterKeyValue[]] $ScriptParameters
    [string] $StudioId
    [string] $Subtype
    [string] $Tags
    [string] $StudioComponentType
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Configuration -Value {
            $this.Properties['Configuration']
        } -SecondValue {
            param([ValidateType(([NimbleStudioStudioComponentStudioComponentConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Configuration'] = $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 Ec2SecurityGroupIds -Value {
            $this.Properties['Ec2SecurityGroupIds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Ec2SecurityGroupIds'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InitializationScripts -Value {
            $this.Properties['InitializationScripts']
        } -SecondValue {
            param([ValidateType(([NimbleStudioStudioComponentStudioComponentInitializationScript], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['InitializationScripts'] = $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 ScriptParameters -Value {
            $this.Properties['ScriptParameters']
        } -SecondValue {
            param([ValidateType(([NimbleStudioStudioComponentScriptParameterKeyValue], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['ScriptParameters'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StudioId -Value {
            $this.Properties['StudioId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['StudioId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Subtype -Value {
            $this.Properties['Subtype']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Subtype'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Tags'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StudioComponentType -Value {
            $this.Properties['StudioComponentType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['StudioComponentType'] = 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
        }
    }

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

Write-Verbose "Importing class 'NimbleStudioStudio'"

class NimbleStudioStudio : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSNimbleStudioStudio'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-nimblestudio-studio.html'

    hidden [string[]] $_attributes = @('HomeRegion','SsoClientId','StudioId','StudioUrl')
    hidden [object] $_condition

    [string] $Type = 'AWS::NimbleStudio::Studio'
    [string] $AdminRoleArn
    [string] $DisplayName
    [NimbleStudioStudioStudioEncryptionConfiguration] $StudioEncryptionConfiguration
    [string] $StudioName
    [string] $Tags
    [string] $UserRoleArn
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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