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 'LightsailContainerEnvironmentVariable'"

class LightsailContainerEnvironmentVariable : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailContainerEnvironmentVariable'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-environmentvariable.html'

    hidden [object] $_variable
    hidden [object] $_value

    [string] $Variable
    [string] $Value

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

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

Write-Verbose "Importing class 'LightsailContainerContainer'"

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

    hidden [object] $_containerName
    hidden [object] $_command
    hidden [object] $_environment
    hidden [object] $_image
    hidden [object] $_ports

    [string] $ContainerName
    [string[]] $Command
    [LightsailContainerEnvironmentVariable[]] $Environment
    [string] $Image
    [LightsailContainerPortInfo[]] $Ports

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContainerName -Value {
            $this._containerName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._containerName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Command -Value {
            $this._command
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._command = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Environment -Value {
            $this._environment
        } -SecondValue {
            param([ValidateType(([LightsailContainerEnvironmentVariable], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._environment = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Image -Value {
            $this._image
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._image = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Ports -Value {
            $this._ports
        } -SecondValue {
            param([ValidateType(([LightsailContainerPortInfo], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._ports = $value
        }
    }

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

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 'LightsailContainerPublicEndpoint'"

class LightsailContainerPublicEndpoint : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailContainerPublicEndpoint'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-publicendpoint.html'

    hidden [object] $_containerName
    hidden [object] $_containerPort
    hidden [object] $_healthCheckConfig

    [string] $ContainerName
    [int] $ContainerPort
    [LightsailContainerHealthCheckConfig] $HealthCheckConfig

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContainerName -Value {
            $this._containerName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._containerName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContainerPort -Value {
            $this._containerPort
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._containerPort = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HealthCheckConfig -Value {
            $this._healthCheckConfig
        } -SecondValue {
            param([ValidateType(([LightsailContainerHealthCheckConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._healthCheckConfig = $value
        }
    }

    LightsailContainerPublicEndpoint() : base() {}
    LightsailContainerPublicEndpoint([IDictionary] $props) : base($props) {}
    LightsailContainerPublicEndpoint([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 'LightsailDistributionCacheSettings'"

class LightsailDistributionCacheSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailDistributionCacheSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-cachesettings.html'

    hidden [object] $_allowedHTTPMethods
    hidden [object] $_cachedHTTPMethods
    hidden [object] $_defaultTTL
    hidden [object] $_maximumTTL
    hidden [object] $_minimumTTL
    hidden [object] $_forwardedCookies
    hidden [object] $_forwardedHeaders
    hidden [object] $_forwardedQueryStrings

    [string] $AllowedHTTPMethods
    [string] $CachedHTTPMethods
    [int] $DefaultTTL
    [int] $MaximumTTL
    [int] $MinimumTTL
    [LightsailDistributionCookieObject] $ForwardedCookies
    [LightsailDistributionHeaderObject] $ForwardedHeaders
    [LightsailDistributionQueryStringObject] $ForwardedQueryStrings

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name AllowedHTTPMethods -Value {
            $this._allowedHTTPMethods
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._allowedHTTPMethods = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CachedHTTPMethods -Value {
            $this._cachedHTTPMethods
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cachedHTTPMethods = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DefaultTTL -Value {
            $this._defaultTTL
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._defaultTTL = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaximumTTL -Value {
            $this._maximumTTL
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._maximumTTL = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MinimumTTL -Value {
            $this._minimumTTL
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._minimumTTL = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ForwardedCookies -Value {
            $this._forwardedCookies
        } -SecondValue {
            param([ValidateType(([LightsailDistributionCookieObject], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._forwardedCookies = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ForwardedHeaders -Value {
            $this._forwardedHeaders
        } -SecondValue {
            param([ValidateType(([LightsailDistributionHeaderObject], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._forwardedHeaders = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ForwardedQueryStrings -Value {
            $this._forwardedQueryStrings
        } -SecondValue {
            param([ValidateType(([LightsailDistributionQueryStringObject], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._forwardedQueryStrings = $value
        }
    }

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

Write-Verbose "Importing class 'LightsailBucketAccessRules'"

class LightsailBucketAccessRules : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailBucketAccessRules'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-bucket-accessrules.html'

    hidden [object] $_getObject
    hidden [object] $_allowPublicOverrides

    [string] $GetObject
    [bool] $AllowPublicOverrides

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

    LightsailBucketAccessRules() : base() {}
    LightsailBucketAccessRules([IDictionary] $props) : base($props) {}
    LightsailBucketAccessRules([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 'LightsailContainerPortInfo'"

class LightsailContainerPortInfo : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailContainerPortInfo'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-portinfo.html'

    hidden [object] $_port
    hidden [object] $_protocol

    [string] $Port
    [string] $Protocol

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

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

Write-Verbose "Importing class 'LightsailDistributionInputOrigin'"

class LightsailDistributionInputOrigin : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailDistributionInputOrigin'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-inputorigin.html'

    hidden [object] $_name
    hidden [object] $_protocolPolicy
    hidden [object] $_regionName

    [string] $Name
    [string] $ProtocolPolicy
    [string] $RegionName

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

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

Write-Verbose "Importing class 'LightsailDistributionQueryStringObject'"

class LightsailDistributionQueryStringObject : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailDistributionQueryStringObject'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-querystringobject.html'

    hidden [object] $_queryStringsAllowList
    hidden [object] $_option

    [string[]] $QueryStringsAllowList
    [bool] $Option

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name QueryStringsAllowList -Value {
            $this._queryStringsAllowList
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._queryStringsAllowList = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Option -Value {
            $this._option
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._option = $value
        }
    }

    LightsailDistributionQueryStringObject() : base() {}
    LightsailDistributionQueryStringObject([IDictionary] $props) : base($props) {}
    LightsailDistributionQueryStringObject([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 'LightsailContainerContainerServiceDeployment'"

class LightsailContainerContainerServiceDeployment : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailContainerContainerServiceDeployment'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-containerservicedeployment.html'

    hidden [object] $_containers
    hidden [object] $_publicEndpoint

    [LightsailContainerContainer[]] $Containers
    [LightsailContainerPublicEndpoint] $PublicEndpoint

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Containers -Value {
            $this._containers
        } -SecondValue {
            param([ValidateType(([LightsailContainerContainer], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._containers = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PublicEndpoint -Value {
            $this._publicEndpoint
        } -SecondValue {
            param([ValidateType(([LightsailContainerPublicEndpoint], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._publicEndpoint = $value
        }
    }

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

Write-Verbose "Importing class 'LightsailDistributionCacheBehavior'"

class LightsailDistributionCacheBehavior : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailDistributionCacheBehavior'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-cachebehavior.html'

    hidden [object] $_behavior

    [string] $Behavior

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

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

Write-Verbose "Importing class 'LightsailDistributionHeaderObject'"

class LightsailDistributionHeaderObject : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailDistributionHeaderObject'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-headerobject.html'

    hidden [object] $_headersAllowList
    hidden [object] $_option

    [string[]] $HeadersAllowList
    [string] $Option

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

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

Write-Verbose "Importing class 'LightsailDistributionCacheBehaviorPerPath'"

class LightsailDistributionCacheBehaviorPerPath : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailDistributionCacheBehaviorPerPath'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-cachebehaviorperpath.html'

    hidden [object] $_behavior
    hidden [object] $_path

    [string] $Behavior
    [string] $Path

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

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

Write-Verbose "Importing class 'LightsailContainerPublicDomainName'"

class LightsailContainerPublicDomainName : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailContainerPublicDomainName'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-publicdomainname.html'

    hidden [object] $_certificateName
    hidden [object] $_domainNames

    [string] $CertificateName
    [string[]] $DomainNames

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

    LightsailContainerPublicDomainName() : base() {}
    LightsailContainerPublicDomainName([IDictionary] $props) : base($props) {}
    LightsailContainerPublicDomainName([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 'LightsailDistributionCookieObject'"

class LightsailDistributionCookieObject : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailDistributionCookieObject'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-distribution-cookieobject.html'

    hidden [object] $_cookiesAllowList
    hidden [object] $_option

    [string[]] $CookiesAllowList
    [string] $Option

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

    LightsailDistributionCookieObject() : base() {}
    LightsailDistributionCookieObject([IDictionary] $props) : base($props) {}
    LightsailDistributionCookieObject([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 'LightsailContainerHealthCheckConfig'"

class LightsailContainerHealthCheckConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSLightsailContainerHealthCheckConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lightsail-container-healthcheckconfig.html'

    hidden [object] $_healthyThreshold
    hidden [object] $_intervalSeconds
    hidden [object] $_path
    hidden [object] $_successCodes
    hidden [object] $_timeoutSeconds
    hidden [object] $_unhealthyThreshold

    [int] $HealthyThreshold
    [int] $IntervalSeconds
    [string] $Path
    [string] $SuccessCodes
    [int] $TimeoutSeconds
    [int] $UnhealthyThreshold

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name HealthyThreshold -Value {
            $this._healthyThreshold
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._healthyThreshold = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IntervalSeconds -Value {
            $this._intervalSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._intervalSeconds = 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 SuccessCodes -Value {
            $this._successCodes
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._successCodes = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TimeoutSeconds -Value {
            $this._timeoutSeconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._timeoutSeconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UnhealthyThreshold -Value {
            $this._unhealthyThreshold
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._unhealthyThreshold = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

    LightsailContainerHealthCheckConfig() : base() {}
    LightsailContainerHealthCheckConfig([IDictionary] $props) : base($props) {}
    LightsailContainerHealthCheckConfig([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 'LightsailCertificate'"

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

    hidden [string[]] $_attributes = @('CertificateArn','Status')
    hidden [object] $_condition

    [string] $Type = 'AWS::Lightsail::Certificate'
    [string] $CertificateName
    [string] $DomainName
    [string[]] $SubjectAlternativeNames
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'LightsailLoadBalancer'"

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

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

    [string] $Type = 'AWS::Lightsail::LoadBalancer'
    [string] $LoadBalancerName
    [int] $InstancePort
    [string] $IpAddressType
    [string[]] $AttachedInstances
    [string] $HealthCheckPath
    [bool] $SessionStickinessEnabled
    [string] $SessionStickinessLBCookieDurationSeconds
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name LoadBalancerName -Value {
            $this.Properties['LoadBalancerName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LoadBalancerName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InstancePort -Value {
            $this.Properties['InstancePort']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['InstancePort'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IpAddressType -Value {
            $this.Properties['IpAddressType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['IpAddressType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AttachedInstances -Value {
            $this.Properties['AttachedInstances']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['AttachedInstances'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HealthCheckPath -Value {
            $this.Properties['HealthCheckPath']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['HealthCheckPath'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SessionStickinessEnabled -Value {
            $this.Properties['SessionStickinessEnabled']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SessionStickinessEnabled'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SessionStickinessLBCookieDurationSeconds -Value {
            $this.Properties['SessionStickinessLBCookieDurationSeconds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SessionStickinessLBCookieDurationSeconds'] = 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
        }
    }

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

Write-Verbose "Importing class 'LightsailDistribution'"

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

    hidden [string[]] $_attributes = @('DistributionArn','Status','AbleToUpdateBundle')
    hidden [object] $_condition

    [string] $Type = 'AWS::Lightsail::Distribution'
    [string] $DistributionName
    [string] $BundleId
    [string] $IpAddressType
    [LightsailDistributionCacheBehaviorPerPath[]] $CacheBehaviors
    [LightsailDistributionCacheSettings] $CacheBehaviorSettings
    [LightsailDistributionCacheBehavior] $DefaultCacheBehavior
    [LightsailDistributionInputOrigin] $Origin
    [bool] $IsEnabled
    [string] $CertificateName
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name DistributionName -Value {
            $this.Properties['DistributionName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DistributionName'] = 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 IpAddressType -Value {
            $this.Properties['IpAddressType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['IpAddressType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CacheBehaviors -Value {
            $this.Properties['CacheBehaviors']
        } -SecondValue {
            param([ValidateType(([LightsailDistributionCacheBehaviorPerPath], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['CacheBehaviors'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CacheBehaviorSettings -Value {
            $this.Properties['CacheBehaviorSettings']
        } -SecondValue {
            param([ValidateType(([LightsailDistributionCacheSettings], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CacheBehaviorSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DefaultCacheBehavior -Value {
            $this.Properties['DefaultCacheBehavior']
        } -SecondValue {
            param([ValidateType(([LightsailDistributionCacheBehavior], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DefaultCacheBehavior'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Origin -Value {
            $this.Properties['Origin']
        } -SecondValue {
            param([ValidateType(([LightsailDistributionInputOrigin], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Origin'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IsEnabled -Value {
            $this.Properties['IsEnabled']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['IsEnabled'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CertificateName -Value {
            $this.Properties['CertificateName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CertificateName'] = 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
        }
    }

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

Write-Verbose "Importing class 'LightsailBucket'"

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

    hidden [string[]] $_attributes = @('BucketArn','Url','AbleToUpdateBundle')
    hidden [object] $_condition

    [string] $Type = 'AWS::Lightsail::Bucket'
    [string] $BucketName
    [string] $BundleId
    [bool] $ObjectVersioning
    [LightsailBucketAccessRules] $AccessRules
    [string[]] $ResourcesReceivingAccess
    [string[]] $ReadOnlyAccessAccounts
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

    LightsailBucket() : base() {}
    LightsailBucket([IDictionary] $props) : base($props) {}
    LightsailBucket([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 'LightsailAlarm'"

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

    hidden [string[]] $_attributes = @('AlarmArn','State')
    hidden [object] $_condition

    [string] $Type = 'AWS::Lightsail::Alarm'
    [string] $AlarmName
    [string] $MonitoredResourceName
    [string] $MetricName
    [string] $ComparisonOperator
    [string[]] $ContactProtocols
    [int] $DatapointsToAlarm
    [int] $EvaluationPeriods
    [bool] $NotificationEnabled
    [string[]] $NotificationTriggers
    [double] $Threshold
    [string] $TreatMissingData
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name AlarmName -Value {
            $this.Properties['AlarmName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AlarmName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MonitoredResourceName -Value {
            $this.Properties['MonitoredResourceName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MonitoredResourceName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MetricName -Value {
            $this.Properties['MetricName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MetricName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ComparisonOperator -Value {
            $this.Properties['ComparisonOperator']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ComparisonOperator'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContactProtocols -Value {
            $this.Properties['ContactProtocols']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['ContactProtocols'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DatapointsToAlarm -Value {
            $this.Properties['DatapointsToAlarm']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DatapointsToAlarm'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EvaluationPeriods -Value {
            $this.Properties['EvaluationPeriods']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EvaluationPeriods'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NotificationEnabled -Value {
            $this.Properties['NotificationEnabled']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['NotificationEnabled'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NotificationTriggers -Value {
            $this.Properties['NotificationTriggers']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['NotificationTriggers'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Threshold -Value {
            $this.Properties['Threshold']
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Threshold'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TreatMissingData -Value {
            $this.Properties['TreatMissingData']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TreatMissingData'] = 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
        }
    }

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

Write-Verbose "Importing class 'LightsailLoadBalancerTlsCertificate'"

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

    hidden [string[]] $_attributes = @('LoadBalancerTlsCertificateArn','Status')
    hidden [object] $_condition

    [string] $Type = 'AWS::Lightsail::LoadBalancerTlsCertificate'
    [string] $LoadBalancerName
    [string] $CertificateName
    [string] $CertificateDomainName
    [string[]] $CertificateAlternativeNames
    [bool] $IsAttached
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

    LightsailLoadBalancerTlsCertificate() : base() {}
    LightsailLoadBalancerTlsCertificate([IDictionary] $props) : base($props) {}
    LightsailLoadBalancerTlsCertificate([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 'LightsailContainer'"

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

    hidden [string[]] $_attributes = @('ContainerArn','Url')
    hidden [object] $_condition

    [string] $Type = 'AWS::Lightsail::Container'
    [string] $ServiceName
    [string] $Power
    [int] $Scale
    [LightsailContainerPublicDomainName[]] $PublicDomainNames
    [LightsailContainerContainerServiceDeployment] $ContainerServiceDeployment
    [bool] $IsDisabled
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServiceName -Value {
            $this.Properties['ServiceName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ServiceName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Power -Value {
            $this.Properties['Power']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Power'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Scale -Value {
            $this.Properties['Scale']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Scale'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PublicDomainNames -Value {
            $this.Properties['PublicDomainNames']
        } -SecondValue {
            param([ValidateType(([LightsailContainerPublicDomainName], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['PublicDomainNames'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContainerServiceDeployment -Value {
            $this.Properties['ContainerServiceDeployment']
        } -SecondValue {
            param([ValidateType(([LightsailContainerContainerServiceDeployment], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ContainerServiceDeployment'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IsDisabled -Value {
            $this.Properties['IsDisabled']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['IsDisabled'] = $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
        }
    }

    LightsailContainer() : base() {}
    LightsailContainer([IDictionary] $props) : base($props) {}
    LightsailContainer([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) {}
}