VaporShell.ECS.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 'ECSClusterCapacityProviderAssociationsCapacityProviderStrategy'"

class ECSClusterCapacityProviderAssociationsCapacityProviderStrategy : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSClusterCapacityProviderAssociationsCapacityProviderStrategy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-clustercapacityproviderassociations-capacityproviderstrategy.html'

    hidden [object] $_base
    hidden [object] $_weight
    hidden [object] $_capacityProvider

    [int] $Base
    [int] $Weight
    [string] $CapacityProvider

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Base -Value {
            $this._base
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._base = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Weight -Value {
            $this._weight
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._weight = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CapacityProvider -Value {
            $this._capacityProvider
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._capacityProvider = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ECSTaskDefinitionLogConfiguration'"

class ECSTaskDefinitionLogConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionLogConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-logconfiguration.html'

    hidden [object] $_logDriver
    hidden [object] $_options
    hidden [object] $_secretOptions

    [string] $LogDriver
    [string] $Options
    [ECSTaskDefinitionSecret[]] $SecretOptions

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionFirelensConfiguration'"

class ECSTaskDefinitionFirelensConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionFirelensConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-firelensconfiguration.html'

    hidden [object] $_type
    hidden [object] $_options

    [string] $Type
    [string] $Options

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionDevice'"

class ECSTaskDefinitionDevice : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionDevice'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-device.html'

    hidden [object] $_containerPath
    hidden [object] $_hostPath
    hidden [object] $_permissions

    [string] $ContainerPath
    [string] $HostPath
    [string[]] $Permissions

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

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

Write-Verbose "Importing class 'ECSServicePlacementStrategy'"

class ECSServicePlacementStrategy : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSServicePlacementStrategy'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementstrategy.html'

    hidden [object] $_field
    hidden [object] $_type

    [string] $Field
    [string] $Type

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionEFSVolumeConfiguration'"

class ECSTaskDefinitionEFSVolumeConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionEFSVolumeConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-efsvolumeconfiguration.html'

    hidden [object] $_filesystemId
    hidden [object] $_rootDirectory
    hidden [object] $_transitEncryption
    hidden [object] $_transitEncryptionPort
    hidden [VSJson] $_authorizationConfig

    [string] $FilesystemId
    [string] $RootDirectory
    [string] $TransitEncryption
    [int] $TransitEncryptionPort
    [VSJson] $AuthorizationConfig

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name FilesystemId -Value {
            $this._filesystemId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._filesystemId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RootDirectory -Value {
            $this._rootDirectory
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._rootDirectory = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TransitEncryption -Value {
            $this._transitEncryption
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._transitEncryption = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TransitEncryptionPort -Value {
            $this._transitEncryptionPort
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._transitEncryptionPort = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AuthorizationConfig -Value {
            $this._authorizationConfig
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._authorizationConfig = [VSJson]::Transform($value)
            Write-Debug $this._authorizationConfig
        }
    }

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

Write-Verbose "Importing class 'ECSServiceDeploymentController'"

class ECSServiceDeploymentController : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSServiceDeploymentController'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentcontroller.html'

    hidden [object] $_type

    [string] $Type

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionSystemControl'"

class ECSTaskDefinitionSystemControl : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionSystemControl'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-systemcontrol.html'

    hidden [object] $_namespace
    hidden [object] $_value

    [string] $Namespace
    [string] $Value

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

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

Write-Verbose "Importing class 'ECSTaskSetNetworkConfiguration'"

class ECSTaskSetNetworkConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskSetNetworkConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-networkconfiguration.html'

    hidden [object] $_awsVpcConfiguration

    [ECSTaskSetAwsVpcConfiguration] $AwsVpcConfiguration

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

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

Write-Verbose "Importing class 'ECSClusterClusterSettings'"

class ECSClusterClusterSettings : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSClusterClusterSettings'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clustersettings.html'

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

    [string] $Name
    [string] $Value

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

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

Write-Verbose "Importing class 'ECSServicePlacementConstraint'"

class ECSServicePlacementConstraint : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSServicePlacementConstraint'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-placementconstraint.html'

    hidden [object] $_expression
    hidden [object] $_type

    [string] $Expression
    [string] $Type

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

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

Write-Verbose "Importing class 'ECSTaskSetServiceRegistry'"

class ECSTaskSetServiceRegistry : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskSetServiceRegistry'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-serviceregistry.html'

    hidden [object] $_containerName
    hidden [object] $_containerPort
    hidden [object] $_port
    hidden [object] $_registryArn

    [string] $ContainerName
    [int] $ContainerPort
    [int] $Port
    [string] $RegistryArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContainerName -Value {
            $this._containerName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._containerName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContainerPort -Value {
            $this._containerPort
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._containerPort = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Port -Value {
            $this._port
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._port = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RegistryArn -Value {
            $this._registryArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._registryArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ECSTaskDefinitionEphemeralStorage'"

class ECSTaskDefinitionEphemeralStorage : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionEphemeralStorage'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-ephemeralstorage.html'

    hidden [object] $_sizeInGiB

    [int] $SizeInGiB

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionResourceRequirement'"

class ECSTaskDefinitionResourceRequirement : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionResourceRequirement'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-resourcerequirement.html'

    hidden [object] $_type
    hidden [object] $_value

    [string] $Type
    [string] $Value

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionDockerVolumeConfiguration'"

class ECSTaskDefinitionDockerVolumeConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionDockerVolumeConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-dockervolumeconfiguration.html'

    hidden [object] $_autoprovision
    hidden [object] $_driver
    hidden [object] $_driverOpts
    hidden [object] $_labels
    hidden [object] $_scope

    [bool] $Autoprovision
    [string] $Driver
    [string] $DriverOpts
    [string] $Labels
    [string] $Scope

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Autoprovision -Value {
            $this._autoprovision
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._autoprovision = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Driver -Value {
            $this._driver
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._driver = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DriverOpts -Value {
            $this._driverOpts
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._driverOpts = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Labels -Value {
            $this._labels
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._labels = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Scope -Value {
            $this._scope
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._scope = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ECSTaskDefinitionAuthorizationConfig'"

class ECSTaskDefinitionAuthorizationConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionAuthorizationConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-authorizationconfig.html'

    hidden [object] $_iAM
    hidden [object] $_accessPointId

    [string] $IAM
    [string] $AccessPointId

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionMountPoint'"

class ECSTaskDefinitionMountPoint : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionMountPoint'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-mountpoints.html'

    hidden [object] $_containerPath
    hidden [object] $_readOnly
    hidden [object] $_sourceVolume

    [string] $ContainerPath
    [bool] $ReadOnly
    [string] $SourceVolume

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionKernelCapabilities'"

class ECSTaskDefinitionKernelCapabilities : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionKernelCapabilities'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-kernelcapabilities.html'

    hidden [object] $_add
    hidden [object] $_drop

    [string[]] $Add
    [string[]] $Drop

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

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

Write-Verbose "Importing class 'ECSCapacityProviderAutoScalingGroupProvider'"

class ECSCapacityProviderAutoScalingGroupProvider : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSCapacityProviderAutoScalingGroupProvider'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-autoscalinggroupprovider.html'

    hidden [object] $_autoScalingGroupArn
    hidden [object] $_managedScaling
    hidden [object] $_managedTerminationProtection

    [string] $AutoScalingGroupArn
    [ECSCapacityProviderManagedScaling] $ManagedScaling
    [string] $ManagedTerminationProtection

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionPortMapping'"

class ECSTaskDefinitionPortMapping : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionPortMapping'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-portmappings.html'

    hidden [object] $_containerPort
    hidden [object] $_hostPort
    hidden [object] $_protocol

    [int] $ContainerPort
    [int] $HostPort
    [string] $Protocol

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContainerPort -Value {
            $this._containerPort
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._containerPort = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HostPort -Value {
            $this._hostPort
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._hostPort = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Protocol -Value {
            $this._protocol
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._protocol = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ECSTaskDefinitionUlimit'"

class ECSTaskDefinitionUlimit : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionUlimit'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-ulimit.html'

    hidden [object] $_hardLimit
    hidden [object] $_name
    hidden [object] $_softLimit

    [int] $HardLimit
    [string] $Name
    [int] $SoftLimit

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionContainerDependency'"

class ECSTaskDefinitionContainerDependency : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionContainerDependency'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdependency.html'

    hidden [object] $_containerName
    hidden [object] $_condition

    [string] $ContainerName
    [string] $Condition

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionHostVolumeProperties'"

class ECSTaskDefinitionHostVolumeProperties : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionHostVolumeProperties'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes-host.html'

    hidden [object] $_sourcePath

    [string] $SourcePath

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionRepositoryCredentials'"

class ECSTaskDefinitionRepositoryCredentials : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionRepositoryCredentials'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-repositorycredentials.html'

    hidden [object] $_credentialsParameter

    [string] $CredentialsParameter

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

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

Write-Verbose "Importing class 'ECSTaskSetLoadBalancer'"

class ECSTaskSetLoadBalancer : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskSetLoadBalancer'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-loadbalancer.html'

    hidden [object] $_containerName
    hidden [object] $_containerPort
    hidden [object] $_loadBalancerName
    hidden [object] $_targetGroupArn

    [string] $ContainerName
    [int] $ContainerPort
    [string] $LoadBalancerName
    [string] $TargetGroupArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContainerName -Value {
            $this._containerName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._containerName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContainerPort -Value {
            $this._containerPort
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._containerPort = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LoadBalancerName -Value {
            $this._loadBalancerName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._loadBalancerName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetGroupArn -Value {
            $this._targetGroupArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._targetGroupArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ECSClusterExecuteCommandLogConfiguration'"

class ECSClusterExecuteCommandLogConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSClusterExecuteCommandLogConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandlogconfiguration.html'

    hidden [object] $_cloudWatchLogGroupName
    hidden [object] $_cloudWatchEncryptionEnabled
    hidden [object] $_s3BucketName
    hidden [object] $_s3EncryptionEnabled
    hidden [object] $_s3KeyPrefix

    [string] $CloudWatchLogGroupName
    [bool] $CloudWatchEncryptionEnabled
    [string] $S3BucketName
    [bool] $S3EncryptionEnabled
    [string] $S3KeyPrefix

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CloudWatchLogGroupName -Value {
            $this._cloudWatchLogGroupName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cloudWatchLogGroupName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CloudWatchEncryptionEnabled -Value {
            $this._cloudWatchEncryptionEnabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cloudWatchEncryptionEnabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3BucketName -Value {
            $this._s3BucketName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3BucketName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3EncryptionEnabled -Value {
            $this._s3EncryptionEnabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3EncryptionEnabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name S3KeyPrefix -Value {
            $this._s3KeyPrefix
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._s3KeyPrefix = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ECSServiceLoadBalancer'"

class ECSServiceLoadBalancer : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSServiceLoadBalancer'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-loadbalancer.html'

    hidden [object] $_containerName
    hidden [object] $_containerPort
    hidden [object] $_loadBalancerName
    hidden [object] $_targetGroupArn

    [string] $ContainerName
    [int] $ContainerPort
    [string] $LoadBalancerName
    [string] $TargetGroupArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContainerName -Value {
            $this._containerName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._containerName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContainerPort -Value {
            $this._containerPort
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._containerPort = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LoadBalancerName -Value {
            $this._loadBalancerName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._loadBalancerName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetGroupArn -Value {
            $this._targetGroupArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._targetGroupArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ECSTaskDefinitionInferenceAccelerator'"

class ECSTaskDefinitionInferenceAccelerator : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionInferenceAccelerator'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-inferenceaccelerator.html'

    hidden [object] $_deviceName
    hidden [object] $_deviceType

    [string] $DeviceName
    [string] $DeviceType

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionSecret'"

class ECSTaskDefinitionSecret : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionSecret'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-secret.html'

    hidden [object] $_name
    hidden [object] $_valueFrom

    [string] $Name
    [string] $ValueFrom

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

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

Write-Verbose "Importing class 'ECSClusterExecuteCommandConfiguration'"

class ECSClusterExecuteCommandConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSClusterExecuteCommandConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-executecommandconfiguration.html'

    hidden [object] $_kmsKeyId
    hidden [object] $_logging
    hidden [object] $_logConfiguration

    [string] $KmsKeyId
    [string] $Logging
    [ECSClusterExecuteCommandLogConfiguration] $LogConfiguration

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

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

Write-Verbose "Importing class 'ECSTaskSetAwsVpcConfiguration'"

class ECSTaskSetAwsVpcConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskSetAwsVpcConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-awsvpcconfiguration.html'

    hidden [object] $_assignPublicIp
    hidden [object] $_securityGroups
    hidden [object] $_subnets

    [string] $AssignPublicIp
    [string[]] $SecurityGroups
    [string[]] $Subnets

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionEnvironmentFile'"

class ECSTaskDefinitionEnvironmentFile : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionEnvironmentFile'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-environmentfile.html'

    hidden [object] $_value
    hidden [object] $_type

    [string] $Value
    [string] $Type

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionVolumeFrom'"

class ECSTaskDefinitionVolumeFrom : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionVolumeFrom'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-volumesfrom.html'

    hidden [object] $_readOnly
    hidden [object] $_sourceContainer

    [bool] $ReadOnly
    [string] $SourceContainer

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionHostEntry'"

class ECSTaskDefinitionHostEntry : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionHostEntry'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-hostentry.html'

    hidden [object] $_hostname
    hidden [object] $_ipAddress

    [string] $Hostname
    [string] $IpAddress

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionTaskDefinitionPlacementConstraint'"

class ECSTaskDefinitionTaskDefinitionPlacementConstraint : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionTaskDefinitionPlacementConstraint'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-taskdefinitionplacementconstraint.html'

    hidden [object] $_type
    hidden [object] $_expression

    [string] $Type
    [string] $Expression

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

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

Write-Verbose "Importing class 'ECSServiceDeploymentConfiguration'"

class ECSServiceDeploymentConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSServiceDeploymentConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentconfiguration.html'

    hidden [object] $_deploymentCircuitBreaker
    hidden [object] $_maximumPercent
    hidden [object] $_minimumHealthyPercent

    [ECSServiceDeploymentCircuitBreaker] $DeploymentCircuitBreaker
    [int] $MaximumPercent
    [int] $MinimumHealthyPercent

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeploymentCircuitBreaker -Value {
            $this._deploymentCircuitBreaker
        } -SecondValue {
            param([ValidateType(([ECSServiceDeploymentCircuitBreaker], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._deploymentCircuitBreaker = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaximumPercent -Value {
            $this._maximumPercent
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._maximumPercent = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MinimumHealthyPercent -Value {
            $this._minimumHealthyPercent
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._minimumHealthyPercent = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ECSTaskDefinitionVolume'"

class ECSTaskDefinitionVolume : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionVolume'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-volumes.html'

    hidden [object] $_dockerVolumeConfiguration
    hidden [object] $_eFSVolumeConfiguration
    hidden [object] $_host
    hidden [object] $_name

    [ECSTaskDefinitionDockerVolumeConfiguration] $DockerVolumeConfiguration
    [ECSTaskDefinitionEFSVolumeConfiguration] $EFSVolumeConfiguration
    [ECSTaskDefinitionHostVolumeProperties] $Host
    [string] $Name

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name DockerVolumeConfiguration -Value {
            $this._dockerVolumeConfiguration
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionDockerVolumeConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dockerVolumeConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EFSVolumeConfiguration -Value {
            $this._eFSVolumeConfiguration
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionEFSVolumeConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._eFSVolumeConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Host -Value {
            $this._host
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionHostVolumeProperties], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._host = $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
            }
        }
    }

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

Write-Verbose "Importing class 'ECSCapacityProviderManagedScaling'"

class ECSCapacityProviderManagedScaling : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSCapacityProviderManagedScaling'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html'

    hidden [object] $_minimumScalingStepSize
    hidden [object] $_maximumScalingStepSize
    hidden [object] $_status
    hidden [object] $_targetCapacity
    hidden [object] $_instanceWarmupPeriod

    [int] $MinimumScalingStepSize
    [int] $MaximumScalingStepSize
    [string] $Status
    [int] $TargetCapacity
    [int] $InstanceWarmupPeriod

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name MinimumScalingStepSize -Value {
            $this._minimumScalingStepSize
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._minimumScalingStepSize = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaximumScalingStepSize -Value {
            $this._maximumScalingStepSize
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._maximumScalingStepSize = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Status -Value {
            $this._status
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._status = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetCapacity -Value {
            $this._targetCapacity
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._targetCapacity = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InstanceWarmupPeriod -Value {
            $this._instanceWarmupPeriod
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._instanceWarmupPeriod = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ECSServiceAwsVpcConfiguration'"

class ECSServiceAwsVpcConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSServiceAwsVpcConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-awsvpcconfiguration.html'

    hidden [object] $_assignPublicIp
    hidden [object] $_securityGroups
    hidden [object] $_subnets

    [string] $AssignPublicIp
    [string[]] $SecurityGroups
    [string[]] $Subnets

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

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

Write-Verbose "Importing class 'ECSServiceNetworkConfiguration'"

class ECSServiceNetworkConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSServiceNetworkConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-networkconfiguration.html'

    hidden [object] $_awsvpcConfiguration

    [ECSServiceAwsVpcConfiguration] $AwsvpcConfiguration

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionTmpfs'"

class ECSTaskDefinitionTmpfs : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionTmpfs'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-tmpfs.html'

    hidden [object] $_containerPath
    hidden [object] $_mountOptions
    hidden [object] $_size

    [string] $ContainerPath
    [string[]] $MountOptions
    [int] $Size

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContainerPath -Value {
            $this._containerPath
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._containerPath = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MountOptions -Value {
            $this._mountOptions
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._mountOptions = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Size -Value {
            $this._size
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._size = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ECSServiceCapacityProviderStrategyItem'"

class ECSServiceCapacityProviderStrategyItem : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSServiceCapacityProviderStrategyItem'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-capacityproviderstrategyitem.html'

    hidden [object] $_base
    hidden [object] $_capacityProvider
    hidden [object] $_weight

    [int] $Base
    [string] $CapacityProvider
    [int] $Weight

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Base -Value {
            $this._base
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._base = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CapacityProvider -Value {
            $this._capacityProvider
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._capacityProvider = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Weight -Value {
            $this._weight
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._weight = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ECSTaskDefinitionContainerDefinition'"

class ECSTaskDefinitionContainerDefinition : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionContainerDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions.html'

    hidden [object] $_command
    hidden [object] $_cpu
    hidden [object] $_dependsOn
    hidden [object] $_disableNetworking
    hidden [object] $_dnsSearchDomains
    hidden [object] $_dnsServers
    hidden [object] $_dockerLabels
    hidden [object] $_dockerSecurityOptions
    hidden [object] $_entryPoint
    hidden [object] $_environment
    hidden [object] $_environmentFiles
    hidden [object] $_essential
    hidden [object] $_extraHosts
    hidden [object] $_firelensConfiguration
    hidden [object] $_healthCheck
    hidden [object] $_hostname
    hidden [object] $_image
    hidden [object] $_links
    hidden [object] $_linuxParameters
    hidden [object] $_logConfiguration
    hidden [object] $_memory
    hidden [object] $_memoryReservation
    hidden [object] $_mountPoints
    hidden [object] $_name
    hidden [object] $_portMappings
    hidden [object] $_privileged
    hidden [object] $_readonlyRootFilesystem
    hidden [object] $_repositoryCredentials
    hidden [object] $_resourceRequirements
    hidden [object] $_secrets
    hidden [object] $_startTimeout
    hidden [object] $_stopTimeout
    hidden [object] $_ulimits
    hidden [object] $_user
    hidden [object] $_volumesFrom
    hidden [object] $_workingDirectory
    hidden [object] $_interactive
    hidden [object] $_pseudoTerminal
    hidden [object] $_systemControls

    [string[]] $Command
    [int] $Cpu
    [ECSTaskDefinitionContainerDependency[]] $DependsOn
    [bool] $DisableNetworking
    [string[]] $DnsSearchDomains
    [string[]] $DnsServers
    [string] $DockerLabels
    [string[]] $DockerSecurityOptions
    [string[]] $EntryPoint
    [ECSTaskDefinitionKeyValuePair[]] $Environment
    [ECSTaskDefinitionEnvironmentFile[]] $EnvironmentFiles
    [bool] $Essential
    [ECSTaskDefinitionHostEntry[]] $ExtraHosts
    [ECSTaskDefinitionFirelensConfiguration] $FirelensConfiguration
    [ECSTaskDefinitionHealthCheck] $HealthCheck
    [string] $Hostname
    [string] $Image
    [string[]] $Links
    [ECSTaskDefinitionLinuxParameters] $LinuxParameters
    [ECSTaskDefinitionLogConfiguration] $LogConfiguration
    [int] $Memory
    [int] $MemoryReservation
    [ECSTaskDefinitionMountPoint[]] $MountPoints
    [string] $Name
    [ECSTaskDefinitionPortMapping[]] $PortMappings
    [bool] $Privileged
    [bool] $ReadonlyRootFilesystem
    [ECSTaskDefinitionRepositoryCredentials] $RepositoryCredentials
    [ECSTaskDefinitionResourceRequirement[]] $ResourceRequirements
    [ECSTaskDefinitionSecret[]] $Secrets
    [int] $StartTimeout
    [int] $StopTimeout
    [ECSTaskDefinitionUlimit[]] $Ulimits
    [string] $User
    [ECSTaskDefinitionVolumeFrom[]] $VolumesFrom
    [string] $WorkingDirectory
    [bool] $Interactive
    [bool] $PseudoTerminal
    [ECSTaskDefinitionSystemControl[]] $SystemControls

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Command -Value {
            $this._command
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._command = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Cpu -Value {
            $this._cpu
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._cpu = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DependsOn -Value {
            $this._dependsOn
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionContainerDependency], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._dependsOn = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DisableNetworking -Value {
            $this._disableNetworking
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._disableNetworking = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DnsSearchDomains -Value {
            $this._dnsSearchDomains
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._dnsSearchDomains = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DnsServers -Value {
            $this._dnsServers
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._dnsServers = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DockerLabels -Value {
            $this._dockerLabels
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dockerLabels = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DockerSecurityOptions -Value {
            $this._dockerSecurityOptions
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._dockerSecurityOptions = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EntryPoint -Value {
            $this._entryPoint
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._entryPoint = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Environment -Value {
            $this._environment
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionKeyValuePair], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._environment = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnvironmentFiles -Value {
            $this._environmentFiles
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionEnvironmentFile], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._environmentFiles = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Essential -Value {
            $this._essential
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._essential = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExtraHosts -Value {
            $this._extraHosts
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionHostEntry], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._extraHosts = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FirelensConfiguration -Value {
            $this._firelensConfiguration
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionFirelensConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._firelensConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HealthCheck -Value {
            $this._healthCheck
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionHealthCheck], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._healthCheck = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Hostname -Value {
            $this._hostname
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._hostname = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Image -Value {
            $this._image
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._image = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Links -Value {
            $this._links
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._links = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LinuxParameters -Value {
            $this._linuxParameters
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionLinuxParameters], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._linuxParameters = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LogConfiguration -Value {
            $this._logConfiguration
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionLogConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._logConfiguration = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Memory -Value {
            $this._memory
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._memory = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MemoryReservation -Value {
            $this._memoryReservation
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._memoryReservation = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MountPoints -Value {
            $this._mountPoints
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionMountPoint], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._mountPoints = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this._name
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._name = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PortMappings -Value {
            $this._portMappings
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionPortMapping], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._portMappings = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Privileged -Value {
            $this._privileged
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._privileged = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ReadonlyRootFilesystem -Value {
            $this._readonlyRootFilesystem
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._readonlyRootFilesystem = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RepositoryCredentials -Value {
            $this._repositoryCredentials
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionRepositoryCredentials], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._repositoryCredentials = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResourceRequirements -Value {
            $this._resourceRequirements
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionResourceRequirement], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._resourceRequirements = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Secrets -Value {
            $this._secrets
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionSecret], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._secrets = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StartTimeout -Value {
            $this._startTimeout
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._startTimeout = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StopTimeout -Value {
            $this._stopTimeout
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._stopTimeout = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Ulimits -Value {
            $this._ulimits
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionUlimit], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._ulimits = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name User -Value {
            $this._user
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._user = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name VolumesFrom -Value {
            $this._volumesFrom
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionVolumeFrom], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._volumesFrom = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name WorkingDirectory -Value {
            $this._workingDirectory
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._workingDirectory = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Interactive -Value {
            $this._interactive
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._interactive = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PseudoTerminal -Value {
            $this._pseudoTerminal
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._pseudoTerminal = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SystemControls -Value {
            $this._systemControls
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionSystemControl], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._systemControls = $value
        }
    }

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

Write-Verbose "Importing class 'ECSServiceDeploymentCircuitBreaker'"

class ECSServiceDeploymentCircuitBreaker : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSServiceDeploymentCircuitBreaker'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-deploymentcircuitbreaker.html'

    hidden [object] $_enable
    hidden [object] $_rollback

    [bool] $Enable
    [bool] $Rollback

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

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

Write-Verbose "Importing class 'ECSTaskDefinitionKeyValuePair'"

class ECSTaskDefinitionKeyValuePair : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionKeyValuePair'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-containerdefinitions-environment.html'

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

    [string] $Name
    [string] $Value

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

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

Write-Verbose "Importing class 'ECSClusterClusterConfiguration'"

class ECSClusterClusterConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSClusterClusterConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-clusterconfiguration.html'

    hidden [object] $_executeCommandConfiguration

    [ECSClusterExecuteCommandConfiguration] $ExecuteCommandConfiguration

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

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

Write-Verbose "Importing class 'ECSServiceServiceRegistry'"

class ECSServiceServiceRegistry : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSServiceServiceRegistry'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-service-serviceregistry.html'

    hidden [object] $_containerName
    hidden [object] $_containerPort
    hidden [object] $_port
    hidden [object] $_registryArn

    [string] $ContainerName
    [int] $ContainerPort
    [int] $Port
    [string] $RegistryArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContainerName -Value {
            $this._containerName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._containerName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContainerPort -Value {
            $this._containerPort
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._containerPort = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Port -Value {
            $this._port
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._port = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RegistryArn -Value {
            $this._registryArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._registryArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ECSTaskDefinitionHealthCheck'"

class ECSTaskDefinitionHealthCheck : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionHealthCheck'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-healthcheck.html'

    hidden [object] $_command
    hidden [object] $_interval
    hidden [object] $_timeout
    hidden [object] $_retries
    hidden [object] $_startPeriod

    [string[]] $Command
    [int] $Interval
    [int] $Timeout
    [int] $Retries
    [int] $StartPeriod

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Command -Value {
            $this._command
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._command = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Interval -Value {
            $this._interval
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._interval = if ($cast = $value -as [int]) {
                $cast
            }
            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 Retries -Value {
            $this._retries
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._retries = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StartPeriod -Value {
            $this._startPeriod
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._startPeriod = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ECSTaskDefinitionLinuxParameters'"

class ECSTaskDefinitionLinuxParameters : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionLinuxParameters'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-linuxparameters.html'

    hidden [object] $_capabilities
    hidden [object] $_devices
    hidden [object] $_initProcessEnabled
    hidden [object] $_maxSwap
    hidden [object] $_sharedMemorySize
    hidden [object] $_swappiness
    hidden [object] $_tmpfs

    [ECSTaskDefinitionKernelCapabilities] $Capabilities
    [ECSTaskDefinitionDevice[]] $Devices
    [bool] $InitProcessEnabled
    [int] $MaxSwap
    [int] $SharedMemorySize
    [int] $Swappiness
    [ECSTaskDefinitionTmpfs[]] $Tmpfs

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Capabilities -Value {
            $this._capabilities
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionKernelCapabilities], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._capabilities = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Devices -Value {
            $this._devices
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionDevice], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._devices = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InitProcessEnabled -Value {
            $this._initProcessEnabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._initProcessEnabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxSwap -Value {
            $this._maxSwap
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._maxSwap = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SharedMemorySize -Value {
            $this._sharedMemorySize
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._sharedMemorySize = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Swappiness -Value {
            $this._swappiness
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._swappiness = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tmpfs -Value {
            $this._tmpfs
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionTmpfs], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._tmpfs = $value
        }
    }

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

Write-Verbose "Importing class 'ECSTaskDefinitionProxyConfiguration'"

class ECSTaskDefinitionProxyConfiguration : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskDefinitionProxyConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskdefinition-proxyconfiguration.html'

    hidden [object] $_containerName
    hidden [object] $_proxyConfigurationProperties
    hidden [object] $_type

    [string] $ContainerName
    [ECSTaskDefinitionKeyValuePair[]] $ProxyConfigurationProperties
    [string] $Type

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

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

Write-Verbose "Importing class 'ECSTaskSetScale'"

class ECSTaskSetScale : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSTaskSetScale'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-taskset-scale.html'

    hidden [object] $_unit
    hidden [object] $_value

    [string] $Unit
    [double] $Value

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

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

Write-Verbose "Importing class 'ECSClusterCapacityProviderStrategyItem'"

class ECSClusterCapacityProviderStrategyItem : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSECSClusterCapacityProviderStrategyItem'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-cluster-capacityproviderstrategyitem.html'

    hidden [object] $_capacityProvider
    hidden [object] $_weight
    hidden [object] $_base

    [string] $CapacityProvider
    [int] $Weight
    [int] $Base

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CapacityProvider -Value {
            $this._capacityProvider
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._capacityProvider = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Weight -Value {
            $this._weight
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._weight = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Base -Value {
            $this._base
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._base = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ECSCluster'"

class ECSCluster : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSECSCluster'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-cluster.html'

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

    [string] $Type = 'AWS::ECS::Cluster'
    [VSTag[]] $Tags
    [string] $ClusterName
    [ECSClusterClusterSettings[]] $ClusterSettings
    [ECSClusterClusterConfiguration] $Configuration
    [string[]] $CapacityProviders
    [ECSClusterCapacityProviderStrategyItem[]] $DefaultCapacityProviderStrategy
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ClusterName -Value {
            $this.Properties['ClusterName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ClusterName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ClusterSettings -Value {
            $this.Properties['ClusterSettings']
        } -SecondValue {
            param([ValidateType(([ECSClusterClusterSettings], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['ClusterSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Configuration -Value {
            $this.Properties['Configuration']
        } -SecondValue {
            param([ValidateType(([ECSClusterClusterConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Configuration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CapacityProviders -Value {
            $this.Properties['CapacityProviders']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['CapacityProviders'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DefaultCapacityProviderStrategy -Value {
            $this.Properties['DefaultCapacityProviderStrategy']
        } -SecondValue {
            param([ValidateType(([ECSClusterCapacityProviderStrategyItem], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['DefaultCapacityProviderStrategy'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'ECSService'"

class ECSService : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSECSService'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html'

    hidden [string[]] $_attributes = @('ServiceArn','Name')
    hidden [object] $_condition

    [string] $Type = 'AWS::ECS::Service'
    [ECSServiceCapacityProviderStrategyItem[]] $CapacityProviderStrategy
    [string] $Cluster
    [ECSServiceDeploymentConfiguration] $DeploymentConfiguration
    [ECSServiceDeploymentController] $DeploymentController
    [int] $DesiredCount
    [bool] $EnableECSManagedTags
    [bool] $EnableExecuteCommand
    [int] $HealthCheckGracePeriodSeconds
    [string] $LaunchType
    [ECSServiceLoadBalancer[]] $LoadBalancers
    [ECSServiceNetworkConfiguration] $NetworkConfiguration
    [ECSServicePlacementConstraint[]] $PlacementConstraints
    [ECSServicePlacementStrategy[]] $PlacementStrategies
    [string] $PlatformVersion
    [string] $PropagateTags
    [string] $Role
    [string] $SchedulingStrategy
    [string] $ServiceName
    [ECSServiceServiceRegistry[]] $ServiceRegistries
    [VSTag[]] $Tags
    [string] $TaskDefinition
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name CapacityProviderStrategy -Value {
            $this.Properties['CapacityProviderStrategy']
        } -SecondValue {
            param([ValidateType(([ECSServiceCapacityProviderStrategyItem], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['CapacityProviderStrategy'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Cluster -Value {
            $this.Properties['Cluster']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Cluster'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeploymentConfiguration -Value {
            $this.Properties['DeploymentConfiguration']
        } -SecondValue {
            param([ValidateType(([ECSServiceDeploymentConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DeploymentConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeploymentController -Value {
            $this.Properties['DeploymentController']
        } -SecondValue {
            param([ValidateType(([ECSServiceDeploymentController], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DeploymentController'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DesiredCount -Value {
            $this.Properties['DesiredCount']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DesiredCount'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnableECSManagedTags -Value {
            $this.Properties['EnableECSManagedTags']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EnableECSManagedTags'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnableExecuteCommand -Value {
            $this.Properties['EnableExecuteCommand']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EnableExecuteCommand'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HealthCheckGracePeriodSeconds -Value {
            $this.Properties['HealthCheckGracePeriodSeconds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['HealthCheckGracePeriodSeconds'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LaunchType -Value {
            $this.Properties['LaunchType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LaunchType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LoadBalancers -Value {
            $this.Properties['LoadBalancers']
        } -SecondValue {
            param([ValidateType(([ECSServiceLoadBalancer], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['LoadBalancers'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NetworkConfiguration -Value {
            $this.Properties['NetworkConfiguration']
        } -SecondValue {
            param([ValidateType(([ECSServiceNetworkConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['NetworkConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PlacementConstraints -Value {
            $this.Properties['PlacementConstraints']
        } -SecondValue {
            param([ValidateType(([ECSServicePlacementConstraint], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['PlacementConstraints'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PlacementStrategies -Value {
            $this.Properties['PlacementStrategies']
        } -SecondValue {
            param([ValidateType(([ECSServicePlacementStrategy], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['PlacementStrategies'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PlatformVersion -Value {
            $this.Properties['PlatformVersion']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PlatformVersion'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PropagateTags -Value {
            $this.Properties['PropagateTags']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PropagateTags'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Role -Value {
            $this.Properties['Role']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Role'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SchedulingStrategy -Value {
            $this.Properties['SchedulingStrategy']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SchedulingStrategy'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServiceName -Value {
            $this.Properties['ServiceName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ServiceName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServiceRegistries -Value {
            $this.Properties['ServiceRegistries']
        } -SecondValue {
            param([ValidateType(([ECSServiceServiceRegistry], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['ServiceRegistries'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TaskDefinition -Value {
            $this.Properties['TaskDefinition']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TaskDefinition'] = 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
        }
    }

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

Write-Verbose "Importing class 'ECSClusterCapacityProviderAssociations'"

class ECSClusterCapacityProviderAssociations : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSECSClusterCapacityProviderAssociations'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-clustercapacityproviderassociations.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::ECS::ClusterCapacityProviderAssociations'
    [string[]] $CapacityProviders
    [string] $Cluster
    [ECSClusterCapacityProviderAssociationsCapacityProviderStrategy[]] $DefaultCapacityProviderStrategy
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'ECSTaskDefinition'"

class ECSTaskDefinition : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSECSTaskDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskdefinition.html'

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

    [string] $Type = 'AWS::ECS::TaskDefinition'
    [string] $Family
    [ECSTaskDefinitionContainerDefinition[]] $ContainerDefinitions
    [string] $Cpu
    [string] $ExecutionRoleArn
    [ECSTaskDefinitionEphemeralStorage] $EphemeralStorage
    [ECSTaskDefinitionInferenceAccelerator[]] $InferenceAccelerators
    [string] $Memory
    [string] $NetworkMode
    [ECSTaskDefinitionTaskDefinitionPlacementConstraint[]] $PlacementConstraints
    [ECSTaskDefinitionProxyConfiguration] $ProxyConfiguration
    [string[]] $RequiresCompatibilities
    [string] $TaskRoleArn
    [ECSTaskDefinitionVolume[]] $Volumes
    [string] $PidMode
    [string] $IpcMode
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Family -Value {
            $this.Properties['Family']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Family'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ContainerDefinitions -Value {
            $this.Properties['ContainerDefinitions']
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionContainerDefinition], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['ContainerDefinitions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Cpu -Value {
            $this.Properties['Cpu']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Cpu'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExecutionRoleArn -Value {
            $this.Properties['ExecutionRoleArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ExecutionRoleArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EphemeralStorage -Value {
            $this.Properties['EphemeralStorage']
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionEphemeralStorage], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EphemeralStorage'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InferenceAccelerators -Value {
            $this.Properties['InferenceAccelerators']
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionInferenceAccelerator], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['InferenceAccelerators'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Memory -Value {
            $this.Properties['Memory']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Memory'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NetworkMode -Value {
            $this.Properties['NetworkMode']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['NetworkMode'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PlacementConstraints -Value {
            $this.Properties['PlacementConstraints']
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionTaskDefinitionPlacementConstraint], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['PlacementConstraints'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProxyConfiguration -Value {
            $this.Properties['ProxyConfiguration']
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionProxyConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProxyConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RequiresCompatibilities -Value {
            $this.Properties['RequiresCompatibilities']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['RequiresCompatibilities'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TaskRoleArn -Value {
            $this.Properties['TaskRoleArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TaskRoleArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Volumes -Value {
            $this.Properties['Volumes']
        } -SecondValue {
            param([ValidateType(([ECSTaskDefinitionVolume], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Volumes'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PidMode -Value {
            $this.Properties['PidMode']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PidMode'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IpcMode -Value {
            $this.Properties['IpcMode']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['IpcMode'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'ECSCapacityProvider'"

class ECSCapacityProvider : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSECSCapacityProvider'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-capacityprovider.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::ECS::CapacityProvider'
    [ECSCapacityProviderAutoScalingGroupProvider] $AutoScalingGroupProvider
    [string] $Name
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name AutoScalingGroupProvider -Value {
            $this.Properties['AutoScalingGroupProvider']
        } -SecondValue {
            param([ValidateType(([ECSCapacityProviderAutoScalingGroupProvider], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AutoScalingGroupProvider'] = $value
        }
        $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 Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'ECSPrimaryTaskSet'"

class ECSPrimaryTaskSet : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSECSPrimaryTaskSet'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-primarytaskset.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::ECS::PrimaryTaskSet'
    [string] $Cluster
    [string] $TaskSetId
    [string] $Service
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'ECSTaskSet'"

class ECSTaskSet : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSECSTaskSet'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-taskset.html'

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

    [string] $Type = 'AWS::ECS::TaskSet'
    [string] $Cluster
    [string] $ExternalId
    [string] $LaunchType
    [ECSTaskSetLoadBalancer[]] $LoadBalancers
    [ECSTaskSetNetworkConfiguration] $NetworkConfiguration
    [string] $PlatformVersion
    [ECSTaskSetScale] $Scale
    [string] $Service
    [ECSTaskSetServiceRegistry[]] $ServiceRegistries
    [string] $TaskDefinition
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Cluster -Value {
            $this.Properties['Cluster']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Cluster'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExternalId -Value {
            $this.Properties['ExternalId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ExternalId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LaunchType -Value {
            $this.Properties['LaunchType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LaunchType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LoadBalancers -Value {
            $this.Properties['LoadBalancers']
        } -SecondValue {
            param([ValidateType(([ECSTaskSetLoadBalancer], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['LoadBalancers'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NetworkConfiguration -Value {
            $this.Properties['NetworkConfiguration']
        } -SecondValue {
            param([ValidateType(([ECSTaskSetNetworkConfiguration], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['NetworkConfiguration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PlatformVersion -Value {
            $this.Properties['PlatformVersion']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PlatformVersion'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Scale -Value {
            $this.Properties['Scale']
        } -SecondValue {
            param([ValidateType(([ECSTaskSetScale], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Scale'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Service -Value {
            $this.Properties['Service']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Service'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServiceRegistries -Value {
            $this.Properties['ServiceRegistries']
        } -SecondValue {
            param([ValidateType(([ECSTaskSetServiceRegistry], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['ServiceRegistries'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TaskDefinition -Value {
            $this.Properties['TaskDefinition']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TaskDefinition'] = 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
        }
    }

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