VaporShell.Lightsail.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 'LightsailDiskAddOn'"

class LightsailDiskAddOn : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailDiskAddOn'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-addon.html'

    hidden [object] $_addOnType
    hidden [object] $_status
    hidden [object] $_autoSnapshotAddOnRequest

    [string] $AddOnType
    [string] $Status
    [LightsailDiskAutoSnapshotAddOn] $AutoSnapshotAddOnRequest

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

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

Write-Verbose "Importing class 'LightsailDatabaseRelationalDatabaseParameter'"

class LightsailDatabaseRelationalDatabaseParameter : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailDatabaseRelationalDatabaseParameter'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-database-relationaldatabaseparameter.html'

    hidden [object] $_allowedValues
    hidden [object] $_applyMethod
    hidden [object] $_applyType
    hidden [object] $_dataType
    hidden [object] $_description
    hidden [object] $_isModifiable
    hidden [object] $_parameterName
    hidden [object] $_parameterValue

    [string] $AllowedValues
    [string] $ApplyMethod
    [string] $ApplyType
    [string] $DataType
    [string] $Description
    [bool] $IsModifiable
    [string] $ParameterName
    [string] $ParameterValue

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name AllowedValues -Value {
            $this._allowedValues
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._allowedValues = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApplyMethod -Value {
            $this._applyMethod
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._applyMethod = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApplyType -Value {
            $this._applyType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._applyType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DataType -Value {
            $this._dataType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dataType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $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 IsModifiable -Value {
            $this._isModifiable
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._isModifiable = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ParameterName -Value {
            $this._parameterName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._parameterName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ParameterValue -Value {
            $this._parameterValue
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._parameterValue = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'LightsailInstanceMonthlyTransfer'"

class LightsailInstanceMonthlyTransfer : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailInstanceMonthlyTransfer'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-monthlytransfer.html'

    hidden [object] $_gbPerMonthAllocated

    [string] $GbPerMonthAllocated

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

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

Write-Verbose "Importing class 'LightsailInstancePort'"

class LightsailInstancePort : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailInstancePort'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-port.html'

    hidden [object] $_fromPort
    hidden [object] $_toPort
    hidden [object] $_protocol
    hidden [object] $_accessFrom
    hidden [object] $_accessType
    hidden [object] $_commonName
    hidden [object] $_accessDirection
    hidden [object] $_ipv6Cidrs
    hidden [object] $_cidrListAliases
    hidden [object] $_cidrs

    [int] $FromPort
    [int] $ToPort
    [string] $Protocol
    [string] $AccessFrom
    [string] $AccessType
    [string] $CommonName
    [string] $AccessDirection
    [string[]] $Ipv6Cidrs
    [string[]] $CidrListAliases
    [string[]] $Cidrs

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name FromPort -Value {
            $this._fromPort
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._fromPort = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ToPort -Value {
            $this._toPort
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._toPort = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Protocol -Value {
            $this._protocol
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._protocol = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AccessFrom -Value {
            $this._accessFrom
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._accessFrom = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AccessType -Value {
            $this._accessType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._accessType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CommonName -Value {
            $this._commonName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._commonName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AccessDirection -Value {
            $this._accessDirection
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._accessDirection = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Ipv6Cidrs -Value {
            $this._ipv6Cidrs
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._ipv6Cidrs = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CidrListAliases -Value {
            $this._cidrListAliases
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._cidrListAliases = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Cidrs -Value {
            $this._cidrs
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._cidrs = @($value)
        }
    }

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

Write-Verbose "Importing class 'LightsailInstanceAddOn'"

class LightsailInstanceAddOn : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailInstanceAddOn'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-addon.html'

    hidden [object] $_addOnType
    hidden [object] $_status
    hidden [object] $_autoSnapshotAddOnRequest

    [string] $AddOnType
    [string] $Status
    [LightsailInstanceAutoSnapshotAddOn] $AutoSnapshotAddOnRequest

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

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

Write-Verbose "Importing class 'LightsailInstanceAutoSnapshotAddOn'"

class LightsailInstanceAutoSnapshotAddOn : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailInstanceAutoSnapshotAddOn'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-autosnapshotaddon.html'

    hidden [object] $_snapshotTimeOfDay

    [string] $SnapshotTimeOfDay

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

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

Write-Verbose "Importing class 'LightsailDiskAutoSnapshotAddOn'"

class LightsailDiskAutoSnapshotAddOn : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailDiskAutoSnapshotAddOn'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-disk-autosnapshotaddon.html'

    hidden [object] $_snapshotTimeOfDay

    [string] $SnapshotTimeOfDay

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

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

Write-Verbose "Importing class 'LightsailInstanceDisk'"

class LightsailInstanceDisk : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailInstanceDisk'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-disk.html'

    hidden [object] $_diskName
    hidden [object] $_sizeInGb
    hidden [object] $_isSystemDisk
    hidden [object] $_iOPS
    hidden [object] $_path
    hidden [object] $_attachedTo
    hidden [object] $_attachmentState

    [string] $DiskName
    [string] $SizeInGb
    [bool] $IsSystemDisk
    [int] $IOPS
    [string] $Path
    [string] $AttachedTo
    [string] $AttachmentState

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DiskName -Value {
            $this._diskName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._diskName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SizeInGb -Value {
            $this._sizeInGb
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sizeInGb = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IsSystemDisk -Value {
            $this._isSystemDisk
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._isSystemDisk = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IOPS -Value {
            $this._iOPS
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iOPS = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Path -Value {
            $this._path
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._path = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AttachedTo -Value {
            $this._attachedTo
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._attachedTo = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AttachmentState -Value {
            $this._attachmentState
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._attachmentState = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'LightsailInstanceHardware'"

class LightsailInstanceHardware : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailInstanceHardware'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-hardware.html'

    hidden [object] $_cpuCount
    hidden [object] $_ramSizeInGb
    hidden [object] $_disks

    [int] $CpuCount
    [int] $RamSizeInGb
    [LightsailInstanceDisk[]] $Disks

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CpuCount -Value {
            $this._cpuCount
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cpuCount = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RamSizeInGb -Value {
            $this._ramSizeInGb
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ramSizeInGb = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Disks -Value {
            $this._disks
        } -SecondValue {
            param([ValidateType(([LightsailInstanceDisk], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._disks = $value
        }
    }

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

Write-Verbose "Importing class 'LightsailInstanceLocation'"

class LightsailInstanceLocation : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailInstanceLocation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-location.html'

    hidden [object] $_availabilityZone
    hidden [object] $_regionName

    [string] $AvailabilityZone
    [string] $RegionName

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

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

Write-Verbose "Importing class 'LightsailInstanceNetworking'"

class LightsailInstanceNetworking : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailInstanceNetworking'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-networking.html'

    hidden [object] $_ports
    hidden [object] $_monthlyTransfer

    [LightsailInstancePort[]] $Ports
    [LightsailInstanceMonthlyTransfer] $MonthlyTransfer

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Ports -Value {
            $this._ports
        } -SecondValue {
            param([ValidateType(([LightsailInstancePort], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._ports = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MonthlyTransfer -Value {
            $this._monthlyTransfer
        } -SecondValue {
            param([ValidateType(([LightsailInstanceMonthlyTransfer], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._monthlyTransfer = $value
        }
    }

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

Write-Verbose "Importing class 'LightsailInstanceState'"

class LightsailInstanceState : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailInstanceState'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-instance-state.html'

    hidden [object] $_code
    hidden [object] $_name

    [int] $Code
    [string] $Name

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

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

Write-Verbose "Importing class 'LightsailDatabase'"

class LightsailDatabase : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSLightsailDatabase'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-database.html'

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

    [string] $Type = 'AWS::Lightsail::Database'
    [string] $RelationalDatabaseName
    [string] $AvailabilityZone
    [string] $RelationalDatabaseBlueprintId
    [string] $RelationalDatabaseBundleId
    [string] $MasterDatabaseName
    [string] $MasterUsername
    [string] $MasterUserPassword
    [string] $PreferredBackupWindow
    [string] $PreferredMaintenanceWindow
    [bool] $PubliclyAccessible
    [string] $CaCertificateIdentifier
    [bool] $BackupRetention
    [bool] $RotateMasterUserPassword
    [LightsailDatabaseRelationalDatabaseParameter[]] $RelationalDatabaseParameters
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name RelationalDatabaseName -Value {
            $this.Properties['RelationalDatabaseName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RelationalDatabaseName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AvailabilityZone -Value {
            $this.Properties['AvailabilityZone']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AvailabilityZone'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RelationalDatabaseBlueprintId -Value {
            $this.Properties['RelationalDatabaseBlueprintId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RelationalDatabaseBlueprintId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RelationalDatabaseBundleId -Value {
            $this.Properties['RelationalDatabaseBundleId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RelationalDatabaseBundleId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MasterDatabaseName -Value {
            $this.Properties['MasterDatabaseName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MasterDatabaseName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MasterUsername -Value {
            $this.Properties['MasterUsername']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MasterUsername'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MasterUserPassword -Value {
            $this.Properties['MasterUserPassword']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MasterUserPassword'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PreferredBackupWindow -Value {
            $this.Properties['PreferredBackupWindow']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PreferredBackupWindow'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PreferredMaintenanceWindow -Value {
            $this.Properties['PreferredMaintenanceWindow']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PreferredMaintenanceWindow'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PubliclyAccessible -Value {
            $this.Properties['PubliclyAccessible']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PubliclyAccessible'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CaCertificateIdentifier -Value {
            $this.Properties['CaCertificateIdentifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CaCertificateIdentifier'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BackupRetention -Value {
            $this.Properties['BackupRetention']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BackupRetention'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RotateMasterUserPassword -Value {
            $this.Properties['RotateMasterUserPassword']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RotateMasterUserPassword'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RelationalDatabaseParameters -Value {
            $this.Properties['RelationalDatabaseParameters']
        } -SecondValue {
            param([ValidateType(([LightsailDatabaseRelationalDatabaseParameter], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['RelationalDatabaseParameters'] = $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
        }
    }

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

Write-Verbose "Importing class 'LightsailInstance'"

class LightsailInstance : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSLightsailInstance'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-instance.html'

    hidden [string[]] $_attributes = @('SupportCode','ResourceType','IsStaticIp','PrivateIpAddress','PublicIpAddress','Location.AvailabilityZone','Location.RegionName','Hardware.CpuCount','Hardware.RamSizeInGb','State.Code','State.Name','Networking.MonthlyTransfer.GbPerMonthAllocated','UserName','SshKeyName','InstanceArn')
    hidden [object] $_condition

    [string] $Type = 'AWS::Lightsail::Instance'
    [LightsailInstanceHardware] $Hardware
    [LightsailInstanceNetworking] $Networking
    [string] $InstanceName
    [string] $AvailabilityZone
    [string] $BundleId
    [string] $BlueprintId
    [LightsailInstanceAddOn[]] $AddOns
    [TransformUserData()] [UserData] $UserData
    [string] $KeyPairName
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Hardware -Value {
            $this.Properties['Hardware']
        } -SecondValue {
            param([ValidateType(([LightsailInstanceHardware], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Hardware'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Networking -Value {
            $this.Properties['Networking']
        } -SecondValue {
            param([ValidateType(([LightsailInstanceNetworking], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Networking'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InstanceName -Value {
            $this.Properties['InstanceName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['InstanceName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AvailabilityZone -Value {
            $this.Properties['AvailabilityZone']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AvailabilityZone'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BundleId -Value {
            $this.Properties['BundleId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BundleId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BlueprintId -Value {
            $this.Properties['BlueprintId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BlueprintId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AddOns -Value {
            $this.Properties['AddOns']
        } -SecondValue {
            param([ValidateType(([LightsailInstanceAddOn], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['AddOns'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UserData -Value {
            $this.Properties['UserData']
        } -SecondValue {
            param([TransformUserData()] [object] $value)
            $this.Properties['UserData'] = $value -as [UserData]
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KeyPairName -Value {
            $this.Properties['KeyPairName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['KeyPairName'] = 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
        }
    }

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

Write-Verbose "Importing class 'LightsailDisk'"

class LightsailDisk : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSLightsailDisk'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-disk.html'

    hidden [string[]] $_attributes = @('DiskArn','SupportCode','ResourceType','State','AttachmentState','Iops','IsAttached','Path','AttachedTo')
    hidden [object] $_condition

    [string] $Type = 'AWS::Lightsail::Disk'
    [string] $DiskName
    [string] $AvailabilityZone
    [VSTag[]] $Tags
    [LightsailDiskAddOn[]] $AddOns
    [int] $SizeInGb
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'LightsailStaticIp'"

class LightsailStaticIp : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSLightsailStaticIp'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lightsail-staticip.html'

    hidden [string[]] $_attributes = @('IsAttached','IpAddress','StaticIpArn')
    hidden [object] $_condition

    [string] $Type = 'AWS::Lightsail::StaticIp'
    [string] $StaticIpName
    [string] $AttachedTo
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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