VaporShell.DataSync.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 'DataSyncTaskFilterRule'"

class DataSyncTaskFilterRule : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDataSyncTaskFilterRule'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-filterrule.html'

    hidden [object] $_filterType
    hidden [object] $_value

    [string] $FilterType
    [string] $Value

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

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

Write-Verbose "Importing class 'DataSyncLocationS3S3Config'"

class DataSyncLocationS3S3Config : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDataSyncLocationS3S3Config'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locations3-s3config.html'

    hidden [object] $_bucketAccessRoleArn

    [string] $BucketAccessRoleArn

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

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

Write-Verbose "Importing class 'DataSyncLocationNFSOnPremConfig'"

class DataSyncLocationNFSOnPremConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDataSyncLocationNFSOnPremConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationnfs-onpremconfig.html'

    hidden [object] $_agentArns

    [string[]] $AgentArns

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

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

Write-Verbose "Importing class 'DataSyncLocationNFSMountOptions'"

class DataSyncLocationNFSMountOptions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDataSyncLocationNFSMountOptions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationnfs-mountoptions.html'

    hidden [object] $_version

    [string] $Version

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

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

Write-Verbose "Importing class 'DataSyncLocationEFSEc2Config'"

class DataSyncLocationEFSEc2Config : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDataSyncLocationEFSEc2Config'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationefs-ec2config.html'

    hidden [object] $_securityGroupArns
    hidden [object] $_subnetArn

    [string[]] $SecurityGroupArns
    [string] $SubnetArn

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

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

Write-Verbose "Importing class 'DataSyncTaskOptions'"

class DataSyncTaskOptions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDataSyncTaskOptions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-options.html'

    hidden [object] $_atime
    hidden [object] $_bytesPerSecond
    hidden [object] $_gid
    hidden [object] $_logLevel
    hidden [object] $_mtime
    hidden [object] $_overwriteMode
    hidden [object] $_posixPermissions
    hidden [object] $_preserveDeletedFiles
    hidden [object] $_preserveDevices
    hidden [object] $_securityDescriptorCopyFlags
    hidden [object] $_taskQueueing
    hidden [object] $_transferMode
    hidden [object] $_uid
    hidden [object] $_verifyMode

    [string] $Atime
    [int] $BytesPerSecond
    [string] $Gid
    [string] $LogLevel
    [string] $Mtime
    [string] $OverwriteMode
    [string] $PosixPermissions
    [string] $PreserveDeletedFiles
    [string] $PreserveDevices
    [string] $SecurityDescriptorCopyFlags
    [string] $TaskQueueing
    [string] $TransferMode
    [string] $Uid
    [string] $VerifyMode

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Atime -Value {
            $this._atime
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._atime = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BytesPerSecond -Value {
            $this._bytesPerSecond
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._bytesPerSecond = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Gid -Value {
            $this._gid
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._gid = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LogLevel -Value {
            $this._logLevel
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._logLevel = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Mtime -Value {
            $this._mtime
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._mtime = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OverwriteMode -Value {
            $this._overwriteMode
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._overwriteMode = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PosixPermissions -Value {
            $this._posixPermissions
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._posixPermissions = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PreserveDeletedFiles -Value {
            $this._preserveDeletedFiles
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._preserveDeletedFiles = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PreserveDevices -Value {
            $this._preserveDevices
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._preserveDevices = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecurityDescriptorCopyFlags -Value {
            $this._securityDescriptorCopyFlags
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._securityDescriptorCopyFlags = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TaskQueueing -Value {
            $this._taskQueueing
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._taskQueueing = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TransferMode -Value {
            $this._transferMode
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._transferMode = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Uid -Value {
            $this._uid
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._uid = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name VerifyMode -Value {
            $this._verifyMode
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._verifyMode = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'DataSyncTaskTaskSchedule'"

class DataSyncTaskTaskSchedule : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDataSyncTaskTaskSchedule'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-task-taskschedule.html'

    hidden [object] $_scheduleExpression

    [string] $ScheduleExpression

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

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

Write-Verbose "Importing class 'DataSyncLocationSMBMountOptions'"

class DataSyncLocationSMBMountOptions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSDataSyncLocationSMBMountOptions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-datasync-locationsmb-mountoptions.html'

    hidden [object] $_version

    [string] $Version

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

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

Write-Verbose "Importing class 'DataSyncLocationNFS'"

class DataSyncLocationNFS : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSDataSyncLocationNFS'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationnfs.html'

    hidden [string[]] $_attributes = @('LocationArn','LocationUri')
    hidden [object] $_condition

    [string] $Type = 'AWS::DataSync::LocationNFS'
    [DataSyncLocationNFSMountOptions] $MountOptions
    [DataSyncLocationNFSOnPremConfig] $OnPremConfig
    [string] $ServerHostname
    [string] $Subdirectory
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'DataSyncAgent'"

class DataSyncAgent : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSDataSyncAgent'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-agent.html'

    hidden [string[]] $_attributes = @('EndpointType','AgentArn')
    hidden [object] $_condition

    [string] $Type = 'AWS::DataSync::Agent'
    [string] $AgentName
    [string] $ActivationKey
    [string[]] $SecurityGroupArns
    [string[]] $SubnetArns
    [string] $VpcEndpointId
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'DataSyncLocationEFS'"

class DataSyncLocationEFS : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSDataSyncLocationEFS'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationefs.html'

    hidden [string[]] $_attributes = @('LocationArn','LocationUri')
    hidden [object] $_condition

    [string] $Type = 'AWS::DataSync::LocationEFS'
    [DataSyncLocationEFSEc2Config] $Ec2Config
    [string] $EfsFilesystemArn
    [string] $Subdirectory
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'DataSyncLocationFSxWindows'"

class DataSyncLocationFSxWindows : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSDataSyncLocationFSxWindows'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationfsxwindows.html'

    hidden [string[]] $_attributes = @('LocationArn','LocationUri')
    hidden [object] $_condition

    [string] $Type = 'AWS::DataSync::LocationFSxWindows'
    [string] $Domain
    [string] $FsxFilesystemArn
    [string] $Password
    [string[]] $SecurityGroupArns
    [string] $Subdirectory
    [string] $User
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'DataSyncLocationS3'"

class DataSyncLocationS3 : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSDataSyncLocationS3'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locations3.html'

    hidden [string[]] $_attributes = @('LocationArn','LocationUri')
    hidden [object] $_condition

    [string] $Type = 'AWS::DataSync::LocationS3'
    [DataSyncLocationS3S3Config] $S3Config
    [string] $S3BucketArn
    [string] $Subdirectory
    [string] $S3StorageClass
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'DataSyncTask'"

class DataSyncTask : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSDataSyncTask'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-task.html'

    hidden [string[]] $_attributes = @('TaskArn','ErrorCode','ErrorDetail','Status','SourceNetworkInterfaceArns','DestinationNetworkInterfaceArns')
    hidden [object] $_condition

    [string] $Type = 'AWS::DataSync::Task'
    [DataSyncTaskFilterRule[]] $Excludes
    [DataSyncTaskFilterRule[]] $Includes
    [VSTag[]] $Tags
    [string] $CloudWatchLogGroupArn
    [string] $DestinationLocationArn
    [string] $Name
    [DataSyncTaskOptions] $Options
    [DataSyncTaskTaskSchedule] $Schedule
    [string] $SourceLocationArn
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Excludes -Value {
            $this.Properties['Excludes']
        } -SecondValue {
            param([ValidateType(([DataSyncTaskFilterRule], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Excludes'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Includes -Value {
            $this.Properties['Includes']
        } -SecondValue {
            param([ValidateType(([DataSyncTaskFilterRule], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Includes'] = $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 CloudWatchLogGroupArn -Value {
            $this.Properties['CloudWatchLogGroupArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CloudWatchLogGroupArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DestinationLocationArn -Value {
            $this.Properties['DestinationLocationArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DestinationLocationArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $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 Options -Value {
            $this.Properties['Options']
        } -SecondValue {
            param([ValidateType(([DataSyncTaskOptions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Options'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Schedule -Value {
            $this.Properties['Schedule']
        } -SecondValue {
            param([ValidateType(([DataSyncTaskTaskSchedule], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Schedule'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SourceLocationArn -Value {
            $this.Properties['SourceLocationArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SourceLocationArn'] = 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
        }
    }

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

Write-Verbose "Importing class 'DataSyncLocationObjectStorage'"

class DataSyncLocationObjectStorage : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSDataSyncLocationObjectStorage'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html'

    hidden [string[]] $_attributes = @('LocationArn','LocationUri')
    hidden [object] $_condition

    [string] $Type = 'AWS::DataSync::LocationObjectStorage'
    [string] $AccessKey
    [string[]] $AgentArns
    [string] $BucketName
    [string] $SecretKey
    [string] $ServerHostname
    [int] $ServerPort
    [string] $ServerProtocol
    [string] $Subdirectory
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name AccessKey -Value {
            $this.Properties['AccessKey']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AccessKey'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AgentArns -Value {
            $this.Properties['AgentArns']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['AgentArns'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BucketName -Value {
            $this.Properties['BucketName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BucketName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecretKey -Value {
            $this.Properties['SecretKey']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SecretKey'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServerHostname -Value {
            $this.Properties['ServerHostname']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ServerHostname'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServerPort -Value {
            $this.Properties['ServerPort']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ServerPort'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServerProtocol -Value {
            $this.Properties['ServerProtocol']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ServerProtocol'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Subdirectory -Value {
            $this.Properties['Subdirectory']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Subdirectory'] = 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
        }
    }

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

Write-Verbose "Importing class 'DataSyncLocationSMB'"

class DataSyncLocationSMB : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSDataSyncLocationSMB'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationsmb.html'

    hidden [string[]] $_attributes = @('LocationArn','LocationUri')
    hidden [object] $_condition

    [string] $Type = 'AWS::DataSync::LocationSMB'
    [string[]] $AgentArns
    [string] $Domain
    [DataSyncLocationSMBMountOptions] $MountOptions
    [string] $Password
    [string] $ServerHostname
    [string] $Subdirectory
    [string] $User
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name AgentArns -Value {
            $this.Properties['AgentArns']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['AgentArns'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Domain -Value {
            $this.Properties['Domain']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Domain'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MountOptions -Value {
            $this.Properties['MountOptions']
        } -SecondValue {
            param([ValidateType(([DataSyncLocationSMBMountOptions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MountOptions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Password -Value {
            $this.Properties['Password']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Password'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServerHostname -Value {
            $this.Properties['ServerHostname']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ServerHostname'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Subdirectory -Value {
            $this.Properties['Subdirectory']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Subdirectory'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name User -Value {
            $this.Properties['User']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['User'] = 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
        }
    }

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