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

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

    hidden [object] $_simpleRule

    [IoTEventsAlarmModelSimpleRule] $SimpleRule

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

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

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] $_durationExpression
    hidden [object] $_seconds
    hidden [object] $_timerName

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

    hidden [void] _addAccessors() {
        $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
            }
        }
        $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
            }
        }
    }

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

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

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

    [string] $OffsetInNanos
    [string] $TimeInSeconds

    hidden [void] _addAccessors() {
        $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
            }
        }
        $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
            }
        }
    }

    IoTEventsAlarmModelAssetPropertyTimestamp() : base() {}
    IoTEventsAlarmModelAssetPropertyTimestamp([IDictionary] $props) : base($props) {}
    IoTEventsAlarmModelAssetPropertyTimestamp([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 '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] $_actions
    hidden [object] $_condition
    hidden [object] $_eventName

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

    hidden [void] _addAccessors() {
        $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 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 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 'IoTEventsAlarmModelInitializationConfiguration'"

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

    hidden [object] $_disabledOnInitialization

    [bool] $DisabledOnInitialization

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

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

Write-Verbose "Importing class 'IoTEventsAlarmModelSns'"

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

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

    [IoTEventsAlarmModelPayload] $Payload
    [string] $TargetArn

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

    IoTEventsAlarmModelSns() : base() {}
    IoTEventsAlarmModelSns([IDictionary] $props) : base($props) {}
    IoTEventsAlarmModelSns([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] $_initialStateName
    hidden [object] $_states

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

    hidden [void] _addAccessors() {
        $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
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name States -Value {
            $this._states
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelState], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._states = $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 'IoTEventsAlarmModelAlarmCapabilities'"

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

    hidden [object] $_initializationConfiguration
    hidden [object] $_acknowledgeFlow

    [IoTEventsAlarmModelInitializationConfiguration] $InitializationConfiguration
    [IoTEventsAlarmModelAcknowledgeFlow] $AcknowledgeFlow

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name InitializationConfiguration -Value {
            $this._initializationConfiguration
        } -SecondValue {
            param([ValidateType(([IoTEventsAlarmModelInitializationConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._initializationConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AcknowledgeFlow -Value {
            $this._acknowledgeFlow
        } -SecondValue {
            param([ValidateType(([IoTEventsAlarmModelAcknowledgeFlow], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._acknowledgeFlow = $value
        }
    }

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

Write-Verbose "Importing class 'IoTEventsAlarmModelSqs'"

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

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

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

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Payload -Value {
            $this._payload
        } -SecondValue {
            param([ValidateType(([IoTEventsAlarmModelPayload], [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
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UseBase64 -Value {
            $this._useBase64
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._useBase64 = $value
        }
    }

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

Write-Verbose "Importing class 'IoTEventsAlarmModelAlarmAction'"

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

    hidden [object] $_dynamoDB
    hidden [object] $_dynamoDBv2
    hidden [object] $_firehose
    hidden [object] $_iotEvents
    hidden [object] $_iotSiteWise
    hidden [object] $_iotTopicPublish
    hidden [object] $_lambda
    hidden [object] $_sns
    hidden [object] $_sqs

    [IoTEventsAlarmModelDynamoDB] $DynamoDB
    [IoTEventsAlarmModelDynamoDBv2] $DynamoDBv2
    [IoTEventsAlarmModelFirehose] $Firehose
    [IoTEventsAlarmModelIotEvents] $IotEvents
    [IoTEventsAlarmModelIotSiteWise] $IotSiteWise
    [IoTEventsAlarmModelIotTopicPublish] $IotTopicPublish
    [IoTEventsAlarmModelLambda] $Lambda
    [IoTEventsAlarmModelSns] $Sns
    [IoTEventsAlarmModelSqs] $Sqs

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DynamoDB -Value {
            $this._dynamoDB
        } -SecondValue {
            param([ValidateType(([IoTEventsAlarmModelDynamoDB], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dynamoDB = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DynamoDBv2 -Value {
            $this._dynamoDBv2
        } -SecondValue {
            param([ValidateType(([IoTEventsAlarmModelDynamoDBv2], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dynamoDBv2 = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Firehose -Value {
            $this._firehose
        } -SecondValue {
            param([ValidateType(([IoTEventsAlarmModelFirehose], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._firehose = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IotEvents -Value {
            $this._iotEvents
        } -SecondValue {
            param([ValidateType(([IoTEventsAlarmModelIotEvents], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iotEvents = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IotSiteWise -Value {
            $this._iotSiteWise
        } -SecondValue {
            param([ValidateType(([IoTEventsAlarmModelIotSiteWise], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iotSiteWise = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IotTopicPublish -Value {
            $this._iotTopicPublish
        } -SecondValue {
            param([ValidateType(([IoTEventsAlarmModelIotTopicPublish], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iotTopicPublish = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Lambda -Value {
            $this._lambda
        } -SecondValue {
            param([ValidateType(([IoTEventsAlarmModelLambda], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._lambda = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Sns -Value {
            $this._sns
        } -SecondValue {
            param([ValidateType(([IoTEventsAlarmModelSns], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sns = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Sqs -Value {
            $this._sqs
        } -SecondValue {
            param([ValidateType(([IoTEventsAlarmModelSqs], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sqs = $value
        }
    }

    IoTEventsAlarmModelAlarmAction() : base() {}
    IoTEventsAlarmModelAlarmAction([IDictionary] $props) : base($props) {}
    IoTEventsAlarmModelAlarmAction([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] $_booleanValue
    hidden [object] $_doubleValue
    hidden [object] $_integerValue
    hidden [object] $_stringValue

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

    hidden [void] _addAccessors() {
        $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 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 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 'IoTEventsAlarmModelFirehose'"

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

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

    [string] $DeliveryStreamName
    [IoTEventsAlarmModelPayload] $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(([IoTEventsAlarmModelPayload], [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
            }
        }
    }

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

Write-Verbose "Importing class 'IoTEventsAlarmModelSimpleRule'"

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

    hidden [object] $_inputProperty
    hidden [object] $_comparisonOperator
    hidden [object] $_threshold

    [string] $InputProperty
    [string] $ComparisonOperator
    [string] $Threshold

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

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

Write-Verbose "Importing class 'IoTEventsAlarmModelAcknowledgeFlow'"

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

    hidden [object] $_enabled

    [bool] $Enabled

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

    IoTEventsAlarmModelAcknowledgeFlow() : base() {}
    IoTEventsAlarmModelAcknowledgeFlow([IDictionary] $props) : base($props) {}
    IoTEventsAlarmModelAcknowledgeFlow([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] $_value
    hidden [object] $_variableName

    [string] $Value
    [string] $VariableName

    hidden [void] _addAccessors() {
        $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
            }
        }
        $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
            }
        }
    }

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

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

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

    [string] $FunctionArn
    [IoTEventsAlarmModelPayload] $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(([IoTEventsAlarmModelPayload], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._payload = $value
        }
    }

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

Write-Verbose "Importing class 'IoTEventsAlarmModelAssetPropertyVariant'"

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

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

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

    hidden [void] _addAccessors() {
        $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 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 StringValue -Value {
            $this._stringValue
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._stringValue = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTEventsAlarmModelAlarmEventActions'"

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

    hidden [object] $_alarmActions

    [IoTEventsAlarmModelAlarmAction[]] $AlarmActions

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

    IoTEventsAlarmModelAlarmEventActions() : base() {}
    IoTEventsAlarmModelAlarmEventActions([IDictionary] $props) : base($props) {}
    IoTEventsAlarmModelAlarmEventActions([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 '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] $_actions
    hidden [object] $_condition
    hidden [object] $_eventName
    hidden [object] $_nextState

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

    hidden [void] _addAccessors() {
        $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 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 EventName -Value {
            $this._eventName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._eventName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $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
            }
        }
    }

    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] $_assetId
    hidden [object] $_entryId
    hidden [object] $_propertyAlias
    hidden [object] $_propertyId
    hidden [object] $_propertyValue

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

    hidden [void] _addAccessors() {
        $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 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 PropertyId -Value {
            $this._propertyId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._propertyId = 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
        }
    }

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

Write-Verbose "Importing class 'IoTEventsAlarmModelDynamoDBv2'"

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

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

    [IoTEventsAlarmModelPayload] $Payload
    [string] $TableName

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

    IoTEventsAlarmModelDynamoDBv2() : base() {}
    IoTEventsAlarmModelDynamoDBv2([IDictionary] $props) : base($props) {}
    IoTEventsAlarmModelDynamoDBv2([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] $_hashKeyField
    hidden [object] $_hashKeyType
    hidden [object] $_hashKeyValue
    hidden [object] $_operation
    hidden [object] $_payload
    hidden [object] $_payloadField
    hidden [object] $_rangeKeyField
    hidden [object] $_rangeKeyType
    hidden [object] $_rangeKeyValue
    hidden [object] $_tableName

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

    hidden [void] _addAccessors() {
        $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 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 Operation -Value {
            $this._operation
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._operation = 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 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 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 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 TableName -Value {
            $this._tableName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._tableName = 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 'IoTEventsAlarmModelIotTopicPublish'"

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

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

    [string] $MqttTopic
    [IoTEventsAlarmModelPayload] $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(([IoTEventsAlarmModelPayload], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._payload = $value
        }
    }

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

Write-Verbose "Importing class 'IoTEventsAlarmModelAssetPropertyValue'"

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

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

    [string] $Quality
    [IoTEventsAlarmModelAssetPropertyTimestamp] $Timestamp
    [IoTEventsAlarmModelAssetPropertyVariant] $Value

    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 Timestamp -Value {
            $this._timestamp
        } -SecondValue {
            param([ValidateType(([IoTEventsAlarmModelAssetPropertyTimestamp], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._timestamp = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Value -Value {
            $this._value
        } -SecondValue {
            param([ValidateType(([IoTEventsAlarmModelAssetPropertyVariant], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._value = $value
        }
    }

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

Write-Verbose "Importing class 'IoTEventsAlarmModelIotEvents'"

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

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

    [string] $InputName
    [IoTEventsAlarmModelPayload] $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(([IoTEventsAlarmModelPayload], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._payload = $value
        }
    }

    IoTEventsAlarmModelIotEvents() : base() {}
    IoTEventsAlarmModelIotEvents([IDictionary] $props) : base($props) {}
    IoTEventsAlarmModelIotEvents([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] $_onEnter
    hidden [object] $_onExit
    hidden [object] $_onInput
    hidden [object] $_stateName

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

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

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

Write-Verbose "Importing class 'IoTEventsAlarmModelPayload'"

class IoTEventsAlarmModelPayload : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTEventsAlarmModelPayload'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotevents-alarmmodel-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
            }
        }
    }

    IoTEventsAlarmModelPayload() : base() {}
    IoTEventsAlarmModelPayload([IDictionary] $props) : base($props) {}
    IoTEventsAlarmModelPayload([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] $_payload
    hidden [object] $_targetArn

    [IoTEventsDetectorModelPayload] $Payload
    [string] $TargetArn

    hidden [void] _addAccessors() {
        $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 TargetArn -Value {
            $this._targetArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._targetArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $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] $_payload
    hidden [object] $_queueUrl
    hidden [object] $_useBase64

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

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

    IoTEventsDetectorModelSqs() : base() {}
    IoTEventsDetectorModelSqs([IDictionary] $props) : base($props) {}
    IoTEventsDetectorModelSqs([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] $_clearTimer
    hidden [object] $_dynamoDB
    hidden [object] $_dynamoDBv2
    hidden [object] $_firehose
    hidden [object] $_iotEvents
    hidden [object] $_iotSiteWise
    hidden [object] $_iotTopicPublish
    hidden [object] $_lambda
    hidden [object] $_resetTimer
    hidden [object] $_setTimer
    hidden [object] $_setVariable
    hidden [object] $_sns
    hidden [object] $_sqs

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

    hidden [void] _addAccessors() {
        $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 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 Firehose -Value {
            $this._firehose
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelFirehose], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._firehose = $value
        }
        $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 IotSiteWise -Value {
            $this._iotSiteWise
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelIotSiteWise], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iotSiteWise = $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 Lambda -Value {
            $this._lambda
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelLambda], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._lambda = $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 SetTimer -Value {
            $this._setTimer
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelSetTimer], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._setTimer = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SetVariable -Value {
            $this._setVariable
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelSetVariable], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._setVariable = $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 Sqs -Value {
            $this._sqs
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelSqs], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sqs = $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] $_offsetInNanos
    hidden [object] $_timeInSeconds

    [string] $OffsetInNanos
    [string] $TimeInSeconds

    hidden [void] _addAccessors() {
        $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
            }
        }
        $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
            }
        }
    }

    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] $_payload
    hidden [object] $_tableName

    [IoTEventsDetectorModelPayload] $Payload
    [string] $TableName

    hidden [void] _addAccessors() {
        $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 TableName -Value {
            $this._tableName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._tableName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTEventsAlarmModelDynamoDB'"

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

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

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

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

    IoTEventsAlarmModelDynamoDB() : base() {}
    IoTEventsAlarmModelDynamoDB([IDictionary] $props) : base($props) {}
    IoTEventsAlarmModelDynamoDB([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] $_timestamp
    hidden [object] $_value

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

    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 Timestamp -Value {
            $this._timestamp
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelAssetPropertyTimestamp], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._timestamp = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Value -Value {
            $this._value
        } -SecondValue {
            param([ValidateType(([IoTEventsDetectorModelAssetPropertyVariant], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._value = $value
        }
    }

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

Write-Verbose "Importing class 'IoTEventsAlarmModelIotSiteWise'"

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

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

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

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

    IoTEventsAlarmModelIotSiteWise() : base() {}
    IoTEventsAlarmModelIotSiteWise([IDictionary] $props) : base($props) {}
    IoTEventsAlarmModelIotSiteWise([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] $InputDescription
    [string] $InputName
    [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 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 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 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 'IoTEventsAlarmModel'"

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

    hidden [object] $_condition

    [string] $Type = 'AWS::IoTEvents::AlarmModel'
    [string] $AlarmModelName
    [string] $AlarmModelDescription
    [string] $RoleArn
    [string] $Key
    [int] $Severity
    [IoTEventsAlarmModelAlarmRule] $AlarmRule
    [IoTEventsAlarmModelAlarmEventActions] $AlarmEventActions
    [IoTEventsAlarmModelAlarmCapabilities] $AlarmCapabilities
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name AlarmModelName -Value {
            $this.Properties['AlarmModelName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AlarmModelName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AlarmModelDescription -Value {
            $this.Properties['AlarmModelDescription']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AlarmModelDescription'] = 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 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 Severity -Value {
            $this.Properties['Severity']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Severity'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AlarmRule -Value {
            $this.Properties['AlarmRule']
        } -SecondValue {
            param([ValidateType(([IoTEventsAlarmModelAlarmRule], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AlarmRule'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AlarmEventActions -Value {
            $this.Properties['AlarmEventActions']
        } -SecondValue {
            param([ValidateType(([IoTEventsAlarmModelAlarmEventActions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AlarmEventActions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AlarmCapabilities -Value {
            $this.Properties['AlarmCapabilities']
        } -SecondValue {
            param([ValidateType(([IoTEventsAlarmModelAlarmCapabilities], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AlarmCapabilities'] = $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
        }
    }

    IoTEventsAlarmModel() : base() {}
    IoTEventsAlarmModel([IDictionary] $props) : base($props) {}
    IoTEventsAlarmModel([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] $DetectorModelDescription
    [string] $DetectorModelName
    [string] $EvaluationMethod
    [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 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 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 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 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) {}
}