VaporShell.Greengrass.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 'GreengrassCoreDefinitionCore'"

class GreengrassCoreDefinitionCore : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassCoreDefinitionCore'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-core.html'

    hidden [object] $_syncShadow
    hidden [object] $_thingArn
    hidden [object] $_id
    hidden [object] $_certificateArn

    [bool] $SyncShadow
    [string] $ThingArn
    [string] $Id
    [string] $CertificateArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SyncShadow -Value {
            $this._syncShadow
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._syncShadow = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ThingArn -Value {
            $this._thingArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._thingArn = 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 CertificateArn -Value {
            $this._certificateArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._certificateArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'GreengrassFunctionDefinitionVersionFunctionConfiguration'"

class GreengrassFunctionDefinitionVersionFunctionConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassFunctionDefinitionVersionFunctionConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-functionconfiguration.html'

    hidden [object] $_memorySize
    hidden [object] $_pinned
    hidden [object] $_execArgs
    hidden [object] $_timeout
    hidden [object] $_encodingType
    hidden [object] $_environment
    hidden [object] $_executable

    [int] $MemorySize
    [bool] $Pinned
    [string] $ExecArgs
    [int] $Timeout
    [string] $EncodingType
    [GreengrassFunctionDefinitionVersionEnvironment] $Environment
    [string] $Executable

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name MemorySize -Value {
            $this._memorySize
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._memorySize = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Pinned -Value {
            $this._pinned
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._pinned = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExecArgs -Value {
            $this._execArgs
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._execArgs = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Timeout -Value {
            $this._timeout
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._timeout = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EncodingType -Value {
            $this._encodingType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._encodingType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Environment -Value {
            $this._environment
        } -SecondValue {
            param([ValidateType(([GreengrassFunctionDefinitionVersionEnvironment], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._environment = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Executable -Value {
            $this._executable
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._executable = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'GreengrassFunctionDefinitionVersionExecution'"

class GreengrassFunctionDefinitionVersionExecution : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassFunctionDefinitionVersionExecution'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-execution.html'

    hidden [object] $_isolationMode
    hidden [object] $_runAs

    [string] $IsolationMode
    [GreengrassFunctionDefinitionVersionRunAs] $RunAs

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

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionVersionResourceInstance'"

class GreengrassResourceDefinitionVersionResourceInstance : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionVersionResourceInstance'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourceinstance.html'

    hidden [object] $_resourceDataContainer
    hidden [object] $_id
    hidden [object] $_name

    [GreengrassResourceDefinitionVersionResourceDataContainer] $ResourceDataContainer
    [string] $Id
    [string] $Name

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

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

Write-Verbose "Importing class 'GreengrassFunctionDefinitionFunctionConfiguration'"

class GreengrassFunctionDefinitionFunctionConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassFunctionDefinitionFunctionConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functionconfiguration.html'

    hidden [object] $_memorySize
    hidden [object] $_pinned
    hidden [object] $_execArgs
    hidden [object] $_timeout
    hidden [object] $_encodingType
    hidden [object] $_environment
    hidden [object] $_executable

    [int] $MemorySize
    [bool] $Pinned
    [string] $ExecArgs
    [int] $Timeout
    [string] $EncodingType
    [GreengrassFunctionDefinitionEnvironment] $Environment
    [string] $Executable

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name MemorySize -Value {
            $this._memorySize
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._memorySize = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Pinned -Value {
            $this._pinned
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._pinned = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExecArgs -Value {
            $this._execArgs
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._execArgs = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Timeout -Value {
            $this._timeout
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._timeout = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EncodingType -Value {
            $this._encodingType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._encodingType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Environment -Value {
            $this._environment
        } -SecondValue {
            param([ValidateType(([GreengrassFunctionDefinitionEnvironment], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._environment = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Executable -Value {
            $this._executable
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._executable = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'GreengrassLoggerDefinitionVersionLogger'"

class GreengrassLoggerDefinitionVersionLogger : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassLoggerDefinitionVersionLogger'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinitionversion-logger.html'

    hidden [object] $_space
    hidden [object] $_type
    hidden [object] $_level
    hidden [object] $_id
    hidden [object] $_component

    [int] $Space
    [string] $Type
    [string] $Level
    [string] $Id
    [string] $Component

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Space -Value {
            $this._space
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._space = if ($cast = $value -as [int]) {
                $cast
            }
            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 Level -Value {
            $this._level
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._level = 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 Component -Value {
            $this._component
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._component = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionS3MachineLearningModelResourceData'"

class GreengrassResourceDefinitionS3MachineLearningModelResourceData : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionS3MachineLearningModelResourceData'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-s3machinelearningmodelresourcedata.html'

    hidden [object] $_ownerSetting
    hidden [object] $_destinationPath
    hidden [object] $_s3Uri

    [GreengrassResourceDefinitionResourceDownloadOwnerSetting] $OwnerSetting
    [string] $DestinationPath
    [string] $S3Uri

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

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionSecretsManagerSecretResourceData'"

class GreengrassResourceDefinitionSecretsManagerSecretResourceData : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionSecretsManagerSecretResourceData'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-secretsmanagersecretresourcedata.html'

    hidden [object] $_aRN
    hidden [object] $_additionalStagingLabelsToDownload

    [string] $ARN
    [string[]] $AdditionalStagingLabelsToDownload

    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
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AdditionalStagingLabelsToDownload -Value {
            $this._additionalStagingLabelsToDownload
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._additionalStagingLabelsToDownload = @($value)
        }
    }

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

Write-Verbose "Importing class 'GreengrassSubscriptionDefinitionSubscriptionDefinitionVersion'"

class GreengrassSubscriptionDefinitionSubscriptionDefinitionVersion : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassSubscriptionDefinitionSubscriptionDefinitionVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscriptiondefinitionversion.html'

    hidden [object] $_subscriptions

    [GreengrassSubscriptionDefinitionSubscription[]] $Subscriptions

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

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionResourceDownloadOwnerSetting'"

class GreengrassResourceDefinitionResourceDownloadOwnerSetting : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionResourceDownloadOwnerSetting'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedownloadownersetting.html'

    hidden [object] $_groupOwner
    hidden [object] $_groupPermission

    [string] $GroupOwner
    [string] $GroupPermission

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

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionVersionLocalDeviceResourceData'"

class GreengrassResourceDefinitionVersionLocalDeviceResourceData : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionVersionLocalDeviceResourceData'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-localdeviceresourcedata.html'

    hidden [object] $_sourcePath
    hidden [object] $_groupOwnerSetting

    [string] $SourcePath
    [GreengrassResourceDefinitionVersionGroupOwnerSetting] $GroupOwnerSetting

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

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

Write-Verbose "Importing class 'GreengrassFunctionDefinitionVersionDefaultConfig'"

class GreengrassFunctionDefinitionVersionDefaultConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassFunctionDefinitionVersionDefaultConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-defaultconfig.html'

    hidden [object] $_execution

    [GreengrassFunctionDefinitionVersionExecution] $Execution

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

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

Write-Verbose "Importing class 'GreengrassConnectorDefinitionConnectorDefinitionVersion'"

class GreengrassConnectorDefinitionConnectorDefinitionVersion : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassConnectorDefinitionConnectorDefinitionVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connectordefinitionversion.html'

    hidden [object] $_connectors

    [GreengrassConnectorDefinitionConnector[]] $Connectors

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

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

Write-Verbose "Importing class 'GreengrassFunctionDefinitionVersionFunction'"

class GreengrassFunctionDefinitionVersionFunction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassFunctionDefinitionVersionFunction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-function.html'

    hidden [object] $_functionArn
    hidden [object] $_functionConfiguration
    hidden [object] $_id

    [string] $FunctionArn
    [GreengrassFunctionDefinitionVersionFunctionConfiguration] $FunctionConfiguration
    [string] $Id

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

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

Write-Verbose "Importing class 'GreengrassLoggerDefinitionLogger'"

class GreengrassLoggerDefinitionLogger : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassLoggerDefinitionLogger'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-logger.html'

    hidden [object] $_space
    hidden [object] $_type
    hidden [object] $_level
    hidden [object] $_id
    hidden [object] $_component

    [int] $Space
    [string] $Type
    [string] $Level
    [string] $Id
    [string] $Component

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Space -Value {
            $this._space
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._space = if ($cast = $value -as [int]) {
                $cast
            }
            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 Level -Value {
            $this._level
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._level = 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 Component -Value {
            $this._component
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._component = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'GreengrassFunctionDefinitionDefaultConfig'"

class GreengrassFunctionDefinitionDefaultConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassFunctionDefinitionDefaultConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-defaultconfig.html'

    hidden [object] $_execution

    [GreengrassFunctionDefinitionExecution] $Execution

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

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionVersionLocalVolumeResourceData'"

class GreengrassResourceDefinitionVersionLocalVolumeResourceData : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionVersionLocalVolumeResourceData'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-localvolumeresourcedata.html'

    hidden [object] $_sourcePath
    hidden [object] $_destinationPath
    hidden [object] $_groupOwnerSetting

    [string] $SourcePath
    [string] $DestinationPath
    [GreengrassResourceDefinitionVersionGroupOwnerSetting] $GroupOwnerSetting

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

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

Write-Verbose "Importing class 'GreengrassConnectorDefinitionConnector'"

class GreengrassConnectorDefinitionConnector : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassConnectorDefinitionConnector'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinition-connector.html'

    hidden [object] $_connectorArn
    hidden [VSJson] $_parameters
    hidden [object] $_id

    [string] $ConnectorArn
    [VSJson] $Parameters
    [string] $Id

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConnectorArn -Value {
            $this._connectorArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._connectorArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Parameters -Value {
            $this._parameters
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._parameters = [VSJson]::Transform($value)
            Write-Debug $this._parameters
        }
        $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
            }
        }
    }

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionVersionSecretsManagerSecretResourceData'"

class GreengrassResourceDefinitionVersionSecretsManagerSecretResourceData : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionVersionSecretsManagerSecretResourceData'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-secretsmanagersecretresourcedata.html'

    hidden [object] $_aRN
    hidden [object] $_additionalStagingLabelsToDownload

    [string] $ARN
    [string[]] $AdditionalStagingLabelsToDownload

    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
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AdditionalStagingLabelsToDownload -Value {
            $this._additionalStagingLabelsToDownload
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._additionalStagingLabelsToDownload = @($value)
        }
    }

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

Write-Verbose "Importing class 'GreengrassSubscriptionDefinitionVersionSubscription'"

class GreengrassSubscriptionDefinitionVersionSubscription : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassSubscriptionDefinitionVersionSubscription'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinitionversion-subscription.html'

    hidden [object] $_target
    hidden [object] $_id
    hidden [object] $_source
    hidden [object] $_subject

    [string] $Target
    [string] $Id
    [string] $Source
    [string] $Subject

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

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

Write-Verbose "Importing class 'GreengrassFunctionDefinitionExecution'"

class GreengrassFunctionDefinitionExecution : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassFunctionDefinitionExecution'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-execution.html'

    hidden [object] $_isolationMode
    hidden [object] $_runAs

    [string] $IsolationMode
    [GreengrassFunctionDefinitionRunAs] $RunAs

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

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionSageMakerMachineLearningModelResourceData'"

class GreengrassResourceDefinitionSageMakerMachineLearningModelResourceData : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionSageMakerMachineLearningModelResourceData'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-sagemakermachinelearningmodelresourcedata.html'

    hidden [object] $_ownerSetting
    hidden [object] $_destinationPath
    hidden [object] $_sageMakerJobArn

    [GreengrassResourceDefinitionResourceDownloadOwnerSetting] $OwnerSetting
    [string] $DestinationPath
    [string] $SageMakerJobArn

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

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

Write-Verbose "Importing class 'GreengrassCoreDefinitionVersionCore'"

class GreengrassCoreDefinitionVersionCore : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassCoreDefinitionVersionCore'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinitionversion-core.html'

    hidden [object] $_syncShadow
    hidden [object] $_thingArn
    hidden [object] $_id
    hidden [object] $_certificateArn

    [bool] $SyncShadow
    [string] $ThingArn
    [string] $Id
    [string] $CertificateArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SyncShadow -Value {
            $this._syncShadow
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._syncShadow = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ThingArn -Value {
            $this._thingArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._thingArn = 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 CertificateArn -Value {
            $this._certificateArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._certificateArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'GreengrassFunctionDefinitionVersionRunAs'"

class GreengrassFunctionDefinitionVersionRunAs : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassFunctionDefinitionVersionRunAs'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-runas.html'

    hidden [object] $_uid
    hidden [object] $_gid

    [int] $Uid
    [int] $Gid

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Uid -Value {
            $this._uid
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._uid = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Gid -Value {
            $this._gid
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._gid = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionVersionSageMakerMachineLearningModelResourceData'"

class GreengrassResourceDefinitionVersionSageMakerMachineLearningModelResourceData : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionVersionSageMakerMachineLearningModelResourceData'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-sagemakermachinelearningmodelresourcedata.html'

    hidden [object] $_ownerSetting
    hidden [object] $_destinationPath
    hidden [object] $_sageMakerJobArn

    [GreengrassResourceDefinitionVersionResourceDownloadOwnerSetting] $OwnerSetting
    [string] $DestinationPath
    [string] $SageMakerJobArn

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

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

Write-Verbose "Importing class 'GreengrassFunctionDefinitionEnvironment'"

class GreengrassFunctionDefinitionEnvironment : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassFunctionDefinitionEnvironment'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-environment.html'

    hidden [VSJson] $_variables
    hidden [object] $_execution
    hidden [object] $_resourceAccessPolicies
    hidden [object] $_accessSysfs

    [VSJson] $Variables
    [GreengrassFunctionDefinitionExecution] $Execution
    [GreengrassFunctionDefinitionResourceAccessPolicy[]] $ResourceAccessPolicies
    [bool] $AccessSysfs

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Variables -Value {
            $this._variables
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._variables = [VSJson]::Transform($value)
            Write-Debug $this._variables
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Execution -Value {
            $this._execution
        } -SecondValue {
            param([ValidateType(([GreengrassFunctionDefinitionExecution], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._execution = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResourceAccessPolicies -Value {
            $this._resourceAccessPolicies
        } -SecondValue {
            param([ValidateType(([GreengrassFunctionDefinitionResourceAccessPolicy], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._resourceAccessPolicies = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AccessSysfs -Value {
            $this._accessSysfs
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._accessSysfs = $value
        }
    }

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

Write-Verbose "Importing class 'GreengrassFunctionDefinitionFunctionDefinitionVersion'"

class GreengrassFunctionDefinitionFunctionDefinitionVersion : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassFunctionDefinitionFunctionDefinitionVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-functiondefinitionversion.html'

    hidden [object] $_defaultConfig
    hidden [object] $_functions

    [GreengrassFunctionDefinitionDefaultConfig] $DefaultConfig
    [GreengrassFunctionDefinitionFunction[]] $Functions

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DefaultConfig -Value {
            $this._defaultConfig
        } -SecondValue {
            param([ValidateType(([GreengrassFunctionDefinitionDefaultConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._defaultConfig = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Functions -Value {
            $this._functions
        } -SecondValue {
            param([ValidateType(([GreengrassFunctionDefinitionFunction], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._functions = $value
        }
    }

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionVersionResourceDownloadOwnerSetting'"

class GreengrassResourceDefinitionVersionResourceDownloadOwnerSetting : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionVersionResourceDownloadOwnerSetting'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedownloadownersetting.html'

    hidden [object] $_groupOwner
    hidden [object] $_groupPermission

    [string] $GroupOwner
    [string] $GroupPermission

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

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

Write-Verbose "Importing class 'GreengrassFunctionDefinitionRunAs'"

class GreengrassFunctionDefinitionRunAs : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassFunctionDefinitionRunAs'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-runas.html'

    hidden [object] $_uid
    hidden [object] $_gid

    [int] $Uid
    [int] $Gid

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Uid -Value {
            $this._uid
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._uid = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Gid -Value {
            $this._gid
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._gid = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'GreengrassDeviceDefinitionVersionDevice'"

class GreengrassDeviceDefinitionVersionDevice : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassDeviceDefinitionVersionDevice'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinitionversion-device.html'

    hidden [object] $_syncShadow
    hidden [object] $_thingArn
    hidden [object] $_id
    hidden [object] $_certificateArn

    [bool] $SyncShadow
    [string] $ThingArn
    [string] $Id
    [string] $CertificateArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SyncShadow -Value {
            $this._syncShadow
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._syncShadow = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ThingArn -Value {
            $this._thingArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._thingArn = 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 CertificateArn -Value {
            $this._certificateArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._certificateArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionGroupOwnerSetting'"

class GreengrassResourceDefinitionGroupOwnerSetting : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionGroupOwnerSetting'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-groupownersetting.html'

    hidden [object] $_autoAddGroupOwner
    hidden [object] $_groupOwner

    [bool] $AutoAddGroupOwner
    [string] $GroupOwner

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

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

Write-Verbose "Importing class 'GreengrassGroupGroupVersion'"

class GreengrassGroupGroupVersion : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassGroupGroupVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-group-groupversion.html'

    hidden [object] $_loggerDefinitionVersionArn
    hidden [object] $_deviceDefinitionVersionArn
    hidden [object] $_functionDefinitionVersionArn
    hidden [object] $_coreDefinitionVersionArn
    hidden [object] $_resourceDefinitionVersionArn
    hidden [object] $_connectorDefinitionVersionArn
    hidden [object] $_subscriptionDefinitionVersionArn

    [string] $LoggerDefinitionVersionArn
    [string] $DeviceDefinitionVersionArn
    [string] $FunctionDefinitionVersionArn
    [string] $CoreDefinitionVersionArn
    [string] $ResourceDefinitionVersionArn
    [string] $ConnectorDefinitionVersionArn
    [string] $SubscriptionDefinitionVersionArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name LoggerDefinitionVersionArn -Value {
            $this._loggerDefinitionVersionArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._loggerDefinitionVersionArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeviceDefinitionVersionArn -Value {
            $this._deviceDefinitionVersionArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._deviceDefinitionVersionArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FunctionDefinitionVersionArn -Value {
            $this._functionDefinitionVersionArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._functionDefinitionVersionArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CoreDefinitionVersionArn -Value {
            $this._coreDefinitionVersionArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._coreDefinitionVersionArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResourceDefinitionVersionArn -Value {
            $this._resourceDefinitionVersionArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._resourceDefinitionVersionArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConnectorDefinitionVersionArn -Value {
            $this._connectorDefinitionVersionArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._connectorDefinitionVersionArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SubscriptionDefinitionVersionArn -Value {
            $this._subscriptionDefinitionVersionArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._subscriptionDefinitionVersionArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'GreengrassFunctionDefinitionVersionEnvironment'"

class GreengrassFunctionDefinitionVersionEnvironment : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassFunctionDefinitionVersionEnvironment'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-environment.html'

    hidden [VSJson] $_variables
    hidden [object] $_execution
    hidden [object] $_resourceAccessPolicies
    hidden [object] $_accessSysfs

    [VSJson] $Variables
    [GreengrassFunctionDefinitionVersionExecution] $Execution
    [GreengrassFunctionDefinitionVersionResourceAccessPolicy[]] $ResourceAccessPolicies
    [bool] $AccessSysfs

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Variables -Value {
            $this._variables
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._variables = [VSJson]::Transform($value)
            Write-Debug $this._variables
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Execution -Value {
            $this._execution
        } -SecondValue {
            param([ValidateType(([GreengrassFunctionDefinitionVersionExecution], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._execution = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResourceAccessPolicies -Value {
            $this._resourceAccessPolicies
        } -SecondValue {
            param([ValidateType(([GreengrassFunctionDefinitionVersionResourceAccessPolicy], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._resourceAccessPolicies = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AccessSysfs -Value {
            $this._accessSysfs
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._accessSysfs = $value
        }
    }

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionLocalDeviceResourceData'"

class GreengrassResourceDefinitionLocalDeviceResourceData : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionLocalDeviceResourceData'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-localdeviceresourcedata.html'

    hidden [object] $_sourcePath
    hidden [object] $_groupOwnerSetting

    [string] $SourcePath
    [GreengrassResourceDefinitionGroupOwnerSetting] $GroupOwnerSetting

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

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

Write-Verbose "Importing class 'GreengrassDeviceDefinitionDevice'"

class GreengrassDeviceDefinitionDevice : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassDeviceDefinitionDevice'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-device.html'

    hidden [object] $_syncShadow
    hidden [object] $_thingArn
    hidden [object] $_id
    hidden [object] $_certificateArn

    [bool] $SyncShadow
    [string] $ThingArn
    [string] $Id
    [string] $CertificateArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SyncShadow -Value {
            $this._syncShadow
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._syncShadow = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ThingArn -Value {
            $this._thingArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._thingArn = 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 CertificateArn -Value {
            $this._certificateArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._certificateArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'GreengrassDeviceDefinitionDeviceDefinitionVersion'"

class GreengrassDeviceDefinitionDeviceDefinitionVersion : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassDeviceDefinitionDeviceDefinitionVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-devicedefinition-devicedefinitionversion.html'

    hidden [object] $_devices

    [GreengrassDeviceDefinitionDevice[]] $Devices

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

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

Write-Verbose "Importing class 'GreengrassSubscriptionDefinitionSubscription'"

class GreengrassSubscriptionDefinitionSubscription : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassSubscriptionDefinitionSubscription'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-subscriptiondefinition-subscription.html'

    hidden [object] $_target
    hidden [object] $_id
    hidden [object] $_source
    hidden [object] $_subject

    [string] $Target
    [string] $Id
    [string] $Source
    [string] $Subject

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

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionResourceDefinitionVersion'"

class GreengrassResourceDefinitionResourceDefinitionVersion : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionResourceDefinitionVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedefinitionversion.html'

    hidden [object] $_resources

    [GreengrassResourceDefinitionResourceInstance[]] $Resources

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

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

Write-Verbose "Importing class 'GreengrassCoreDefinitionCoreDefinitionVersion'"

class GreengrassCoreDefinitionCoreDefinitionVersion : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassCoreDefinitionCoreDefinitionVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-coredefinition-coredefinitionversion.html'

    hidden [object] $_cores

    [GreengrassCoreDefinitionCore[]] $Cores

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

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionVersionS3MachineLearningModelResourceData'"

class GreengrassResourceDefinitionVersionS3MachineLearningModelResourceData : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionVersionS3MachineLearningModelResourceData'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-s3machinelearningmodelresourcedata.html'

    hidden [object] $_ownerSetting
    hidden [object] $_destinationPath
    hidden [object] $_s3Uri

    [GreengrassResourceDefinitionVersionResourceDownloadOwnerSetting] $OwnerSetting
    [string] $DestinationPath
    [string] $S3Uri

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

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionLocalVolumeResourceData'"

class GreengrassResourceDefinitionLocalVolumeResourceData : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionLocalVolumeResourceData'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-localvolumeresourcedata.html'

    hidden [object] $_sourcePath
    hidden [object] $_destinationPath
    hidden [object] $_groupOwnerSetting

    [string] $SourcePath
    [string] $DestinationPath
    [GreengrassResourceDefinitionGroupOwnerSetting] $GroupOwnerSetting

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

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionResourceInstance'"

class GreengrassResourceDefinitionResourceInstance : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionResourceInstance'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourceinstance.html'

    hidden [object] $_resourceDataContainer
    hidden [object] $_id
    hidden [object] $_name

    [GreengrassResourceDefinitionResourceDataContainer] $ResourceDataContainer
    [string] $Id
    [string] $Name

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

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

Write-Verbose "Importing class 'GreengrassFunctionDefinitionFunction'"

class GreengrassFunctionDefinitionFunction : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassFunctionDefinitionFunction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-function.html'

    hidden [object] $_functionArn
    hidden [object] $_functionConfiguration
    hidden [object] $_id

    [string] $FunctionArn
    [GreengrassFunctionDefinitionFunctionConfiguration] $FunctionConfiguration
    [string] $Id

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

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionVersionResourceDataContainer'"

class GreengrassResourceDefinitionVersionResourceDataContainer : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionVersionResourceDataContainer'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-resourcedatacontainer.html'

    hidden [object] $_secretsManagerSecretResourceData
    hidden [object] $_sageMakerMachineLearningModelResourceData
    hidden [object] $_localVolumeResourceData
    hidden [object] $_localDeviceResourceData
    hidden [object] $_s3MachineLearningModelResourceData

    [GreengrassResourceDefinitionVersionSecretsManagerSecretResourceData] $SecretsManagerSecretResourceData
    [GreengrassResourceDefinitionVersionSageMakerMachineLearningModelResourceData] $SageMakerMachineLearningModelResourceData
    [GreengrassResourceDefinitionVersionLocalVolumeResourceData] $LocalVolumeResourceData
    [GreengrassResourceDefinitionVersionLocalDeviceResourceData] $LocalDeviceResourceData
    [GreengrassResourceDefinitionVersionS3MachineLearningModelResourceData] $S3MachineLearningModelResourceData

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretsManagerSecretResourceData -Value {
            $this._secretsManagerSecretResourceData
        } -SecondValue {
            param([ValidateType(([GreengrassResourceDefinitionVersionSecretsManagerSecretResourceData], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretsManagerSecretResourceData = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SageMakerMachineLearningModelResourceData -Value {
            $this._sageMakerMachineLearningModelResourceData
        } -SecondValue {
            param([ValidateType(([GreengrassResourceDefinitionVersionSageMakerMachineLearningModelResourceData], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sageMakerMachineLearningModelResourceData = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LocalVolumeResourceData -Value {
            $this._localVolumeResourceData
        } -SecondValue {
            param([ValidateType(([GreengrassResourceDefinitionVersionLocalVolumeResourceData], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._localVolumeResourceData = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LocalDeviceResourceData -Value {
            $this._localDeviceResourceData
        } -SecondValue {
            param([ValidateType(([GreengrassResourceDefinitionVersionLocalDeviceResourceData], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._localDeviceResourceData = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3MachineLearningModelResourceData -Value {
            $this._s3MachineLearningModelResourceData
        } -SecondValue {
            param([ValidateType(([GreengrassResourceDefinitionVersionS3MachineLearningModelResourceData], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3MachineLearningModelResourceData = $value
        }
    }

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

Write-Verbose "Importing class 'GreengrassFunctionDefinitionResourceAccessPolicy'"

class GreengrassFunctionDefinitionResourceAccessPolicy : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassFunctionDefinitionResourceAccessPolicy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinition-resourceaccesspolicy.html'

    hidden [object] $_resourceId
    hidden [object] $_permission

    [string] $ResourceId
    [string] $Permission

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

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionVersionGroupOwnerSetting'"

class GreengrassResourceDefinitionVersionGroupOwnerSetting : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionVersionGroupOwnerSetting'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinitionversion-groupownersetting.html'

    hidden [object] $_autoAddGroupOwner
    hidden [object] $_groupOwner

    [bool] $AutoAddGroupOwner
    [string] $GroupOwner

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

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionResourceDataContainer'"

class GreengrassResourceDefinitionResourceDataContainer : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassResourceDefinitionResourceDataContainer'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-resourcedefinition-resourcedatacontainer.html'

    hidden [object] $_secretsManagerSecretResourceData
    hidden [object] $_sageMakerMachineLearningModelResourceData
    hidden [object] $_localVolumeResourceData
    hidden [object] $_localDeviceResourceData
    hidden [object] $_s3MachineLearningModelResourceData

    [GreengrassResourceDefinitionSecretsManagerSecretResourceData] $SecretsManagerSecretResourceData
    [GreengrassResourceDefinitionSageMakerMachineLearningModelResourceData] $SageMakerMachineLearningModelResourceData
    [GreengrassResourceDefinitionLocalVolumeResourceData] $LocalVolumeResourceData
    [GreengrassResourceDefinitionLocalDeviceResourceData] $LocalDeviceResourceData
    [GreengrassResourceDefinitionS3MachineLearningModelResourceData] $S3MachineLearningModelResourceData

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretsManagerSecretResourceData -Value {
            $this._secretsManagerSecretResourceData
        } -SecondValue {
            param([ValidateType(([GreengrassResourceDefinitionSecretsManagerSecretResourceData], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._secretsManagerSecretResourceData = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SageMakerMachineLearningModelResourceData -Value {
            $this._sageMakerMachineLearningModelResourceData
        } -SecondValue {
            param([ValidateType(([GreengrassResourceDefinitionSageMakerMachineLearningModelResourceData], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sageMakerMachineLearningModelResourceData = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LocalVolumeResourceData -Value {
            $this._localVolumeResourceData
        } -SecondValue {
            param([ValidateType(([GreengrassResourceDefinitionLocalVolumeResourceData], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._localVolumeResourceData = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LocalDeviceResourceData -Value {
            $this._localDeviceResourceData
        } -SecondValue {
            param([ValidateType(([GreengrassResourceDefinitionLocalDeviceResourceData], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._localDeviceResourceData = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3MachineLearningModelResourceData -Value {
            $this._s3MachineLearningModelResourceData
        } -SecondValue {
            param([ValidateType(([GreengrassResourceDefinitionS3MachineLearningModelResourceData], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3MachineLearningModelResourceData = $value
        }
    }

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

Write-Verbose "Importing class 'GreengrassFunctionDefinitionVersionResourceAccessPolicy'"

class GreengrassFunctionDefinitionVersionResourceAccessPolicy : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassFunctionDefinitionVersionResourceAccessPolicy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-functiondefinitionversion-resourceaccesspolicy.html'

    hidden [object] $_resourceId
    hidden [object] $_permission

    [string] $ResourceId
    [string] $Permission

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

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

Write-Verbose "Importing class 'GreengrassLoggerDefinitionLoggerDefinitionVersion'"

class GreengrassLoggerDefinitionLoggerDefinitionVersion : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassLoggerDefinitionLoggerDefinitionVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-loggerdefinition-loggerdefinitionversion.html'

    hidden [object] $_loggers

    [GreengrassLoggerDefinitionLogger[]] $Loggers

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

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

Write-Verbose "Importing class 'GreengrassConnectorDefinitionVersionConnector'"

class GreengrassConnectorDefinitionVersionConnector : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSGreengrassConnectorDefinitionVersionConnector'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-greengrass-connectordefinitionversion-connector.html'

    hidden [object] $_connectorArn
    hidden [VSJson] $_parameters
    hidden [object] $_id

    [string] $ConnectorArn
    [VSJson] $Parameters
    [string] $Id

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConnectorArn -Value {
            $this._connectorArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._connectorArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Parameters -Value {
            $this._parameters
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._parameters = [VSJson]::Transform($value)
            Write-Debug $this._parameters
        }
        $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
            }
        }
    }

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

Write-Verbose "Importing class 'GreengrassConnectorDefinitionVersion'"

class GreengrassConnectorDefinitionVersion : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGreengrassConnectorDefinitionVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinitionversion.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Greengrass::ConnectorDefinitionVersion'
    [GreengrassConnectorDefinitionVersionConnector[]] $Connectors
    [string] $ConnectorDefinitionId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Connectors -Value {
            $this.Properties['Connectors']
        } -SecondValue {
            param([ValidateType(([GreengrassConnectorDefinitionVersionConnector], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Connectors'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConnectorDefinitionId -Value {
            $this.Properties['ConnectorDefinitionId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ConnectorDefinitionId'] = 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
        }
    }

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

Write-Verbose "Importing class 'GreengrassResourceDefinition'"

class GreengrassResourceDefinition : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGreengrassResourceDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinition.html'

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

    [string] $Type = 'AWS::Greengrass::ResourceDefinition'
    [GreengrassResourceDefinitionResourceDefinitionVersion] $InitialVersion
    [VSJson] $Tags
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name InitialVersion -Value {
            $this.Properties['InitialVersion']
        } -SecondValue {
            param([ValidateType(([GreengrassResourceDefinitionResourceDefinitionVersion], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['InitialVersion'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['Tags'] = [VSJson]::Transform($value)
            Write-Debug $this.Properties['Tags']
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this.Properties['Name']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Name'] = 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
        }
    }

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

Write-Verbose "Importing class 'GreengrassDeviceDefinition'"

class GreengrassDeviceDefinition : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGreengrassDeviceDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinition.html'

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

    [string] $Type = 'AWS::Greengrass::DeviceDefinition'
    [GreengrassDeviceDefinitionDeviceDefinitionVersion] $InitialVersion
    [VSJson] $Tags
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name InitialVersion -Value {
            $this.Properties['InitialVersion']
        } -SecondValue {
            param([ValidateType(([GreengrassDeviceDefinitionDeviceDefinitionVersion], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['InitialVersion'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['Tags'] = [VSJson]::Transform($value)
            Write-Debug $this.Properties['Tags']
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this.Properties['Name']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Name'] = 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
        }
    }

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

Write-Verbose "Importing class 'GreengrassLoggerDefinitionVersion'"

class GreengrassLoggerDefinitionVersion : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGreengrassLoggerDefinitionVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinitionversion.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Greengrass::LoggerDefinitionVersion'
    [string] $LoggerDefinitionId
    [GreengrassLoggerDefinitionVersionLogger[]] $Loggers
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'GreengrassFunctionDefinitionVersion'"

class GreengrassFunctionDefinitionVersion : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGreengrassFunctionDefinitionVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinitionversion.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Greengrass::FunctionDefinitionVersion'
    [GreengrassFunctionDefinitionVersionDefaultConfig] $DefaultConfig
    [GreengrassFunctionDefinitionVersionFunction[]] $Functions
    [string] $FunctionDefinitionId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name DefaultConfig -Value {
            $this.Properties['DefaultConfig']
        } -SecondValue {
            param([ValidateType(([GreengrassFunctionDefinitionVersionDefaultConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DefaultConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Functions -Value {
            $this.Properties['Functions']
        } -SecondValue {
            param([ValidateType(([GreengrassFunctionDefinitionVersionFunction], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Functions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FunctionDefinitionId -Value {
            $this.Properties['FunctionDefinitionId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FunctionDefinitionId'] = 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
        }
    }

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

Write-Verbose "Importing class 'GreengrassGroup'"

class GreengrassGroup : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGreengrassGroup'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-group.html'

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

    [string] $Type = 'AWS::Greengrass::Group'
    [GreengrassGroupGroupVersion] $InitialVersion
    [string] $RoleArn
    [VSJson] $Tags
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'GreengrassConnectorDefinition'"

class GreengrassConnectorDefinition : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGreengrassConnectorDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-connectordefinition.html'

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

    [string] $Type = 'AWS::Greengrass::ConnectorDefinition'
    [GreengrassConnectorDefinitionConnectorDefinitionVersion] $InitialVersion
    [VSJson] $Tags
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name InitialVersion -Value {
            $this.Properties['InitialVersion']
        } -SecondValue {
            param([ValidateType(([GreengrassConnectorDefinitionConnectorDefinitionVersion], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['InitialVersion'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['Tags'] = [VSJson]::Transform($value)
            Write-Debug $this.Properties['Tags']
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this.Properties['Name']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Name'] = 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
        }
    }

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

Write-Verbose "Importing class 'GreengrassFunctionDefinition'"

class GreengrassFunctionDefinition : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGreengrassFunctionDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-functiondefinition.html'

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

    [string] $Type = 'AWS::Greengrass::FunctionDefinition'
    [GreengrassFunctionDefinitionFunctionDefinitionVersion] $InitialVersion
    [VSJson] $Tags
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name InitialVersion -Value {
            $this.Properties['InitialVersion']
        } -SecondValue {
            param([ValidateType(([GreengrassFunctionDefinitionFunctionDefinitionVersion], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['InitialVersion'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['Tags'] = [VSJson]::Transform($value)
            Write-Debug $this.Properties['Tags']
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this.Properties['Name']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Name'] = 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
        }
    }

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

Write-Verbose "Importing class 'GreengrassSubscriptionDefinitionVersion'"

class GreengrassSubscriptionDefinitionVersion : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGreengrassSubscriptionDefinitionVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinitionversion.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Greengrass::SubscriptionDefinitionVersion'
    [string] $SubscriptionDefinitionId
    [GreengrassSubscriptionDefinitionVersionSubscription[]] $Subscriptions
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'GreengrassCoreDefinitionVersion'"

class GreengrassCoreDefinitionVersion : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGreengrassCoreDefinitionVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinitionversion.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Greengrass::CoreDefinitionVersion'
    [GreengrassCoreDefinitionVersionCore[]] $Cores
    [string] $CoreDefinitionId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Cores -Value {
            $this.Properties['Cores']
        } -SecondValue {
            param([ValidateType(([GreengrassCoreDefinitionVersionCore], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Cores'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CoreDefinitionId -Value {
            $this.Properties['CoreDefinitionId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CoreDefinitionId'] = 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
        }
    }

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

Write-Verbose "Importing class 'GreengrassLoggerDefinition'"

class GreengrassLoggerDefinition : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGreengrassLoggerDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-loggerdefinition.html'

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

    [string] $Type = 'AWS::Greengrass::LoggerDefinition'
    [GreengrassLoggerDefinitionLoggerDefinitionVersion] $InitialVersion
    [VSJson] $Tags
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name InitialVersion -Value {
            $this.Properties['InitialVersion']
        } -SecondValue {
            param([ValidateType(([GreengrassLoggerDefinitionLoggerDefinitionVersion], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['InitialVersion'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['Tags'] = [VSJson]::Transform($value)
            Write-Debug $this.Properties['Tags']
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this.Properties['Name']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Name'] = 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
        }
    }

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

Write-Verbose "Importing class 'GreengrassCoreDefinition'"

class GreengrassCoreDefinition : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGreengrassCoreDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-coredefinition.html'

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

    [string] $Type = 'AWS::Greengrass::CoreDefinition'
    [GreengrassCoreDefinitionCoreDefinitionVersion] $InitialVersion
    [VSJson] $Tags
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name InitialVersion -Value {
            $this.Properties['InitialVersion']
        } -SecondValue {
            param([ValidateType(([GreengrassCoreDefinitionCoreDefinitionVersion], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['InitialVersion'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['Tags'] = [VSJson]::Transform($value)
            Write-Debug $this.Properties['Tags']
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this.Properties['Name']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Name'] = 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
        }
    }

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

Write-Verbose "Importing class 'GreengrassDeviceDefinitionVersion'"

class GreengrassDeviceDefinitionVersion : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGreengrassDeviceDefinitionVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-devicedefinitionversion.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Greengrass::DeviceDefinitionVersion'
    [string] $DeviceDefinitionId
    [GreengrassDeviceDefinitionVersionDevice[]] $Devices
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'GreengrassSubscriptionDefinition'"

class GreengrassSubscriptionDefinition : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGreengrassSubscriptionDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-subscriptiondefinition.html'

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

    [string] $Type = 'AWS::Greengrass::SubscriptionDefinition'
    [GreengrassSubscriptionDefinitionSubscriptionDefinitionVersion] $InitialVersion
    [VSJson] $Tags
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name InitialVersion -Value {
            $this.Properties['InitialVersion']
        } -SecondValue {
            param([ValidateType(([GreengrassSubscriptionDefinitionSubscriptionDefinitionVersion], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['InitialVersion'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['Tags'] = [VSJson]::Transform($value)
            Write-Debug $this.Properties['Tags']
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this.Properties['Name']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Name'] = 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
        }
    }

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

Write-Verbose "Importing class 'GreengrassResourceDefinitionVersion'"

class GreengrassResourceDefinitionVersion : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGreengrassResourceDefinitionVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-resourcedefinitionversion.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Greengrass::ResourceDefinitionVersion'
    [GreengrassResourceDefinitionVersionResourceInstance[]] $Resources
    [string] $ResourceDefinitionId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Resources -Value {
            $this.Properties['Resources']
        } -SecondValue {
            param([ValidateType(([GreengrassResourceDefinitionVersionResourceInstance], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Resources'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResourceDefinitionId -Value {
            $this.Properties['ResourceDefinitionId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ResourceDefinitionId'] = 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
        }
    }

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

Write-Verbose "Importing class 'GreengrassGroupVersion'"

class GreengrassGroupVersion : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSGreengrassGroupVersion'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-greengrass-groupversion.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Greengrass::GroupVersion'
    [string] $LoggerDefinitionVersionArn
    [string] $DeviceDefinitionVersionArn
    [string] $FunctionDefinitionVersionArn
    [string] $CoreDefinitionVersionArn
    [string] $ResourceDefinitionVersionArn
    [string] $ConnectorDefinitionVersionArn
    [string] $SubscriptionDefinitionVersionArn
    [string] $GroupId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name LoggerDefinitionVersionArn -Value {
            $this.Properties['LoggerDefinitionVersionArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LoggerDefinitionVersionArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeviceDefinitionVersionArn -Value {
            $this.Properties['DeviceDefinitionVersionArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DeviceDefinitionVersionArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FunctionDefinitionVersionArn -Value {
            $this.Properties['FunctionDefinitionVersionArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FunctionDefinitionVersionArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CoreDefinitionVersionArn -Value {
            $this.Properties['CoreDefinitionVersionArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CoreDefinitionVersionArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResourceDefinitionVersionArn -Value {
            $this.Properties['ResourceDefinitionVersionArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ResourceDefinitionVersionArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConnectorDefinitionVersionArn -Value {
            $this.Properties['ConnectorDefinitionVersionArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ConnectorDefinitionVersionArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SubscriptionDefinitionVersionArn -Value {
            $this.Properties['SubscriptionDefinitionVersionArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SubscriptionDefinitionVersionArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name GroupId -Value {
            $this.Properties['GroupId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['GroupId'] = 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
        }
    }

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