VaporShell.IoTEvents.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 'IoTEventsDetectorModelSetTimer'"

class IoTEventsDetectorModelSetTimer : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelSetTimer'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-settimer.html'

    hidden [object] $_seconds
    hidden [object] $_timerName
    hidden [object] $_durationExpression

    [int] $Seconds
    [string] $TimerName
    [string] $DurationExpression

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Seconds -Value {
            $this._seconds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._seconds = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TimerName -Value {
            $this._timerName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._timerName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DurationExpression -Value {
            $this._durationExpression
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._durationExpression = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTEventsDetectorModelResetTimer'"

class IoTEventsDetectorModelResetTimer : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelResetTimer'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-resettimer.html'

    hidden [object] $_timerName

    [string] $TimerName

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

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

Write-Verbose "Importing class 'IoTEventsDetectorModelIotEvents'"

class IoTEventsDetectorModelIotEvents : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelIotEvents'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iotevents.html'

    hidden [object] $_inputName
    hidden [object] $_payload

    [string] $InputName
    [IoTEventsDetectorModelPayload] $Payload

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

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

Write-Verbose "Importing class 'IoTEventsDetectorModelTransitionEvent'"

class IoTEventsDetectorModelTransitionEvent : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelTransitionEvent'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-transitionevent.html'

    hidden [object] $_condition
    hidden [object] $_actions
    hidden [object] $_nextState
    hidden [object] $_eventName

    [string] $Condition
    [IoTEventsDetectorModelAction[]] $Actions
    [string] $NextState
    [string] $EventName

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._condition = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Actions -Value {
            $this._actions
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelAction], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._actions = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NextState -Value {
            $this._nextState
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._nextState = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EventName -Value {
            $this._eventName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._eventName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTEventsDetectorModelIotSiteWise'"

class IoTEventsDetectorModelIotSiteWise : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelIotSiteWise'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iotsitewise.html'

    hidden [object] $_entryId
    hidden [object] $_propertyAlias
    hidden [object] $_propertyValue
    hidden [object] $_assetId
    hidden [object] $_propertyId

    [string] $EntryId
    [string] $PropertyAlias
    [IoTEventsDetectorModelAssetPropertyValue] $PropertyValue
    [string] $AssetId
    [string] $PropertyId

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name EntryId -Value {
            $this._entryId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._entryId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PropertyAlias -Value {
            $this._propertyAlias
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._propertyAlias = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PropertyValue -Value {
            $this._propertyValue
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelAssetPropertyValue], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._propertyValue = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AssetId -Value {
            $this._assetId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._assetId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PropertyId -Value {
            $this._propertyId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._propertyId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTEventsDetectorModelDynamoDB'"

class IoTEventsDetectorModelDynamoDB : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelDynamoDB'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodb.html'

    hidden [object] $_tableName
    hidden [object] $_payloadField
    hidden [object] $_rangeKeyField
    hidden [object] $_hashKeyField
    hidden [object] $_rangeKeyValue
    hidden [object] $_rangeKeyType
    hidden [object] $_hashKeyType
    hidden [object] $_hashKeyValue
    hidden [object] $_payload
    hidden [object] $_operation

    [string] $TableName
    [string] $PayloadField
    [string] $RangeKeyField
    [string] $HashKeyField
    [string] $RangeKeyValue
    [string] $RangeKeyType
    [string] $HashKeyType
    [string] $HashKeyValue
    [IoTEventsDetectorModelPayload] $Payload
    [string] $Operation

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name TableName -Value {
            $this._tableName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._tableName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PayloadField -Value {
            $this._payloadField
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._payloadField = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RangeKeyField -Value {
            $this._rangeKeyField
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._rangeKeyField = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HashKeyField -Value {
            $this._hashKeyField
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._hashKeyField = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RangeKeyValue -Value {
            $this._rangeKeyValue
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._rangeKeyValue = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RangeKeyType -Value {
            $this._rangeKeyType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._rangeKeyType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HashKeyType -Value {
            $this._hashKeyType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._hashKeyType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HashKeyValue -Value {
            $this._hashKeyValue
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._hashKeyValue = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Payload -Value {
            $this._payload
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelPayload], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._payload = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Operation -Value {
            $this._operation
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._operation = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTEventsDetectorModelFirehose'"

class IoTEventsDetectorModelFirehose : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelFirehose'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-firehose.html'

    hidden [object] $_deliveryStreamName
    hidden [object] $_payload
    hidden [object] $_separator

    [string] $DeliveryStreamName
    [IoTEventsDetectorModelPayload] $Payload
    [string] $Separator

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

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

Write-Verbose "Importing class 'IoTEventsDetectorModelClearTimer'"

class IoTEventsDetectorModelClearTimer : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelClearTimer'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-cleartimer.html'

    hidden [object] $_timerName

    [string] $TimerName

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

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

Write-Verbose "Importing class 'IoTEventsDetectorModelState'"

class IoTEventsDetectorModelState : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelState'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-state.html'

    hidden [object] $_onInput
    hidden [object] $_onExit
    hidden [object] $_stateName
    hidden [object] $_onEnter

    [IoTEventsDetectorModelOnInput] $OnInput
    [IoTEventsDetectorModelOnExit] $OnExit
    [string] $StateName
    [IoTEventsDetectorModelOnEnter] $OnEnter

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name OnInput -Value {
            $this._onInput
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelOnInput], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._onInput = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OnExit -Value {
            $this._onExit
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelOnExit], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._onExit = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StateName -Value {
            $this._stateName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._stateName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OnEnter -Value {
            $this._onEnter
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelOnEnter], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._onEnter = $value
        }
    }

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

Write-Verbose "Importing class 'IoTEventsDetectorModelEvent'"

class IoTEventsDetectorModelEvent : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelEvent'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-event.html'

    hidden [object] $_condition
    hidden [object] $_actions
    hidden [object] $_eventName

    [string] $Condition
    [IoTEventsDetectorModelAction[]] $Actions
    [string] $EventName

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

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

Write-Verbose "Importing class 'IoTEventsInputAttribute'"

class IoTEventsInputAttribute : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsInputAttribute'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-input-attribute.html'

    hidden [object] $_jsonPath

    [string] $JsonPath

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

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

Write-Verbose "Importing class 'IoTEventsDetectorModelSns'"

class IoTEventsDetectorModelSns : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelSns'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-sns.html'

    hidden [object] $_targetArn
    hidden [object] $_payload

    [string] $TargetArn
    [IoTEventsDetectorModelPayload] $Payload

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

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

Write-Verbose "Importing class 'IoTEventsDetectorModelOnExit'"

class IoTEventsDetectorModelOnExit : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelOnExit'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-onexit.html'

    hidden [object] $_events

    [IoTEventsDetectorModelEvent[]] $Events

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Events -Value {
            $this._events
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelEvent], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._events = $value
        }
    }

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

Write-Verbose "Importing class 'IoTEventsDetectorModelSqs'"

class IoTEventsDetectorModelSqs : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelSqs'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-sqs.html'

    hidden [object] $_useBase64
    hidden [object] $_payload
    hidden [object] $_queueUrl

    [bool] $UseBase64
    [IoTEventsDetectorModelPayload] $Payload
    [string] $QueueUrl

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name UseBase64 -Value {
            $this._useBase64
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._useBase64 = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Payload -Value {
            $this._payload
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelPayload], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._payload = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name QueueUrl -Value {
            $this._queueUrl
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._queueUrl = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTEventsDetectorModelDetectorModelDefinition'"

class IoTEventsDetectorModelDetectorModelDefinition : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelDetectorModelDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-detectormodeldefinition.html'

    hidden [object] $_states
    hidden [object] $_initialStateName

    [IoTEventsDetectorModelState[]] $States
    [string] $InitialStateName

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

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

Write-Verbose "Importing class 'IoTEventsDetectorModelIotTopicPublish'"

class IoTEventsDetectorModelIotTopicPublish : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelIotTopicPublish'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-iottopicpublish.html'

    hidden [object] $_mqttTopic
    hidden [object] $_payload

    [string] $MqttTopic
    [IoTEventsDetectorModelPayload] $Payload

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

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

Write-Verbose "Importing class 'IoTEventsDetectorModelAction'"

class IoTEventsDetectorModelAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-action.html'

    hidden [object] $_iotEvents
    hidden [object] $_firehose
    hidden [object] $_iotTopicPublish
    hidden [object] $_dynamoDB
    hidden [object] $_dynamoDBv2
    hidden [object] $_iotSiteWise
    hidden [object] $_resetTimer
    hidden [object] $_sqs
    hidden [object] $_sns
    hidden [object] $_setTimer
    hidden [object] $_clearTimer
    hidden [object] $_lambda
    hidden [object] $_setVariable

    [IoTEventsDetectorModelIotEvents] $IotEvents
    [IoTEventsDetectorModelFirehose] $Firehose
    [IoTEventsDetectorModelIotTopicPublish] $IotTopicPublish
    [IoTEventsDetectorModelDynamoDB] $DynamoDB
    [IoTEventsDetectorModelDynamoDBv2] $DynamoDBv2
    [IoTEventsDetectorModelIotSiteWise] $IotSiteWise
    [IoTEventsDetectorModelResetTimer] $ResetTimer
    [IoTEventsDetectorModelSqs] $Sqs
    [IoTEventsDetectorModelSns] $Sns
    [IoTEventsDetectorModelSetTimer] $SetTimer
    [IoTEventsDetectorModelClearTimer] $ClearTimer
    [IoTEventsDetectorModelLambda] $Lambda
    [IoTEventsDetectorModelSetVariable] $SetVariable

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name IotEvents -Value {
            $this._iotEvents
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelIotEvents], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iotEvents = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Firehose -Value {
            $this._firehose
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelFirehose], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._firehose = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IotTopicPublish -Value {
            $this._iotTopicPublish
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelIotTopicPublish], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iotTopicPublish = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DynamoDB -Value {
            $this._dynamoDB
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelDynamoDB], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dynamoDB = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DynamoDBv2 -Value {
            $this._dynamoDBv2
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelDynamoDBv2], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dynamoDBv2 = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IotSiteWise -Value {
            $this._iotSiteWise
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelIotSiteWise], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iotSiteWise = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResetTimer -Value {
            $this._resetTimer
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelResetTimer], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._resetTimer = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Sqs -Value {
            $this._sqs
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelSqs], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sqs = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Sns -Value {
            $this._sns
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelSns], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sns = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SetTimer -Value {
            $this._setTimer
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelSetTimer], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._setTimer = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ClearTimer -Value {
            $this._clearTimer
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelClearTimer], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._clearTimer = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Lambda -Value {
            $this._lambda
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelLambda], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._lambda = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SetVariable -Value {
            $this._setVariable
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelSetVariable], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._setVariable = $value
        }
    }

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

Write-Verbose "Importing class 'IoTEventsDetectorModelAssetPropertyTimestamp'"

class IoTEventsDetectorModelAssetPropertyTimestamp : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelAssetPropertyTimestamp'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertytimestamp.html'

    hidden [object] $_timeInSeconds
    hidden [object] $_offsetInNanos

    [string] $TimeInSeconds
    [string] $OffsetInNanos

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

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

Write-Verbose "Importing class 'IoTEventsDetectorModelDynamoDBv2'"

class IoTEventsDetectorModelDynamoDBv2 : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelDynamoDBv2'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-dynamodbv2.html'

    hidden [object] $_tableName
    hidden [object] $_payload

    [string] $TableName
    [IoTEventsDetectorModelPayload] $Payload

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

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

Write-Verbose "Importing class 'IoTEventsDetectorModelOnInput'"

class IoTEventsDetectorModelOnInput : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelOnInput'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-oninput.html'

    hidden [object] $_events
    hidden [object] $_transitionEvents

    [IoTEventsDetectorModelEvent[]] $Events
    [IoTEventsDetectorModelTransitionEvent[]] $TransitionEvents

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Events -Value {
            $this._events
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelEvent], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._events = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TransitionEvents -Value {
            $this._transitionEvents
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelTransitionEvent], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._transitionEvents = $value
        }
    }

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

Write-Verbose "Importing class 'IoTEventsDetectorModelAssetPropertyVariant'"

class IoTEventsDetectorModelAssetPropertyVariant : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelAssetPropertyVariant'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvariant.html'

    hidden [object] $_doubleValue
    hidden [object] $_integerValue
    hidden [object] $_booleanValue
    hidden [object] $_stringValue

    [string] $DoubleValue
    [string] $IntegerValue
    [string] $BooleanValue
    [string] $StringValue

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DoubleValue -Value {
            $this._doubleValue
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._doubleValue = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IntegerValue -Value {
            $this._integerValue
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._integerValue = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BooleanValue -Value {
            $this._booleanValue
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._booleanValue = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StringValue -Value {
            $this._stringValue
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._stringValue = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTEventsDetectorModelSetVariable'"

class IoTEventsDetectorModelSetVariable : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelSetVariable'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-setvariable.html'

    hidden [object] $_variableName
    hidden [object] $_value

    [string] $VariableName
    [string] $Value

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

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

Write-Verbose "Importing class 'IoTEventsDetectorModelPayload'"

class IoTEventsDetectorModelPayload : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelPayload'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-payload.html'

    hidden [object] $_contentExpression
    hidden [object] $_type

    [string] $ContentExpression
    [string] $Type

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

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

Write-Verbose "Importing class 'IoTEventsDetectorModelOnEnter'"

class IoTEventsDetectorModelOnEnter : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelOnEnter'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-onenter.html'

    hidden [object] $_events

    [IoTEventsDetectorModelEvent[]] $Events

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Events -Value {
            $this._events
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelEvent], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._events = $value
        }
    }

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

Write-Verbose "Importing class 'IoTEventsDetectorModelAssetPropertyValue'"

class IoTEventsDetectorModelAssetPropertyValue : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelAssetPropertyValue'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-assetpropertyvalue.html'

    hidden [object] $_quality
    hidden [object] $_value
    hidden [object] $_timestamp

    [string] $Quality
    [IoTEventsDetectorModelAssetPropertyVariant] $Value
    [IoTEventsDetectorModelAssetPropertyTimestamp] $Timestamp

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

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

Write-Verbose "Importing class 'IoTEventsInputInputDefinition'"

class IoTEventsInputInputDefinition : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsInputInputDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-input-inputdefinition.html'

    hidden [object] $_attributes

    [IoTEventsInputAttribute[]] $Attributes

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Attributes -Value {
            $this._attributes
        } -SecondValue {
            param([ValidateType(([IoTEventsInputAttribute], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._attributes = $value
        }
    }

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

Write-Verbose "Importing class 'IoTEventsDetectorModelLambda'"

class IoTEventsDetectorModelLambda : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsDetectorModelLambda'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-detectormodel-lambda.html'

    hidden [object] $_functionArn
    hidden [object] $_payload

    [string] $FunctionArn
    [IoTEventsDetectorModelPayload] $Payload

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

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

Write-Verbose "Importing class 'IoTEventsInput'"

class IoTEventsInput : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTEventsInput'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-input.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::IoTEvents::Input'
    [IoTEventsInputInputDefinition] $InputDefinition
    [string] $InputName
    [string] $InputDescription
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTEventsDetectorModel'"

class IoTEventsDetectorModel : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTEventsDetectorModel'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotevents-detectormodel.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::IoTEvents::DetectorModel'
    [IoTEventsDetectorModelDetectorModelDefinition] $DetectorModelDefinition
    [string] $EvaluationMethod
    [string] $DetectorModelName
    [string] $DetectorModelDescription
    [string] $Key
    [string] $RoleArn
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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