VaporShell.Connect.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 'ConnectUserUserIdentityInfo'"

class ConnectUserUserIdentityInfo : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSConnectUserUserIdentityInfo'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-useridentityinfo.html'

    hidden [object] $_email
    hidden [object] $_firstName
    hidden [object] $_lastName

    [string] $Email
    [string] $FirstName
    [string] $LastName

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

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

Write-Verbose "Importing class 'ConnectQuickConnectQueueQuickConnectConfig'"

class ConnectQuickConnectQueueQuickConnectConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSConnectQuickConnectQueueQuickConnectConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-queuequickconnectconfig.html'

    hidden [object] $_contactFlowArn
    hidden [object] $_queueArn

    [string] $ContactFlowArn
    [string] $QueueArn

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

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

Write-Verbose "Importing class 'ConnectHoursOfOperationHoursOfOperationConfig'"

class ConnectHoursOfOperationHoursOfOperationConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSConnectHoursOfOperationHoursOfOperationConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationconfig.html'

    hidden [object] $_day
    hidden [object] $_startTime
    hidden [object] $_endTime

    [string] $Day
    [ConnectHoursOfOperationHoursOfOperationTimeSlice] $StartTime
    [ConnectHoursOfOperationHoursOfOperationTimeSlice] $EndTime

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

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

Write-Verbose "Importing class 'ConnectQuickConnectQuickConnectConfig'"

class ConnectQuickConnectQuickConnectConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSConnectQuickConnectQuickConnectConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-quickconnectconfig.html'

    hidden [object] $_quickConnectType
    hidden [object] $_phoneConfig
    hidden [object] $_queueConfig
    hidden [object] $_userConfig

    [string] $QuickConnectType
    [ConnectQuickConnectPhoneNumberQuickConnectConfig] $PhoneConfig
    [ConnectQuickConnectQueueQuickConnectConfig] $QueueConfig
    [ConnectQuickConnectUserQuickConnectConfig] $UserConfig

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name QuickConnectType -Value {
            $this._quickConnectType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._quickConnectType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PhoneConfig -Value {
            $this._phoneConfig
        } -SecondValue {
            param([ValidateType(([ConnectQuickConnectPhoneNumberQuickConnectConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._phoneConfig = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name QueueConfig -Value {
            $this._queueConfig
        } -SecondValue {
            param([ValidateType(([ConnectQuickConnectQueueQuickConnectConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._queueConfig = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UserConfig -Value {
            $this._userConfig
        } -SecondValue {
            param([ValidateType(([ConnectQuickConnectUserQuickConnectConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._userConfig = $value
        }
    }

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

Write-Verbose "Importing class 'ConnectQuickConnectUserQuickConnectConfig'"

class ConnectQuickConnectUserQuickConnectConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSConnectQuickConnectUserQuickConnectConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-userquickconnectconfig.html'

    hidden [object] $_contactFlowArn
    hidden [object] $_userArn

    [string] $ContactFlowArn
    [string] $UserArn

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

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

Write-Verbose "Importing class 'ConnectUserUserPhoneConfig'"

class ConnectUserUserPhoneConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSConnectUserUserPhoneConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-userphoneconfig.html'

    hidden [object] $_afterContactWorkTimeLimit
    hidden [object] $_autoAccept
    hidden [object] $_deskPhoneNumber
    hidden [object] $_phoneType

    [int] $AfterContactWorkTimeLimit
    [bool] $AutoAccept
    [string] $DeskPhoneNumber
    [string] $PhoneType

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name AfterContactWorkTimeLimit -Value {
            $this._afterContactWorkTimeLimit
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._afterContactWorkTimeLimit = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AutoAccept -Value {
            $this._autoAccept
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._autoAccept = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeskPhoneNumber -Value {
            $this._deskPhoneNumber
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._deskPhoneNumber = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PhoneType -Value {
            $this._phoneType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._phoneType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'ConnectQuickConnectPhoneNumberQuickConnectConfig'"

class ConnectQuickConnectPhoneNumberQuickConnectConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSConnectQuickConnectPhoneNumberQuickConnectConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-quickconnect-phonenumberquickconnectconfig.html'

    hidden [object] $_phoneNumber

    [string] $PhoneNumber

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

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

Write-Verbose "Importing class 'ConnectHoursOfOperationHoursOfOperationTimeSlice'"

class ConnectHoursOfOperationHoursOfOperationTimeSlice : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSConnectHoursOfOperationHoursOfOperationTimeSlice'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationtimeslice.html'

    hidden [object] $_hours
    hidden [object] $_minutes

    [int] $Hours
    [int] $Minutes

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

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

Write-Verbose "Importing class 'ConnectQuickConnect'"

class ConnectQuickConnect : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSConnectQuickConnect'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-quickconnect.html'

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

    [string] $Type = 'AWS::Connect::QuickConnect'
    [string] $InstanceArn
    [string] $Name
    [string] $Description
    [ConnectQuickConnectQuickConnectConfig] $QuickConnectConfig
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'ConnectHoursOfOperation'"

class ConnectHoursOfOperation : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSConnectHoursOfOperation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-hoursofoperation.html'

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

    [string] $Type = 'AWS::Connect::HoursOfOperation'
    [string] $InstanceArn
    [string] $Name
    [string] $Description
    [string] $TimeZone
    [ConnectHoursOfOperationHoursOfOperationConfig[]] $Config
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'ConnectContactFlow'"

class ConnectContactFlow : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSConnectContactFlow'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflow.html'

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

    [string] $Type = 'AWS::Connect::ContactFlow'
    [string] $InstanceArn
    [string] $Name
    [string] $Content
    [string] $Description
    [string] $State
    [string] $ContactFlowType
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'ConnectUserHierarchyGroup'"

class ConnectUserHierarchyGroup : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSConnectUserHierarchyGroup'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-userhierarchygroup.html'

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

    [string] $Type = 'AWS::Connect::UserHierarchyGroup'
    [string] $InstanceArn
    [string] $ParentGroupArn
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'ConnectUser'"

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

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

    [string] $Type = 'AWS::Connect::User'
    [string] $InstanceArn
    [string] $DirectoryUserId
    [string] $HierarchyGroupArn
    [string] $Username
    [string] $Password
    [string] $RoutingProfileArn
    [ConnectUserUserIdentityInfo] $IdentityInfo
    [ConnectUserUserPhoneConfig] $PhoneConfig
    [string[]] $SecurityProfileArns
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name InstanceArn -Value {
            $this.Properties['InstanceArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['InstanceArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DirectoryUserId -Value {
            $this.Properties['DirectoryUserId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DirectoryUserId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HierarchyGroupArn -Value {
            $this.Properties['HierarchyGroupArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['HierarchyGroupArn'] = 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 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 RoutingProfileArn -Value {
            $this.Properties['RoutingProfileArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RoutingProfileArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IdentityInfo -Value {
            $this.Properties['IdentityInfo']
        } -SecondValue {
            param([ValidateType(([ConnectUserUserIdentityInfo], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['IdentityInfo'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PhoneConfig -Value {
            $this.Properties['PhoneConfig']
        } -SecondValue {
            param([ValidateType(([ConnectUserUserPhoneConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PhoneConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecurityProfileArns -Value {
            $this.Properties['SecurityProfileArns']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['SecurityProfileArns'] = @($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
        }
    }

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

Write-Verbose "Importing class 'ConnectContactFlowModule'"

class ConnectContactFlowModule : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSConnectContactFlowModule'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-contactflowmodule.html'

    hidden [string[]] $_attributes = @('ContactFlowModuleArn','Status')
    hidden [object] $_condition

    [string] $Type = 'AWS::Connect::ContactFlowModule'
    [string] $InstanceArn
    [string] $Name
    [string] $Content
    [string] $Description
    [string] $State
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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