VaporShell.IoT.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 'IoTTopicRuleAssetPropertyVariant'"

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

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

Write-Verbose "Importing class 'IoTTopicRuleSigV4Authorization'"

class IoTTopicRuleSigV4Authorization : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleSigV4Authorization'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sigv4authorization.html'

    hidden [object] $_roleArn
    hidden [object] $_serviceName
    hidden [object] $_signingRegion

    [string] $RoleArn
    [string] $ServiceName
    [string] $SigningRegion

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

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

Write-Verbose "Importing class 'IoTTopicRuleSqsAction'"

class IoTTopicRuleSqsAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleSqsAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-sqsaction.html'

    hidden [object] $_queueUrl
    hidden [object] $_roleArn
    hidden [object] $_useBase64

    [string] $QueueUrl
    [string] $RoleArn
    [bool] $UseBase64

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

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

Write-Verbose "Importing class 'IoTTopicRulePutItemInput'"

class IoTTopicRulePutItemInput : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRulePutItemInput'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putiteminput.html'

    hidden [object] $_tableName

    [string] $TableName

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

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

Write-Verbose "Importing class 'IoTTopicRuleSnsAction'"

class IoTTopicRuleSnsAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleSnsAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-snsaction.html'

    hidden [object] $_messageFormat
    hidden [object] $_roleArn
    hidden [object] $_targetArn

    [string] $MessageFormat
    [string] $RoleArn
    [string] $TargetArn

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

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

Write-Verbose "Importing class 'IoTTopicRuleDestinationVpcDestinationProperties'"

class IoTTopicRuleDestinationVpcDestinationProperties : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleDestinationVpcDestinationProperties'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-vpcdestinationproperties.html'

    hidden [object] $_subnetIds
    hidden [object] $_securityGroups
    hidden [object] $_vpcId
    hidden [object] $_roleArn

    [string[]] $SubnetIds
    [string[]] $SecurityGroups
    [string] $VpcId
    [string] $RoleArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SubnetIds -Value {
            $this._subnetIds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._subnetIds = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecurityGroups -Value {
            $this._securityGroups
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._securityGroups = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name VpcId -Value {
            $this._vpcId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._vpcId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleArn -Value {
            $this._roleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._roleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTTopicRuleHttpAction'"

class IoTTopicRuleHttpAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleHttpAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpaction.html'

    hidden [object] $_auth
    hidden [object] $_confirmationUrl
    hidden [object] $_headers
    hidden [object] $_url

    [IoTTopicRuleHttpAuthorization] $Auth
    [string] $ConfirmationUrl
    [IoTTopicRuleHttpActionHeader[]] $Headers
    [string] $Url

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Auth -Value {
            $this._auth
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleHttpAuthorization], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._auth = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConfirmationUrl -Value {
            $this._confirmationUrl
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._confirmationUrl = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Headers -Value {
            $this._headers
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleHttpActionHeader], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._headers = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Url -Value {
            $this._url
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._url = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTTopicRulePutAssetPropertyValueEntry'"

class IoTTopicRulePutAssetPropertyValueEntry : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRulePutAssetPropertyValueEntry'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-putassetpropertyvalueentry.html'

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

    [string] $AssetId
    [string] $EntryId
    [string] $PropertyAlias
    [string] $PropertyId
    [IoTTopicRuleAssetPropertyValue[]] $PropertyValues

    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 PropertyValues -Value {
            $this._propertyValues
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleAssetPropertyValue], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._propertyValues = $value
        }
    }

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

Write-Verbose "Importing class 'IoTTopicRuleLambdaAction'"

class IoTTopicRuleLambdaAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleLambdaAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html'

    hidden [object] $_functionArn

    [string] $FunctionArn

    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
            }
        }
    }

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

Write-Verbose "Importing class 'IoTTopicRuleDynamoDBAction'"

class IoTTopicRuleDynamoDBAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleDynamoDBAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbaction.html'

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

    [string] $HashKeyField
    [string] $HashKeyType
    [string] $HashKeyValue
    [string] $PayloadField
    [string] $RangeKeyField
    [string] $RangeKeyType
    [string] $RangeKeyValue
    [string] $RoleArn
    [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 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 RoleArn -Value {
            $this._roleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._roleArn = 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
            }
        }
    }

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

Write-Verbose "Importing class 'IoTTopicRuleIotAnalyticsAction'"

class IoTTopicRuleIotAnalyticsAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleIotAnalyticsAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotanalyticsaction.html'

    hidden [object] $_channelName
    hidden [object] $_roleArn

    [string] $ChannelName
    [string] $RoleArn

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

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

Write-Verbose "Importing class 'IoTTopicRuleIotEventsAction'"

class IoTTopicRuleIotEventsAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleIotEventsAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-ioteventsaction.html'

    hidden [object] $_inputName
    hidden [object] $_messageId
    hidden [object] $_roleArn

    [string] $InputName
    [string] $MessageId
    [string] $RoleArn

    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 MessageId -Value {
            $this._messageId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._messageId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleArn -Value {
            $this._roleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._roleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTTopicRuleIotSiteWiseAction'"

class IoTTopicRuleIotSiteWiseAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleIotSiteWiseAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-iotsitewiseaction.html'

    hidden [object] $_putAssetPropertyValueEntries
    hidden [object] $_roleArn

    [IoTTopicRulePutAssetPropertyValueEntry[]] $PutAssetPropertyValueEntries
    [string] $RoleArn

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

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

Write-Verbose "Importing class 'IoTProvisioningTemplateProvisioningHook'"

class IoTProvisioningTemplateProvisioningHook : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTProvisioningTemplateProvisioningHook'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-provisioningtemplate-provisioninghook.html'

    hidden [object] $_targetArn
    hidden [object] $_payloadVersion

    [string] $TargetArn
    [string] $PayloadVersion

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

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

Write-Verbose "Importing class 'IoTTopicRuleDynamoDBv2Action'"

class IoTTopicRuleDynamoDBv2Action : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleDynamoDBv2Action'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-dynamodbv2action.html'

    hidden [object] $_putItem
    hidden [object] $_roleArn

    [IoTTopicRulePutItemInput] $PutItem
    [string] $RoleArn

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

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

Write-Verbose "Importing class 'IoTThingAttributePayload'"

class IoTThingAttributePayload : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTThingAttributePayload'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-thing-attributepayload.html'

    hidden [object] $_attributes

    [string] $Attributes

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

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

Write-Verbose "Importing class 'IoTTopicRuleCloudwatchMetricAction'"

class IoTTopicRuleCloudwatchMetricAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleCloudwatchMetricAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchmetricaction.html'

    hidden [object] $_metricName
    hidden [object] $_metricNamespace
    hidden [object] $_metricTimestamp
    hidden [object] $_metricUnit
    hidden [object] $_metricValue
    hidden [object] $_roleArn

    [string] $MetricName
    [string] $MetricNamespace
    [string] $MetricTimestamp
    [string] $MetricUnit
    [string] $MetricValue
    [string] $RoleArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name MetricName -Value {
            $this._metricName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._metricName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MetricNamespace -Value {
            $this._metricNamespace
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._metricNamespace = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MetricTimestamp -Value {
            $this._metricTimestamp
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._metricTimestamp = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MetricUnit -Value {
            $this._metricUnit
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._metricUnit = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MetricValue -Value {
            $this._metricValue
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._metricValue = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleArn -Value {
            $this._roleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._roleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTTopicRuleS3Action'"

class IoTTopicRuleS3Action : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleS3Action'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-s3action.html'

    hidden [object] $_bucketName
    hidden [object] $_key
    hidden [object] $_roleArn

    [string] $BucketName
    [string] $Key
    [string] $RoleArn

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

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

Write-Verbose "Importing class 'IoTTopicRuleFirehoseAction'"

class IoTTopicRuleFirehoseAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleFirehoseAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-firehoseaction.html'

    hidden [object] $_deliveryStreamName
    hidden [object] $_roleArn
    hidden [object] $_separator

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

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

Write-Verbose "Importing class 'IoTTopicRuleDestinationHttpUrlDestinationSummary'"

class IoTTopicRuleDestinationHttpUrlDestinationSummary : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleDestinationHttpUrlDestinationSummary'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicruledestination-httpurldestinationsummary.html'

    hidden [object] $_confirmationUrl

    [string] $ConfirmationUrl

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

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

Write-Verbose "Importing class 'IoTTopicRuleAssetPropertyTimestamp'"

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

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

Write-Verbose "Importing class 'IoTTopicRuleAssetPropertyValue'"

class IoTTopicRuleAssetPropertyValue : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleAssetPropertyValue'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-assetpropertyvalue.html'

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

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

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

Write-Verbose "Importing class 'IoTTopicRuleElasticsearchAction'"

class IoTTopicRuleElasticsearchAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleElasticsearchAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-elasticsearchaction.html'

    hidden [object] $_endpoint
    hidden [object] $_id
    hidden [object] $_index
    hidden [object] $_roleArn
    hidden [object] $_type

    [string] $Endpoint
    [string] $Id
    [string] $Index
    [string] $RoleArn
    [string] $Type

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Endpoint -Value {
            $this._endpoint
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._endpoint = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Id -Value {
            $this._id
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._id = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Index -Value {
            $this._index
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._index = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleArn -Value {
            $this._roleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._roleArn = 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
            }
        }
    }

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

Write-Verbose "Importing class 'IoTDomainConfigurationAuthorizerConfig'"

class IoTDomainConfigurationAuthorizerConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTDomainConfigurationAuthorizerConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-authorizerconfig.html'

    hidden [object] $_allowAuthorizerOverride
    hidden [object] $_defaultAuthorizerName

    [bool] $AllowAuthorizerOverride
    [string] $DefaultAuthorizerName

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

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

Write-Verbose "Importing class 'IoTTopicRuleKinesisAction'"

class IoTTopicRuleKinesisAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleKinesisAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-kinesisaction.html'

    hidden [object] $_partitionKey
    hidden [object] $_roleArn
    hidden [object] $_streamName

    [string] $PartitionKey
    [string] $RoleArn
    [string] $StreamName

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

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

Write-Verbose "Importing class 'IoTTopicRuleAction'"

class IoTTopicRuleAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-action.html'

    hidden [object] $_cloudwatchAlarm
    hidden [object] $_cloudwatchMetric
    hidden [object] $_dynamoDB
    hidden [object] $_dynamoDBv2
    hidden [object] $_elasticsearch
    hidden [object] $_firehose
    hidden [object] $_http
    hidden [object] $_iotAnalytics
    hidden [object] $_iotEvents
    hidden [object] $_iotSiteWise
    hidden [object] $_kinesis
    hidden [object] $_lambda
    hidden [object] $_republish
    hidden [object] $_s3
    hidden [object] $_sns
    hidden [object] $_sqs
    hidden [object] $_stepFunctions

    [IoTTopicRuleCloudwatchAlarmAction] $CloudwatchAlarm
    [IoTTopicRuleCloudwatchMetricAction] $CloudwatchMetric
    [IoTTopicRuleDynamoDBAction] $DynamoDB
    [IoTTopicRuleDynamoDBv2Action] $DynamoDBv2
    [IoTTopicRuleElasticsearchAction] $Elasticsearch
    [IoTTopicRuleFirehoseAction] $Firehose
    [IoTTopicRuleHttpAction] $Http
    [IoTTopicRuleIotAnalyticsAction] $IotAnalytics
    [IoTTopicRuleIotEventsAction] $IotEvents
    [IoTTopicRuleIotSiteWiseAction] $IotSiteWise
    [IoTTopicRuleKinesisAction] $Kinesis
    [IoTTopicRuleLambdaAction] $Lambda
    [IoTTopicRuleRepublishAction] $Republish
    [IoTTopicRuleS3Action] $S3
    [IoTTopicRuleSnsAction] $Sns
    [IoTTopicRuleSqsAction] $Sqs
    [IoTTopicRuleStepFunctionsAction] $StepFunctions

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CloudwatchAlarm -Value {
            $this._cloudwatchAlarm
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleCloudwatchAlarmAction], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cloudwatchAlarm = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CloudwatchMetric -Value {
            $this._cloudwatchMetric
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleCloudwatchMetricAction], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cloudwatchMetric = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DynamoDB -Value {
            $this._dynamoDB
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleDynamoDBAction], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dynamoDB = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DynamoDBv2 -Value {
            $this._dynamoDBv2
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleDynamoDBv2Action], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dynamoDBv2 = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Elasticsearch -Value {
            $this._elasticsearch
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleElasticsearchAction], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._elasticsearch = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Firehose -Value {
            $this._firehose
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleFirehoseAction], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._firehose = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Http -Value {
            $this._http
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleHttpAction], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._http = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IotAnalytics -Value {
            $this._iotAnalytics
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleIotAnalyticsAction], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iotAnalytics = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IotEvents -Value {
            $this._iotEvents
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleIotEventsAction], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iotEvents = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IotSiteWise -Value {
            $this._iotSiteWise
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleIotSiteWiseAction], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iotSiteWise = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Kinesis -Value {
            $this._kinesis
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleKinesisAction], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._kinesis = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Lambda -Value {
            $this._lambda
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleLambdaAction], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._lambda = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Republish -Value {
            $this._republish
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleRepublishAction], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._republish = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3 -Value {
            $this._s3
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleS3Action], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3 = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Sns -Value {
            $this._sns
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleSnsAction], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sns = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Sqs -Value {
            $this._sqs
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleSqsAction], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sqs = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StepFunctions -Value {
            $this._stepFunctions
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleStepFunctionsAction], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._stepFunctions = $value
        }
    }

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

Write-Verbose "Importing class 'IoTTopicRuleHttpAuthorization'"

class IoTTopicRuleHttpAuthorization : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleHttpAuthorization'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpauthorization.html'

    hidden [object] $_sigv4

    [IoTTopicRuleSigV4Authorization] $Sigv4

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

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

Write-Verbose "Importing class 'IoTTopicRuleHttpActionHeader'"

class IoTTopicRuleHttpActionHeader : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleHttpActionHeader'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-httpactionheader.html'

    hidden [object] $_key
    hidden [object] $_value

    [string] $Key
    [string] $Value

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

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

Write-Verbose "Importing class 'IoTTopicRuleRepublishAction'"

class IoTTopicRuleRepublishAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleRepublishAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-republishaction.html'

    hidden [object] $_qos
    hidden [object] $_roleArn
    hidden [object] $_topic

    [int] $Qos
    [string] $RoleArn
    [string] $Topic

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Qos -Value {
            $this._qos
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._qos = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleArn -Value {
            $this._roleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._roleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Topic -Value {
            $this._topic
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._topic = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTTopicRuleStepFunctionsAction'"

class IoTTopicRuleStepFunctionsAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleStepFunctionsAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-stepfunctionsaction.html'

    hidden [object] $_executionNamePrefix
    hidden [object] $_roleArn
    hidden [object] $_stateMachineName

    [string] $ExecutionNamePrefix
    [string] $RoleArn
    [string] $StateMachineName

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

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

Write-Verbose "Importing class 'IoTTopicRuleTopicRulePayload'"

class IoTTopicRuleTopicRulePayload : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleTopicRulePayload'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html'

    hidden [object] $_actions
    hidden [object] $_awsIotSqlVersion
    hidden [object] $_description
    hidden [object] $_errorAction
    hidden [object] $_ruleDisabled
    hidden [object] $_sql

    [IoTTopicRuleAction[]] $Actions
    [string] $AwsIotSqlVersion
    [string] $Description
    [IoTTopicRuleAction] $ErrorAction
    [bool] $RuleDisabled
    [string] $Sql

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Actions -Value {
            $this._actions
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleAction], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._actions = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AwsIotSqlVersion -Value {
            $this._awsIotSqlVersion
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._awsIotSqlVersion = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this._description
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._description = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ErrorAction -Value {
            $this._errorAction
        } -SecondValue {
            param([ValidateType(([IoTTopicRuleAction], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._errorAction = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RuleDisabled -Value {
            $this._ruleDisabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ruleDisabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Sql -Value {
            $this._sql
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sql = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTTopicRuleCloudwatchAlarmAction'"

class IoTTopicRuleCloudwatchAlarmAction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTTopicRuleCloudwatchAlarmAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-cloudwatchalarmaction.html'

    hidden [object] $_alarmName
    hidden [object] $_roleArn
    hidden [object] $_stateReason
    hidden [object] $_stateValue

    [string] $AlarmName
    [string] $RoleArn
    [string] $StateReason
    [string] $StateValue

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name AlarmName -Value {
            $this._alarmName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._alarmName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleArn -Value {
            $this._roleArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._roleArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StateReason -Value {
            $this._stateReason
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._stateReason = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StateValue -Value {
            $this._stateValue
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._stateValue = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'IoTDomainConfigurationServerCertificateSummary'"

class IoTDomainConfigurationServerCertificateSummary : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTDomainConfigurationServerCertificateSummary'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-domainconfiguration-servercertificatesummary.html'

    hidden [object] $_serverCertificateArn
    hidden [object] $_serverCertificateStatus
    hidden [object] $_serverCertificateStatusDetail

    [string] $ServerCertificateArn
    [string] $ServerCertificateStatus
    [string] $ServerCertificateStatusDetail

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

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

Write-Verbose "Importing class 'IoTTopicRule'"

class IoTTopicRule : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTTopicRule'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicrule.html'

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

    [string] $Type = 'AWS::IoT::TopicRule'
    [string] $RuleName
    [IoTTopicRuleTopicRulePayload] $TopicRulePayload
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTDomainConfiguration'"

class IoTDomainConfiguration : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTDomainConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-domainconfiguration.html'

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

    [string] $Type = 'AWS::IoT::DomainConfiguration'
    [string] $DomainConfigurationName
    [IoTDomainConfigurationAuthorizerConfig] $AuthorizerConfig
    [string] $DomainName
    [string[]] $ServerCertificateArns
    [string] $ServiceType
    [string] $ValidationCertificateArn
    [string] $DomainConfigurationStatus
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTAuthorizer'"

class IoTAuthorizer : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTAuthorizer'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-authorizer.html'

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

    [string] $Type = 'AWS::IoT::Authorizer'
    [string] $AuthorizerFunctionArn
    [string] $AuthorizerName
    [bool] $SigningDisabled
    [string] $Status
    [string] $TokenKeyName
    [string] $TokenSigningPublicKeys
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTProvisioningTemplate'"

class IoTProvisioningTemplate : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTProvisioningTemplate'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-provisioningtemplate.html'

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

    [string] $Type = 'AWS::IoT::ProvisioningTemplate'
    [string] $TemplateName
    [string] $Description
    [bool] $Enabled
    [string] $ProvisioningRoleArn
    [string] $TemplateBody
    [IoTProvisioningTemplateProvisioningHook] $PreProvisioningHook
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTThing'"

class IoTThing : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTThing'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thing.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::IoT::Thing'
    [IoTThingAttributePayload] $AttributePayload
    [string] $ThingName
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTPolicy'"

class IoTPolicy : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTPolicy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policy.html'

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

    [string] $Type = 'AWS::IoT::Policy'
    [VSJson] $PolicyDocument
    [string] $PolicyName
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTPolicyPrincipalAttachment'"

class IoTPolicyPrincipalAttachment : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTPolicyPrincipalAttachment'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-policyprincipalattachment.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::IoT::PolicyPrincipalAttachment'
    [string] $PolicyName
    [string] $Principal
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTThingPrincipalAttachment'"

class IoTThingPrincipalAttachment : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTThingPrincipalAttachment'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-thingprincipalattachment.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::IoT::ThingPrincipalAttachment'
    [string] $Principal
    [string] $ThingName
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTTopicRuleDestination'"

class IoTTopicRuleDestination : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTTopicRuleDestination'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iot-topicruledestination.html'

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

    [string] $Type = 'AWS::IoT::TopicRuleDestination'
    [string] $Status
    [IoTTopicRuleDestinationHttpUrlDestinationSummary] $HttpUrlProperties
    [IoTTopicRuleDestinationVpcDestinationProperties] $VpcProperties
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTCertificate'"

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

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

    [string] $Type = 'AWS::IoT::Certificate'
    [string] $CACertificatePem
    [string] $CertificatePem
    [string] $CertificateSigningRequest
    [string] $CertificateMode
    [string] $Status
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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