VaporShell.IoT1Click.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 'IoT1ClickProjectDeviceTemplate'"

class IoT1ClickProjectDeviceTemplate : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoT1ClickProjectDeviceTemplate'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot1click-project-devicetemplate.html'

    hidden [object] $_deviceType
    hidden [VSJson] $_callbackOverrides

    [string] $DeviceType
    [VSJson] $CallbackOverrides

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeviceType -Value {
            $this._deviceType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._deviceType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CallbackOverrides -Value {
            $this._callbackOverrides
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._callbackOverrides = [VSJson]::Transform($value)
        }
    }

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

Write-Verbose "Importing class 'IoT1ClickProjectPlacementTemplate'"

class IoT1ClickProjectPlacementTemplate : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoT1ClickProjectPlacementTemplate'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot1click-project-placementtemplate.html'

    hidden [VSJson] $_deviceTemplates
    hidden [VSJson] $_defaultAttributes

    [VSJson] $DeviceTemplates
    [VSJson] $DefaultAttributes

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeviceTemplates -Value {
            $this._deviceTemplates
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._deviceTemplates = [VSJson]::Transform($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DefaultAttributes -Value {
            $this._defaultAttributes
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._defaultAttributes = [VSJson]::Transform($value)
        }
    }

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

Write-Verbose "Importing class 'IoT1ClickProject'"

class IoT1ClickProject : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoT1ClickProject'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-project.html'

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

    [string] $Type = 'AWS::IoT1Click::Project'
    [string] $Description
    [IoT1ClickProjectPlacementTemplate] $PlacementTemplate
    [string] $ProjectName
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoT1ClickPlacement'"

class IoT1ClickPlacement : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoT1ClickPlacement'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-placement.html'

    hidden [string[]] $_attributes = @('PlacementName','ProjectName')
    hidden [object] $_condition

    [string] $Type = 'AWS::IoT1Click::Placement'
    [string] $PlacementName
    [string] $ProjectName
    [VSJson] $AssociatedDevices
    [VSJson] $Attributes
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name PlacementName -Value {
            $this.Properties['PlacementName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PlacementName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProjectName -Value {
            $this.Properties['ProjectName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProjectName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AssociatedDevices -Value {
            $this.Properties['AssociatedDevices']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['AssociatedDevices'] = [VSJson]::Transform($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Attributes -Value {
            $this.Properties['Attributes']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['Attributes'] = [VSJson]::Transform($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'IoT1ClickDevice'"

class IoT1ClickDevice : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoT1ClickDevice'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot1click-device.html'

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

    [string] $Type = 'AWS::IoT1Click::Device'
    [string] $DeviceId
    [bool] $Enabled
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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