VaporShell.IoTWireless.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 'IoTWirelessWirelessDeviceAbpV11'"

class IoTWirelessWirelessDeviceAbpV11 : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessWirelessDeviceAbpV11'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-abpv11.html'

    hidden [object] $_devAddr
    hidden [object] $_sessionKeys

    [string] $DevAddr
    [IoTWirelessWirelessDeviceSessionKeysAbpV11] $SessionKeys

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

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

Write-Verbose "Importing class 'IoTWirelessTaskDefinitionUpdateWirelessGatewayTaskCreate'"

class IoTWirelessTaskDefinitionUpdateWirelessGatewayTaskCreate : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessTaskDefinitionUpdateWirelessGatewayTaskCreate'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-updatewirelessgatewaytaskcreate.html'

    hidden [object] $_updateDataSource
    hidden [object] $_updateDataRole
    hidden [object] $_loRaWAN

    [string] $UpdateDataSource
    [string] $UpdateDataRole
    [IoTWirelessTaskDefinitionLoRaWANUpdateGatewayTaskCreate] $LoRaWAN

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

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

Write-Verbose "Importing class 'IoTWirelessWirelessDeviceLoRaWANDevice'"

class IoTWirelessWirelessDeviceLoRaWANDevice : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessWirelessDeviceLoRaWANDevice'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-lorawandevice.html'

    hidden [object] $_devEui
    hidden [object] $_deviceProfileId
    hidden [object] $_serviceProfileId
    hidden [object] $_otaaV11
    hidden [object] $_otaaV10x
    hidden [object] $_abpV11
    hidden [object] $_abpV10x

    [string] $DevEui
    [string] $DeviceProfileId
    [string] $ServiceProfileId
    [IoTWirelessWirelessDeviceOtaaV11] $OtaaV11
    [IoTWirelessWirelessDeviceOtaaV10x] $OtaaV10x
    [IoTWirelessWirelessDeviceAbpV11] $AbpV11
    [IoTWirelessWirelessDeviceAbpV10x] $AbpV10x

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DevEui -Value {
            $this._devEui
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._devEui = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeviceProfileId -Value {
            $this._deviceProfileId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._deviceProfileId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServiceProfileId -Value {
            $this._serviceProfileId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serviceProfileId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OtaaV11 -Value {
            $this._otaaV11
        } -SecondValue {
            param([ValidateType(([IoTWirelessWirelessDeviceOtaaV11], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._otaaV11 = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OtaaV10x -Value {
            $this._otaaV10x
        } -SecondValue {
            param([ValidateType(([IoTWirelessWirelessDeviceOtaaV10x], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._otaaV10x = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AbpV11 -Value {
            $this._abpV11
        } -SecondValue {
            param([ValidateType(([IoTWirelessWirelessDeviceAbpV11], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._abpV11 = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AbpV10x -Value {
            $this._abpV10x
        } -SecondValue {
            param([ValidateType(([IoTWirelessWirelessDeviceAbpV10x], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._abpV10x = $value
        }
    }

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

Write-Verbose "Importing class 'IoTWirelessMulticastGroupLoRaWAN'"

class IoTWirelessMulticastGroupLoRaWAN : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessMulticastGroupLoRaWAN'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-multicastgroup-lorawan.html'

    hidden [object] $_rfRegion
    hidden [object] $_dlClass
    hidden [object] $_numberOfDevicesRequested
    hidden [object] $_numberOfDevicesInGroup

    [string] $RfRegion
    [string] $DlClass
    [int] $NumberOfDevicesRequested
    [int] $NumberOfDevicesInGroup

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name RfRegion -Value {
            $this._rfRegion
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._rfRegion = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DlClass -Value {
            $this._dlClass
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dlClass = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NumberOfDevicesRequested -Value {
            $this._numberOfDevicesRequested
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._numberOfDevicesRequested = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NumberOfDevicesInGroup -Value {
            $this._numberOfDevicesInGroup
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._numberOfDevicesInGroup = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTWirelessWirelessDeviceSessionKeysAbpV11'"

class IoTWirelessWirelessDeviceSessionKeysAbpV11 : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessWirelessDeviceSessionKeysAbpV11'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-sessionkeysabpv11.html'

    hidden [object] $_fNwkSIntKey
    hidden [object] $_sNwkSIntKey
    hidden [object] $_nwkSEncKey
    hidden [object] $_appSKey

    [string] $FNwkSIntKey
    [string] $SNwkSIntKey
    [string] $NwkSEncKey
    [string] $AppSKey

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name FNwkSIntKey -Value {
            $this._fNwkSIntKey
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._fNwkSIntKey = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SNwkSIntKey -Value {
            $this._sNwkSIntKey
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sNwkSIntKey = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NwkSEncKey -Value {
            $this._nwkSEncKey
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._nwkSEncKey = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AppSKey -Value {
            $this._appSKey
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._appSKey = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTWirelessDeviceProfileLoRaWANDeviceProfile'"

class IoTWirelessDeviceProfileLoRaWANDeviceProfile : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessDeviceProfileLoRaWANDeviceProfile'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-deviceprofile-lorawandeviceprofile.html'

    hidden [object] $_supportsClassB
    hidden [object] $_classBTimeout
    hidden [object] $_pingSlotPeriod
    hidden [object] $_pingSlotDr
    hidden [object] $_pingSlotFreq
    hidden [object] $_supportsClassC
    hidden [object] $_classCTimeout
    hidden [object] $_macVersion
    hidden [object] $_regParamsRevision
    hidden [object] $_maxEirp
    hidden [object] $_maxDutyCycle
    hidden [object] $_supportsJoin
    hidden [object] $_rfRegion
    hidden [object] $_supports32BitFCnt

    [bool] $SupportsClassB
    [int] $ClassBTimeout
    [int] $PingSlotPeriod
    [int] $PingSlotDr
    [int] $PingSlotFreq
    [bool] $SupportsClassC
    [int] $ClassCTimeout
    [string] $MacVersion
    [string] $RegParamsRevision
    [int] $MaxEirp
    [int] $MaxDutyCycle
    [bool] $SupportsJoin
    [string] $RfRegion
    [bool] $Supports32BitFCnt

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SupportsClassB -Value {
            $this._supportsClassB
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._supportsClassB = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ClassBTimeout -Value {
            $this._classBTimeout
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._classBTimeout = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PingSlotPeriod -Value {
            $this._pingSlotPeriod
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._pingSlotPeriod = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PingSlotDr -Value {
            $this._pingSlotDr
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._pingSlotDr = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PingSlotFreq -Value {
            $this._pingSlotFreq
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._pingSlotFreq = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SupportsClassC -Value {
            $this._supportsClassC
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._supportsClassC = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ClassCTimeout -Value {
            $this._classCTimeout
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._classCTimeout = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MacVersion -Value {
            $this._macVersion
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._macVersion = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RegParamsRevision -Value {
            $this._regParamsRevision
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._regParamsRevision = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxEirp -Value {
            $this._maxEirp
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._maxEirp = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxDutyCycle -Value {
            $this._maxDutyCycle
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._maxDutyCycle = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SupportsJoin -Value {
            $this._supportsJoin
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._supportsJoin = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RfRegion -Value {
            $this._rfRegion
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._rfRegion = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Supports32BitFCnt -Value {
            $this._supports32BitFCnt
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._supports32BitFCnt = $value
        }
    }

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

Write-Verbose "Importing class 'IoTWirelessTaskDefinitionLoRaWANUpdateGatewayTaskEntry'"

class IoTWirelessTaskDefinitionLoRaWANUpdateGatewayTaskEntry : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessTaskDefinitionLoRaWANUpdateGatewayTaskEntry'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawanupdategatewaytaskentry.html'

    hidden [object] $_currentVersion
    hidden [object] $_updateVersion

    [IoTWirelessTaskDefinitionLoRaWANGatewayVersion] $CurrentVersion
    [IoTWirelessTaskDefinitionLoRaWANGatewayVersion] $UpdateVersion

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CurrentVersion -Value {
            $this._currentVersion
        } -SecondValue {
            param([ValidateType(([IoTWirelessTaskDefinitionLoRaWANGatewayVersion], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._currentVersion = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UpdateVersion -Value {
            $this._updateVersion
        } -SecondValue {
            param([ValidateType(([IoTWirelessTaskDefinitionLoRaWANGatewayVersion], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._updateVersion = $value
        }
    }

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

Write-Verbose "Importing class 'IoTWirelessFuotaTaskLoRaWAN'"

class IoTWirelessFuotaTaskLoRaWAN : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessFuotaTaskLoRaWAN'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-fuotatask-lorawan.html'

    hidden [object] $_startTime
    hidden [object] $_rfRegion

    [string] $StartTime
    [string] $RfRegion

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

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

Write-Verbose "Importing class 'IoTWirelessTaskDefinitionLoRaWANGatewayVersion'"

class IoTWirelessTaskDefinitionLoRaWANGatewayVersion : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessTaskDefinitionLoRaWANGatewayVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawangatewayversion.html'

    hidden [object] $_packageVersion
    hidden [object] $_model
    hidden [object] $_station

    [string] $PackageVersion
    [string] $Model
    [string] $Station

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

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

Write-Verbose "Importing class 'IoTWirelessPartnerAccountSidewalkAccountInfo'"

class IoTWirelessPartnerAccountSidewalkAccountInfo : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessPartnerAccountSidewalkAccountInfo'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-partneraccount-sidewalkaccountinfo.html'

    hidden [object] $_appServerPrivateKey

    [string] $AppServerPrivateKey

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

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

Write-Verbose "Importing class 'IoTWirelessWirelessDeviceAbpV10x'"

class IoTWirelessWirelessDeviceAbpV10x : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessWirelessDeviceAbpV10x'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-abpv10x.html'

    hidden [object] $_devAddr
    hidden [object] $_sessionKeys

    [string] $DevAddr
    [IoTWirelessWirelessDeviceSessionKeysAbpV10x] $SessionKeys

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

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

Write-Verbose "Importing class 'IoTWirelessWirelessGatewayLoRaWANGateway'"

class IoTWirelessWirelessGatewayLoRaWANGateway : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessWirelessGatewayLoRaWANGateway'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessgateway-lorawangateway.html'

    hidden [object] $_gatewayEui
    hidden [object] $_rfRegion

    [string] $GatewayEui
    [string] $RfRegion

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

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

Write-Verbose "Importing class 'IoTWirelessTaskDefinitionLoRaWANUpdateGatewayTaskCreate'"

class IoTWirelessTaskDefinitionLoRaWANUpdateGatewayTaskCreate : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessTaskDefinitionLoRaWANUpdateGatewayTaskCreate'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-taskdefinition-lorawanupdategatewaytaskcreate.html'

    hidden [object] $_updateSignature
    hidden [object] $_sigKeyCrc
    hidden [object] $_currentVersion
    hidden [object] $_updateVersion

    [string] $UpdateSignature
    [int] $SigKeyCrc
    [IoTWirelessTaskDefinitionLoRaWANGatewayVersion] $CurrentVersion
    [IoTWirelessTaskDefinitionLoRaWANGatewayVersion] $UpdateVersion

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name UpdateSignature -Value {
            $this._updateSignature
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._updateSignature = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SigKeyCrc -Value {
            $this._sigKeyCrc
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sigKeyCrc = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CurrentVersion -Value {
            $this._currentVersion
        } -SecondValue {
            param([ValidateType(([IoTWirelessTaskDefinitionLoRaWANGatewayVersion], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._currentVersion = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UpdateVersion -Value {
            $this._updateVersion
        } -SecondValue {
            param([ValidateType(([IoTWirelessTaskDefinitionLoRaWANGatewayVersion], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._updateVersion = $value
        }
    }

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

Write-Verbose "Importing class 'IoTWirelessWirelessDeviceOtaaV11'"

class IoTWirelessWirelessDeviceOtaaV11 : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessWirelessDeviceOtaaV11'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-otaav11.html'

    hidden [object] $_appKey
    hidden [object] $_nwkKey
    hidden [object] $_joinEui

    [string] $AppKey
    [string] $NwkKey
    [string] $JoinEui

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

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

Write-Verbose "Importing class 'IoTWirelessWirelessDeviceSessionKeysAbpV10x'"

class IoTWirelessWirelessDeviceSessionKeysAbpV10x : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessWirelessDeviceSessionKeysAbpV10x'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-sessionkeysabpv10x.html'

    hidden [object] $_nwkSKey
    hidden [object] $_appSKey

    [string] $NwkSKey
    [string] $AppSKey

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

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

Write-Verbose "Importing class 'IoTWirelessServiceProfileLoRaWANServiceProfile'"

class IoTWirelessServiceProfileLoRaWANServiceProfile : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessServiceProfileLoRaWANServiceProfile'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-serviceprofile-lorawanserviceprofile.html'

    hidden [object] $_ulRate
    hidden [object] $_ulBucketSize
    hidden [object] $_ulRatePolicy
    hidden [object] $_dlRate
    hidden [object] $_dlBucketSize
    hidden [object] $_dlRatePolicy
    hidden [object] $_addGwMetadata
    hidden [object] $_devStatusReqFreq
    hidden [object] $_reportDevStatusBattery
    hidden [object] $_reportDevStatusMargin
    hidden [object] $_drMin
    hidden [object] $_drMax
    hidden [object] $_channelMask
    hidden [object] $_prAllowed
    hidden [object] $_hrAllowed
    hidden [object] $_raAllowed
    hidden [object] $_nwkGeoLoc
    hidden [object] $_targetPer
    hidden [object] $_minGwDiversity

    [int] $UlRate
    [int] $UlBucketSize
    [string] $UlRatePolicy
    [int] $DlRate
    [int] $DlBucketSize
    [string] $DlRatePolicy
    [bool] $AddGwMetadata
    [int] $DevStatusReqFreq
    [bool] $ReportDevStatusBattery
    [bool] $ReportDevStatusMargin
    [int] $DrMin
    [int] $DrMax
    [string] $ChannelMask
    [bool] $PrAllowed
    [bool] $HrAllowed
    [bool] $RaAllowed
    [bool] $NwkGeoLoc
    [int] $TargetPer
    [int] $MinGwDiversity

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name UlRate -Value {
            $this._ulRate
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ulRate = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UlBucketSize -Value {
            $this._ulBucketSize
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ulBucketSize = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UlRatePolicy -Value {
            $this._ulRatePolicy
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ulRatePolicy = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DlRate -Value {
            $this._dlRate
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dlRate = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DlBucketSize -Value {
            $this._dlBucketSize
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dlBucketSize = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DlRatePolicy -Value {
            $this._dlRatePolicy
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dlRatePolicy = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AddGwMetadata -Value {
            $this._addGwMetadata
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._addGwMetadata = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DevStatusReqFreq -Value {
            $this._devStatusReqFreq
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._devStatusReqFreq = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReportDevStatusBattery -Value {
            $this._reportDevStatusBattery
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._reportDevStatusBattery = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReportDevStatusMargin -Value {
            $this._reportDevStatusMargin
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._reportDevStatusMargin = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DrMin -Value {
            $this._drMin
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._drMin = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DrMax -Value {
            $this._drMax
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._drMax = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ChannelMask -Value {
            $this._channelMask
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._channelMask = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PrAllowed -Value {
            $this._prAllowed
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._prAllowed = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HrAllowed -Value {
            $this._hrAllowed
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._hrAllowed = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RaAllowed -Value {
            $this._raAllowed
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._raAllowed = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NwkGeoLoc -Value {
            $this._nwkGeoLoc
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._nwkGeoLoc = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetPer -Value {
            $this._targetPer
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._targetPer = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MinGwDiversity -Value {
            $this._minGwDiversity
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._minGwDiversity = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTWirelessWirelessDeviceOtaaV10x'"

class IoTWirelessWirelessDeviceOtaaV10x : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessWirelessDeviceOtaaV10x'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-wirelessdevice-otaav10x.html'

    hidden [object] $_appKey
    hidden [object] $_appEui

    [string] $AppKey
    [string] $AppEui

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

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

Write-Verbose "Importing class 'IoTWirelessPartnerAccountSidewalkUpdateAccount'"

class IoTWirelessPartnerAccountSidewalkUpdateAccount : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTWirelessPartnerAccountSidewalkUpdateAccount'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotwireless-partneraccount-sidewalkupdateaccount.html'

    hidden [object] $_appServerPrivateKey

    [string] $AppServerPrivateKey

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

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

Write-Verbose "Importing class 'IoTWirelessServiceProfile'"

class IoTWirelessServiceProfile : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTWirelessServiceProfile'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-serviceprofile.html'

    hidden [string[]] $_attributes = @('LoRaWAN.UlRate','LoRaWAN.UlBucketSize','LoRaWAN.UlRatePolicy','LoRaWAN.DlRate','LoRaWAN.DlBucketSize','LoRaWAN.DlRatePolicy','LoRaWAN.DevStatusReqFreq','LoRaWAN.ReportDevStatusBattery','LoRaWAN.ReportDevStatusMargin','LoRaWAN.DrMin','LoRaWAN.DrMax','LoRaWAN.ChannelMask','LoRaWAN.PrAllowed','LoRaWAN.HrAllowed','LoRaWAN.RaAllowed','LoRaWAN.NwkGeoLoc','LoRaWAN.TargetPer','LoRaWAN.MinGwDiversity','Arn','Id')
    hidden [object] $_condition

    [string] $Type = 'AWS::IoTWireless::ServiceProfile'
    [string] $Name
    [IoTWirelessServiceProfileLoRaWANServiceProfile] $LoRaWAN
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTWirelessWirelessDevice'"

class IoTWirelessWirelessDevice : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTWirelessWirelessDevice'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessdevice.html'

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

    [string] $Type = 'AWS::IoTWireless::WirelessDevice'
    [string] $WirelessDeviceType
    [string] $Name
    [string] $Description
    [string] $DestinationName
    [IoTWirelessWirelessDeviceLoRaWANDevice] $LoRaWAN
    [VSTag[]] $Tags
    [string] $ThingArn
    [string] $LastUplinkReceivedAt
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTWirelessDeviceProfile'"

class IoTWirelessDeviceProfile : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTWirelessDeviceProfile'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-deviceprofile.html'

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

    [string] $Type = 'AWS::IoTWireless::DeviceProfile'
    [string] $Name
    [IoTWirelessDeviceProfileLoRaWANDeviceProfile] $LoRaWAN
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTWirelessMulticastGroup'"

class IoTWirelessMulticastGroup : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTWirelessMulticastGroup'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-multicastgroup.html'

    hidden [string[]] $_attributes = @('LoRaWAN.NumberOfDevicesRequested','LoRaWAN.NumberOfDevicesInGroup','Arn','Id','Status')
    hidden [object] $_condition

    [string] $Type = 'AWS::IoTWireless::MulticastGroup'
    [string] $Name
    [string] $Description
    [IoTWirelessMulticastGroupLoRaWAN] $LoRaWAN
    [VSTag[]] $Tags
    [string] $AssociateWirelessDevice
    [string] $DisassociateWirelessDevice
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTWirelessWirelessGateway'"

class IoTWirelessWirelessGateway : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTWirelessWirelessGateway'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-wirelessgateway.html'

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

    [string] $Type = 'AWS::IoTWireless::WirelessGateway'
    [string] $Name
    [string] $Description
    [VSTag[]] $Tags
    [IoTWirelessWirelessGatewayLoRaWANGateway] $LoRaWAN
    [string] $ThingArn
    [string] $LastUplinkReceivedAt
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTWirelessFuotaTask'"

class IoTWirelessFuotaTask : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTWirelessFuotaTask'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-fuotatask.html'

    hidden [string[]] $_attributes = @('LoRaWAN.StartTime','Arn','Id','FuotaTaskStatus')
    hidden [object] $_condition

    [string] $Type = 'AWS::IoTWireless::FuotaTask'
    [string] $Name
    [string] $Description
    [IoTWirelessFuotaTaskLoRaWAN] $LoRaWAN
    [string] $FirmwareUpdateImage
    [string] $FirmwareUpdateRole
    [VSTag[]] $Tags
    [string] $AssociateWirelessDevice
    [string] $DisassociateWirelessDevice
    [string] $AssociateMulticastGroup
    [string] $DisassociateMulticastGroup
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTWirelessDestination'"

class IoTWirelessDestination : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTWirelessDestination'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-destination.html'

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

    [string] $Type = 'AWS::IoTWireless::Destination'
    [string] $Name
    [string] $Expression
    [string] $ExpressionType
    [string] $Description
    [VSTag[]] $Tags
    [string] $RoleArn
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTWirelessPartnerAccount'"

class IoTWirelessPartnerAccount : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTWirelessPartnerAccount'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-partneraccount.html'

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

    [string] $Type = 'AWS::IoTWireless::PartnerAccount'
    [IoTWirelessPartnerAccountSidewalkAccountInfo] $Sidewalk
    [string] $PartnerAccountId
    [string] $PartnerType
    [bool] $AccountLinked
    [IoTWirelessPartnerAccountSidewalkUpdateAccount] $SidewalkUpdate
    [string] $Fingerprint
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTWirelessTaskDefinition'"

class IoTWirelessTaskDefinition : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTWirelessTaskDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotwireless-taskdefinition.html'

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

    [string] $Type = 'AWS::IoTWireless::TaskDefinition'
    [string] $Name
    [bool] $AutoCreateTasks
    [IoTWirelessTaskDefinitionUpdateWirelessGatewayTaskCreate] $Update
    [IoTWirelessTaskDefinitionLoRaWANUpdateGatewayTaskEntry] $LoRaWANUpdateGatewayTaskEntry
    [string] $TaskDefinitionType
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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