VaporShell.IoTSiteWise.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 'IoTSiteWiseAccessPolicyProject'"

class IoTSiteWiseAccessPolicyProject : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAccessPolicyProject'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-project.html'

    hidden [object] $_id

    [string] $id

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

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

Write-Verbose "Importing class 'IoTSiteWiseGatewayGreengrass'"

class IoTSiteWiseGatewayGreengrass : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseGatewayGreengrass'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-greengrass.html'

    hidden [object] $_groupArn

    [string] $GroupArn

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

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

Write-Verbose "Importing class 'IoTSiteWiseAssetModelAssetModelCompositeModel'"

class IoTSiteWiseAssetModelAssetModelCompositeModel : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAssetModelAssetModelCompositeModel'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelcompositemodel.html'

    hidden [object] $_description
    hidden [object] $_name
    hidden [object] $_type
    hidden [object] $_compositeModelProperties

    [string] $Description
    [string] $Name
    [string] $Type
    [IoTSiteWiseAssetModelAssetModelProperty[]] $CompositeModelProperties

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

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

Write-Verbose "Importing class 'IoTSiteWiseAccessPolicyIamRole'"

class IoTSiteWiseAccessPolicyIamRole : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAccessPolicyIamRole'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-iamrole.html'

    hidden [object] $_arn

    [string] $arn

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

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

Write-Verbose "Importing class 'IoTSiteWiseAssetModelMetricWindow'"

class IoTSiteWiseAssetModelMetricWindow : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAssetModelMetricWindow'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metricwindow.html'

    hidden [object] $_tumbling

    [IoTSiteWiseAssetModelTumblingWindow] $Tumbling

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

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

Write-Verbose "Importing class 'IoTSiteWiseAccessPolicyAccessPolicyResource'"

class IoTSiteWiseAccessPolicyAccessPolicyResource : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAccessPolicyAccessPolicyResource'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyresource.html'

    hidden [object] $_portal
    hidden [object] $_project

    [IoTSiteWiseAccessPolicyPortal] $Portal
    [IoTSiteWiseAccessPolicyProject] $Project

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Portal -Value {
            $this._portal
        } -SecondValue {
            param([ValidateType(([IoTSiteWiseAccessPolicyPortal], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._portal = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Project -Value {
            $this._project
        } -SecondValue {
            param([ValidateType(([IoTSiteWiseAccessPolicyProject], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._project = $value
        }
    }

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

Write-Verbose "Importing class 'IoTSiteWiseAccessPolicyUser'"

class IoTSiteWiseAccessPolicyUser : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAccessPolicyUser'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-user.html'

    hidden [object] $_id

    [string] $id

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

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

Write-Verbose "Importing class 'IoTSiteWiseAssetModelTumblingWindow'"

class IoTSiteWiseAssetModelTumblingWindow : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAssetModelTumblingWindow'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-tumblingwindow.html'

    hidden [object] $_interval
    hidden [object] $_offset

    [string] $Interval
    [string] $Offset

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

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

Write-Verbose "Importing class 'IoTSiteWiseGatewayGreengrassV2'"

class IoTSiteWiseGatewayGreengrassV2 : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseGatewayGreengrassV2'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-greengrassv2.html'

    hidden [object] $_coreDeviceThingName

    [string] $CoreDeviceThingName

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

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

Write-Verbose "Importing class 'IoTSiteWiseAssetModelAttribute'"

class IoTSiteWiseAssetModelAttribute : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAssetModelAttribute'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-attribute.html'

    hidden [object] $_defaultValue

    [string] $DefaultValue

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

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

Write-Verbose "Importing class 'IoTSiteWiseAssetModelExpressionVariable'"

class IoTSiteWiseAssetModelExpressionVariable : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAssetModelExpressionVariable'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-expressionvariable.html'

    hidden [object] $_name
    hidden [object] $_value

    [string] $Name
    [IoTSiteWiseAssetModelVariableValue] $Value

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

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

Write-Verbose "Importing class 'IoTSiteWiseAccessPolicyIamUser'"

class IoTSiteWiseAccessPolicyIamUser : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAccessPolicyIamUser'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-iamuser.html'

    hidden [object] $_arn

    [string] $arn

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

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

Write-Verbose "Importing class 'IoTSiteWiseGatewayGatewayCapabilitySummary'"

class IoTSiteWiseGatewayGatewayCapabilitySummary : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseGatewayGatewayCapabilitySummary'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewaycapabilitysummary.html'

    hidden [object] $_capabilityNamespace
    hidden [object] $_capabilityConfiguration

    [string] $CapabilityNamespace
    [string] $CapabilityConfiguration

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

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

Write-Verbose "Importing class 'IoTSiteWiseAssetModelVariableValue'"

class IoTSiteWiseAssetModelVariableValue : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAssetModelVariableValue'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-variablevalue.html'

    hidden [object] $_propertyLogicalId
    hidden [object] $_hierarchyLogicalId

    [string] $PropertyLogicalId
    [string] $HierarchyLogicalId

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

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

Write-Verbose "Importing class 'IoTSiteWiseAssetModelTransform'"

class IoTSiteWiseAssetModelTransform : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAssetModelTransform'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-transform.html'

    hidden [object] $_expression
    hidden [object] $_variables

    [string] $Expression
    [IoTSiteWiseAssetModelExpressionVariable[]] $Variables

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

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

Write-Verbose "Importing class 'IoTSiteWiseAssetModelAssetModelHierarchy'"

class IoTSiteWiseAssetModelAssetModelHierarchy : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAssetModelAssetModelHierarchy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelhierarchy.html'

    hidden [object] $_logicalId
    hidden [object] $_name
    hidden [object] $_childAssetModelId

    [string] $LogicalId
    [string] $Name
    [string] $ChildAssetModelId

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

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

Write-Verbose "Importing class 'IoTSiteWiseAssetModelMetric'"

class IoTSiteWiseAssetModelMetric : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAssetModelMetric'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-metric.html'

    hidden [object] $_expression
    hidden [object] $_variables
    hidden [object] $_window

    [string] $Expression
    [IoTSiteWiseAssetModelExpressionVariable[]] $Variables
    [IoTSiteWiseAssetModelMetricWindow] $Window

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Expression -Value {
            $this._expression
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._expression = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Variables -Value {
            $this._variables
        } -SecondValue {
            param([ValidateType(([IoTSiteWiseAssetModelExpressionVariable], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._variables = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Window -Value {
            $this._window
        } -SecondValue {
            param([ValidateType(([IoTSiteWiseAssetModelMetricWindow], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._window = $value
        }
    }

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

Write-Verbose "Importing class 'IoTSiteWiseAccessPolicyPortal'"

class IoTSiteWiseAccessPolicyPortal : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAccessPolicyPortal'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-portal.html'

    hidden [object] $_id

    [string] $id

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

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

Write-Verbose "Importing class 'IoTSiteWiseAssetModelAssetModelProperty'"

class IoTSiteWiseAssetModelAssetModelProperty : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAssetModelAssetModelProperty'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-assetmodelproperty.html'

    hidden [object] $_logicalId
    hidden [object] $_name
    hidden [object] $_dataType
    hidden [object] $_dataTypeSpec
    hidden [object] $_unit
    hidden [object] $_type

    [string] $LogicalId
    [string] $Name
    [string] $DataType
    [string] $DataTypeSpec
    [string] $Unit
    [IoTSiteWiseAssetModelPropertyType] $Type

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name LogicalId -Value {
            $this._logicalId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._logicalId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this._name
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._name = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DataType -Value {
            $this._dataType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dataType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DataTypeSpec -Value {
            $this._dataTypeSpec
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dataTypeSpec = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Unit -Value {
            $this._unit
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._unit = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Type -Value {
            $this._type
        } -SecondValue {
            param([ValidateType(([IoTSiteWiseAssetModelPropertyType], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._type = $value
        }
    }

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

Write-Verbose "Importing class 'IoTSiteWiseGatewayGatewayPlatform'"

class IoTSiteWiseGatewayGatewayPlatform : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseGatewayGatewayPlatform'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-gateway-gatewayplatform.html'

    hidden [object] $_greengrass
    hidden [object] $_greengrassV2

    [IoTSiteWiseGatewayGreengrass] $Greengrass
    [IoTSiteWiseGatewayGreengrassV2] $GreengrassV2

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Greengrass -Value {
            $this._greengrass
        } -SecondValue {
            param([ValidateType(([IoTSiteWiseGatewayGreengrass], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._greengrass = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GreengrassV2 -Value {
            $this._greengrassV2
        } -SecondValue {
            param([ValidateType(([IoTSiteWiseGatewayGreengrassV2], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._greengrassV2 = $value
        }
    }

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

Write-Verbose "Importing class 'IoTSiteWiseAssetAssetHierarchy'"

class IoTSiteWiseAssetAssetHierarchy : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAssetAssetHierarchy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assethierarchy.html'

    hidden [object] $_logicalId
    hidden [object] $_childAssetId

    [string] $LogicalId
    [string] $ChildAssetId

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

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

Write-Verbose "Importing class 'IoTSiteWiseAccessPolicyAccessPolicyIdentity'"

class IoTSiteWiseAccessPolicyAccessPolicyIdentity : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAccessPolicyAccessPolicyIdentity'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-accesspolicy-accesspolicyidentity.html'

    hidden [object] $_user
    hidden [object] $_iamUser
    hidden [object] $_iamRole

    [IoTSiteWiseAccessPolicyUser] $User
    [IoTSiteWiseAccessPolicyIamUser] $IamUser
    [IoTSiteWiseAccessPolicyIamRole] $IamRole

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name User -Value {
            $this._user
        } -SecondValue {
            param([ValidateType(([IoTSiteWiseAccessPolicyUser], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._user = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IamUser -Value {
            $this._iamUser
        } -SecondValue {
            param([ValidateType(([IoTSiteWiseAccessPolicyIamUser], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iamUser = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IamRole -Value {
            $this._iamRole
        } -SecondValue {
            param([ValidateType(([IoTSiteWiseAccessPolicyIamRole], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iamRole = $value
        }
    }

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

Write-Verbose "Importing class 'IoTSiteWiseAssetAssetProperty'"

class IoTSiteWiseAssetAssetProperty : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAssetAssetProperty'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-asset-assetproperty.html'

    hidden [object] $_logicalId
    hidden [object] $_alias
    hidden [object] $_notificationState

    [string] $LogicalId
    [string] $Alias
    [string] $NotificationState

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

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

Write-Verbose "Importing class 'IoTSiteWiseAssetModelPropertyType'"

class IoTSiteWiseAssetModelPropertyType : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSIoTSiteWiseAssetModelPropertyType'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotsitewise-assetmodel-propertytype.html'

    hidden [object] $_typeName
    hidden [object] $_attribute
    hidden [object] $_transform
    hidden [object] $_metric

    [string] $TypeName
    [IoTSiteWiseAssetModelAttribute] $Attribute
    [IoTSiteWiseAssetModelTransform] $Transform
    [IoTSiteWiseAssetModelMetric] $Metric

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name TypeName -Value {
            $this._typeName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._typeName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Attribute -Value {
            $this._attribute
        } -SecondValue {
            param([ValidateType(([IoTSiteWiseAssetModelAttribute], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._attribute = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Transform -Value {
            $this._transform
        } -SecondValue {
            param([ValidateType(([IoTSiteWiseAssetModelTransform], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._transform = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Metric -Value {
            $this._metric
        } -SecondValue {
            param([ValidateType(([IoTSiteWiseAssetModelMetric], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._metric = $value
        }
    }

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

Write-Verbose "Importing class 'IoTSiteWiseAssetModel'"

class IoTSiteWiseAssetModel : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTSiteWiseAssetModel'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-assetmodel.html'

    hidden [string[]] $_attributes = @('AssetModelId','AssetModelArn')
    hidden [object] $_condition

    [string] $Type = 'AWS::IoTSiteWise::AssetModel'
    [string] $AssetModelName
    [string] $AssetModelDescription
    [IoTSiteWiseAssetModelAssetModelProperty[]] $AssetModelProperties
    [IoTSiteWiseAssetModelAssetModelCompositeModel[]] $AssetModelCompositeModels
    [IoTSiteWiseAssetModelAssetModelHierarchy[]] $AssetModelHierarchies
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTSiteWiseAsset'"

class IoTSiteWiseAsset : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTSiteWiseAsset'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-asset.html'

    hidden [string[]] $_attributes = @('AssetId','AssetArn')
    hidden [object] $_condition

    [string] $Type = 'AWS::IoTSiteWise::Asset'
    [string] $AssetModelId
    [string] $AssetName
    [IoTSiteWiseAssetAssetProperty[]] $AssetProperties
    [IoTSiteWiseAssetAssetHierarchy[]] $AssetHierarchies
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTSiteWiseDashboard'"

class IoTSiteWiseDashboard : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTSiteWiseDashboard'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-dashboard.html'

    hidden [string[]] $_attributes = @('DashboardId','DashboardArn')
    hidden [object] $_condition

    [string] $Type = 'AWS::IoTSiteWise::Dashboard'
    [string] $ProjectId
    [string] $DashboardName
    [string] $DashboardDescription
    [string] $DashboardDefinition
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTSiteWisePortal'"

class IoTSiteWisePortal : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTSiteWisePortal'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-portal.html'

    hidden [string[]] $_attributes = @('PortalArn','PortalClientId','PortalId','PortalStartUrl')
    hidden [object] $_condition

    [string] $Type = 'AWS::IoTSiteWise::Portal'
    [string] $PortalAuthMode
    [string] $PortalContactEmail
    [string] $PortalDescription
    [string] $PortalName
    [string] $RoleArn
    [string] $NotificationSenderEmail
    [VSJson] $Alarms
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name PortalAuthMode -Value {
            $this.Properties['PortalAuthMode']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PortalAuthMode'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PortalContactEmail -Value {
            $this.Properties['PortalContactEmail']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PortalContactEmail'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PortalDescription -Value {
            $this.Properties['PortalDescription']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PortalDescription'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PortalName -Value {
            $this.Properties['PortalName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PortalName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleArn -Value {
            $this.Properties['RoleArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RoleArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NotificationSenderEmail -Value {
            $this.Properties['NotificationSenderEmail']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['NotificationSenderEmail'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Alarms -Value {
            $this.Properties['Alarms']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['Alarms'] = [VSJson]::Transform($value)
            Write-Debug $this.Properties['Alarms']
        }
        $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
        }
    }

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

Write-Verbose "Importing class 'IoTSiteWiseAccessPolicy'"

class IoTSiteWiseAccessPolicy : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTSiteWiseAccessPolicy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-accesspolicy.html'

    hidden [string[]] $_attributes = @('AccessPolicyId','AccessPolicyArn')
    hidden [object] $_condition

    [string] $Type = 'AWS::IoTSiteWise::AccessPolicy'
    [IoTSiteWiseAccessPolicyAccessPolicyIdentity] $AccessPolicyIdentity
    [string] $AccessPolicyPermission
    [IoTSiteWiseAccessPolicyAccessPolicyResource] $AccessPolicyResource
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTSiteWiseProject'"

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

    hidden [string[]] $_attributes = @('ProjectId','ProjectArn')
    hidden [object] $_condition

    [string] $Type = 'AWS::IoTSiteWise::Project'
    [string] $PortalId
    [string] $ProjectName
    [string] $ProjectDescription
    [string[]] $AssetIds
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'IoTSiteWiseGateway'"

class IoTSiteWiseGateway : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSIoTSiteWiseGateway'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iotsitewise-gateway.html'

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

    [string] $Type = 'AWS::IoTSiteWise::Gateway'
    [string] $GatewayName
    [IoTSiteWiseGatewayGatewayPlatform] $GatewayPlatform
    [VSTag[]] $Tags
    [IoTSiteWiseGatewayGatewayCapabilitySummary[]] $GatewayCapabilitySummaries
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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