VaporShell.Transfer.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 'TransferServerWorkflowDetails'"

class TransferServerWorkflowDetails : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTransferServerWorkflowDetails'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-workflowdetails.html'

    hidden [object] $_onUpload

    [TransferServerWorkflowDetail[]] $OnUpload

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

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

Write-Verbose "Importing class 'TransferUserHomeDirectoryMapEntry'"

class TransferUserHomeDirectoryMapEntry : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTransferUserHomeDirectoryMapEntry'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-user-homedirectorymapentry.html'

    hidden [object] $_entry
    hidden [object] $_target

    [string] $Entry
    [string] $Target

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

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

Write-Verbose "Importing class 'TransferServerProtocolDetails'"

class TransferServerProtocolDetails : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTransferServerProtocolDetails'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-protocoldetails.html'

    hidden [object] $_passiveIp
    hidden [object] $_tlsSessionResumptionMode

    [string] $PassiveIp
    [string] $TlsSessionResumptionMode

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

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

Write-Verbose "Importing class 'TransferWorkflowWorkflowStep'"

class TransferWorkflowWorkflowStep : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTransferWorkflowWorkflowStep'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-workflow-workflowstep.html'

    hidden [VSJson] $_copyStepDetails
    hidden [VSJson] $_customStepDetails
    hidden [VSJson] $_deleteStepDetails
    hidden [VSJson] $_tagStepDetails
    hidden [object] $_type

    [VSJson] $CopyStepDetails
    [VSJson] $CustomStepDetails
    [VSJson] $DeleteStepDetails
    [VSJson] $TagStepDetails
    [string] $Type

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CopyStepDetails -Value {
            $this._copyStepDetails
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._copyStepDetails = [VSJson]::Transform($value)
            Write-Debug $this._copyStepDetails
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CustomStepDetails -Value {
            $this._customStepDetails
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._customStepDetails = [VSJson]::Transform($value)
            Write-Debug $this._customStepDetails
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeleteStepDetails -Value {
            $this._deleteStepDetails
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._deleteStepDetails = [VSJson]::Transform($value)
            Write-Debug $this._deleteStepDetails
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TagStepDetails -Value {
            $this._tagStepDetails
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._tagStepDetails = [VSJson]::Transform($value)
            Write-Debug $this._tagStepDetails
        }
        $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
            }
        }
    }

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

Write-Verbose "Importing class 'TransferUserSshPublicKey'"

class TransferUserSshPublicKey : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTransferUserSshPublicKey'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-user-sshpublickey.html'



    hidden [void] _addAccessors() {
    }

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

Write-Verbose "Importing class 'TransferServerIdentityProviderDetails'"

class TransferServerIdentityProviderDetails : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTransferServerIdentityProviderDetails'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-identityproviderdetails.html'

    hidden [object] $_function
    hidden [object] $_directoryId
    hidden [object] $_invocationRole
    hidden [object] $_url

    [string] $Function
    [string] $DirectoryId
    [string] $InvocationRole
    [string] $Url

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Function -Value {
            $this._function
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._function = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DirectoryId -Value {
            $this._directoryId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._directoryId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InvocationRole -Value {
            $this._invocationRole
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._invocationRole = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Url -Value {
            $this._url
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._url = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'TransferServerWorkflowDetail'"

class TransferServerWorkflowDetail : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTransferServerWorkflowDetail'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-workflowdetail.html'

    hidden [object] $_workflowId
    hidden [object] $_executionRole

    [string] $WorkflowId
    [string] $ExecutionRole

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

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

Write-Verbose "Importing class 'TransferServerEndpointDetails'"

class TransferServerEndpointDetails : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTransferServerEndpointDetails'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-endpointdetails.html'

    hidden [object] $_addressAllocationIds
    hidden [object] $_vpcId
    hidden [object] $_vpcEndpointId
    hidden [object] $_securityGroupIds
    hidden [object] $_subnetIds

    [string[]] $AddressAllocationIds
    [string] $VpcId
    [string] $VpcEndpointId
    [string[]] $SecurityGroupIds
    [string[]] $SubnetIds

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

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

Write-Verbose "Importing class 'TransferUserPosixProfile'"

class TransferUserPosixProfile : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTransferUserPosixProfile'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-user-posixprofile.html'

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

    [double] $Uid
    [double[]] $SecondaryGids
    [double] $Gid

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Uid -Value {
            $this._uid
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._uid = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecondaryGids -Value {
            $this._secondaryGids
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._secondaryGids = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Gid -Value {
            $this._gid
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._gid = $value
        }
    }

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

Write-Verbose "Importing class 'TransferServerProtocol'"

class TransferServerProtocol : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSTransferServerProtocol'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-server-protocol.html'



    hidden [void] _addAccessors() {
    }

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

Write-Verbose "Importing class 'TransferWorkflow'"

class TransferWorkflow : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSTransferWorkflow'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-workflow.html'

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

    [string] $Type = 'AWS::Transfer::Workflow'
    [TransferWorkflowWorkflowStep[]] $OnExceptionSteps
    [TransferWorkflowWorkflowStep[]] $Steps
    [VSTag[]] $Tags
    [string] $Description
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'TransferServer'"

class TransferServer : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSTransferServer'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-server.html'

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

    [string] $Type = 'AWS::Transfer::Server'
    [string] $LoggingRole
    [TransferServerProtocol[]] $Protocols
    [TransferServerIdentityProviderDetails] $IdentityProviderDetails
    [TransferServerEndpointDetails] $EndpointDetails
    [string] $PreAuthenticationLoginBanner
    [string] $PostAuthenticationLoginBanner
    [string] $EndpointType
    [string] $SecurityPolicyName
    [TransferServerProtocolDetails] $ProtocolDetails
    [TransferServerWorkflowDetails] $WorkflowDetails
    [string] $Domain
    [string] $IdentityProviderType
    [VSTag[]] $Tags
    [string] $Certificate
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name LoggingRole -Value {
            $this.Properties['LoggingRole']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LoggingRole'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Protocols -Value {
            $this.Properties['Protocols']
        } -SecondValue {
            param([ValidateType(([TransferServerProtocol], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Protocols'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IdentityProviderDetails -Value {
            $this.Properties['IdentityProviderDetails']
        } -SecondValue {
            param([ValidateType(([TransferServerIdentityProviderDetails], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['IdentityProviderDetails'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EndpointDetails -Value {
            $this.Properties['EndpointDetails']
        } -SecondValue {
            param([ValidateType(([TransferServerEndpointDetails], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EndpointDetails'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PreAuthenticationLoginBanner -Value {
            $this.Properties['PreAuthenticationLoginBanner']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PreAuthenticationLoginBanner'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PostAuthenticationLoginBanner -Value {
            $this.Properties['PostAuthenticationLoginBanner']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PostAuthenticationLoginBanner'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EndpointType -Value {
            $this.Properties['EndpointType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EndpointType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecurityPolicyName -Value {
            $this.Properties['SecurityPolicyName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SecurityPolicyName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ProtocolDetails -Value {
            $this.Properties['ProtocolDetails']
        } -SecondValue {
            param([ValidateType(([TransferServerProtocolDetails], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ProtocolDetails'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name WorkflowDetails -Value {
            $this.Properties['WorkflowDetails']
        } -SecondValue {
            param([ValidateType(([TransferServerWorkflowDetails], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['WorkflowDetails'] = $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 IdentityProviderType -Value {
            $this.Properties['IdentityProviderType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['IdentityProviderType'] = 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 Certificate -Value {
            $this.Properties['Certificate']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Certificate'] = 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
        }
    }

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

Write-Verbose "Importing class 'TransferUser'"

class TransferUser : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSTransferUser'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-user.html'

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

    [string] $Type = 'AWS::Transfer::User'
    [string] $Policy
    [string] $Role
    [string] $HomeDirectory
    [string] $HomeDirectoryType
    [string] $ServerId
    [string] $UserName
    [TransferUserHomeDirectoryMapEntry[]] $HomeDirectoryMappings
    [TransferUserPosixProfile] $PosixProfile
    [TransferUserSshPublicKey[]] $SshPublicKeys
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Policy -Value {
            $this.Properties['Policy']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Policy'] = 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 HomeDirectory -Value {
            $this.Properties['HomeDirectory']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['HomeDirectory'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HomeDirectoryType -Value {
            $this.Properties['HomeDirectoryType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['HomeDirectoryType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServerId -Value {
            $this.Properties['ServerId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ServerId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UserName -Value {
            $this.Properties['UserName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['UserName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HomeDirectoryMappings -Value {
            $this.Properties['HomeDirectoryMappings']
        } -SecondValue {
            param([ValidateType(([TransferUserHomeDirectoryMapEntry], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['HomeDirectoryMappings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PosixProfile -Value {
            $this.Properties['PosixProfile']
        } -SecondValue {
            param([ValidateType(([TransferUserPosixProfile], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PosixProfile'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SshPublicKeys -Value {
            $this.Properties['SshPublicKeys']
        } -SecondValue {
            param([ValidateType(([TransferUserSshPublicKey], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['SshPublicKeys'] = $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
        }
    }

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