' Options:
'Date: 2025-07-13 05:44:58
'Version: 8.71
'Tip: To override a DTO option, remove "''" prefix before updating
'BaseUrl: https://team.evovoice.io
'
'''GlobalNamespace: 
'''MakePartial: True
'''MakeVirtual: True
'''MakeDataContractsExtensible: False
'''AddReturnMarker: True
'''AddDescriptionAsComments: True
'''AddDataContractAttributes: False
'''AddIndexesToDataMembers: False
'''AddGeneratedCodeAttributes: False
'''AddResponseStatus: False
'''AddImplicitVersion: 
'''InitializeCollections: False
'''ExportValueTypes: False
'IncludeTypes: GetActiveSessions.*
'''ExcludeTypes: 
'''AddNamespaces: 
'''AddDefaultXmlNamespace: http://schemas.servicestack.net/types

Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports Voice.Api.Sessions

Namespace Global

    Namespace Voice.Api.Sessions

        '''<Summary>
        '''Get your active sessions. Will eventually replace GetMySessions
        '''</Summary>
        <Route("/sessions/active", "GET")>
        <Api(Description:="Get your active sessions. Will eventually replace GetMySessions")>
        Public Partial Class GetActiveSessions
            Implements IReturn(Of GetActiveSessionsResponse)
        End Class

        Public Partial Class GetActiveSessionsResponse
            Public Overridable Property Sessions As List(Of SessionInfo)
        End Class

        Public Partial Class SessionInfo
            Inherits EntityInfo
            '''<Summary>
            '''The state of the session
            '''</Summary>
            <ApiMember(Description:="The state of the session")>
            Public Overridable Property DialState As SessionDialState

            '''<Summary>
            '''The call state of the session
            '''</Summary>
            <ApiMember(Description:="The call state of the session")>
            Public Overridable Property CallState As SessionCallState

            '''<Summary>
            '''The queue state of the session
            '''</Summary>
            <ApiMember(Description:="The queue state of the session")>
            Public Overridable Property QueueState As SessionQueueStates

            '''<Summary>
            '''The ID of the account associated with the flow
            '''</Summary>
            <ApiMember(Description:="The ID of the account associated with the flow")>
            Public Overridable Property AccountId As String

            '''<Summary>
            '''The name of the account associated with the session
            '''</Summary>
            <ApiMember(Description:="The name of the account associated with the session")>
            Public Overridable Property AccountName As String

            '''<Summary>
            '''The ID of the customer this session is associated with
            '''</Summary>
            <ApiMember(Description:="The ID of the customer this session is associated with")>
            Public Overridable Property CustomerId As String

            '''<Summary>
            '''The customer breadcrumb this session is associated with
            '''</Summary>
            <ApiMember(Description:="The customer breadcrumb this session is associated with")>
            Public Overridable Property CustomerBreadcrumb As List(Of CustomerBreadcrumb)

            '''<Summary>
            '''The name of the customer this session is associated with
            '''</Summary>
            <ApiMember(Description:="The name of the customer this session is associated with")>
            Public Overridable Property CustomerName As String

            '''<Summary>
            '''The ID of the endpoint associated with this session
            '''</Summary>
            <ApiMember(Description:="The ID of the endpoint associated with this session")>
            Public Overridable Property EndpointId As String

            '''<Summary>
            '''The name of the endpoint associated with this session
            '''</Summary>
            <ApiMember(Description:="The name of the endpoint associated with this session")>
            Public Overridable Property EndpointName As String

            '''<Summary>
            '''The date the call completed
            '''</Summary>
            <ApiMember(Description:="The date the call completed")>
            Public Overridable Property DateCompleted As String

            '''<Summary>
            '''The destination of the session (e.g. what was entered into the Dial box)
            '''</Summary>
            <ApiMember(Description:="The destination of the session (e.g. what was entered into the Dial box)")>
            Public Overridable Property Destination As String

            '''<Summary>
            '''The to address if any
            '''</Summary>
            <ApiMember(Description:="The to address if any")>
            Public Overridable Property ToAddress As String

            '''<Summary>
            '''The from address if any
            '''</Summary>
            <ApiMember(Description:="The from address if any")>
            Public Overridable Property FromAddress As String

            '''<Summary>
            '''The from name if any
            '''</Summary>
            <ApiMember(Description:="The from name if any")>
            Public Overridable Property FromName As String

            '''<Summary>
            '''Answered by name (if any)
            '''</Summary>
            <ApiMember(Description:="Answered by name (if any)")>
            Public Overridable Property AnsweredByName As String

            '''<Summary>
            '''The ID of the queue member assigned to this call
            '''</Summary>
            <ApiMember(Description:="The ID of the queue member assigned to this call")>
            Public Overridable Property QueueMemberId As String

            '''<Summary>
            '''The flow channel
            '''</Summary>
            <ApiMember(Description:="The flow channel")>
            Public Overridable Property Channel As FlowChannels

            '''<Summary>
            '''Has the session ended
            '''</Summary>
            <ApiMember(Description:="Has the session ended")>
            Public Overridable Property Ended As Boolean

            '''<Summary>
            '''The outcome of the call
            '''</Summary>
            <ApiMember(Description:="The outcome of the call")>
            Public Overridable Property Outcome As String

            '''<Summary>
            '''The twilio Call SID of this session
            '''</Summary>
            <ApiMember(Description:="The twilio Call SID of this session")>
            Public Overridable Property CallSid As String

            '''<Summary>
            '''Any console data for this session
            '''</Summary>
            <ApiMember(Description:="Any console data for this session")>
            Public Overridable Property ConsoleData As String

            '''<Summary>
            '''The name of the hold queue for this call
            '''</Summary>
            <ApiMember(Description:="The name of the hold queue for this call")>
            Public Overridable Property HoldQueueName As String

            '''<Summary>
            '''The user ID who put this call on hold
            '''</Summary>
            <ApiMember(Description:="The user ID who put this call on hold")>
            Public Overridable Property HeldByUserId As String

            '''<Summary>
            '''The reason for the hold
            '''</Summary>
            <ApiMember(Description:="The reason for the hold")>
            Public Overridable Property HoldReason As SessionHoldReasons

            '''<Summary>
            '''The SID of the conference if in a conference call
            '''</Summary>
            <ApiMember(Description:="The SID of the conference if in a conference call")>
            Public Overridable Property ConferenceSid As String

            '''<Summary>
            '''The display name for this session
            '''</Summary>
            <ApiMember(Description:="The display name for this session")>
            Public Overridable Property DisplayName As String

            '''<Summary>
            '''The log entries for this session
            '''</Summary>
            <ApiMember(Description:="The log entries for this session")>
            Public Overridable Property Log As List(Of SessionLogInfo)

            '''<Summary>
            '''The members of this session
            '''</Summary>
            <ApiMember(Description:="The members of this session")>
            Public Overridable Property Members As List(Of SessionMemberInfo)

            '''<Summary>
            '''The callback number (typically used for SIP to User calls)
            '''</Summary>
            <ApiMember(Description:="The callback number (typically used for SIP to User calls)")>
            Public Overridable Property CallbackNumber As String

            '''<Summary>
            '''The ID of the endpoint that answered
            '''</Summary>
            <ApiMember(Description:="The ID of the endpoint that answered")>
            Public Overridable Property AnsweredById As String

            '''<Summary>
            '''Is this session incoming or outgoing?
            '''</Summary>
            <ApiMember(Description:="Is this session incoming or outgoing?")>
            Public Overridable Property Direction As SessionDirections

            '''<Summary>
            '''The phone number that this session is coming from (used with SMS chats)
            '''</Summary>
            <ApiMember(Description:="The phone number that this session is coming from (used with SMS chats)")>
            Public Overridable Property FromPhoneNumber As String

            '''<Summary>
            '''The Call SID of the most recently added conference participant
            '''</Summary>
            <ApiMember(Description:="The Call SID of the most recently added conference participant")>
            Public Overridable Property MostRecentParticipantCallSid As String

            '''<Summary>
            '''Was this session missed?
            '''</Summary>
            <ApiMember(Description:="Was this session missed?")>
            Public Overridable Property WasMissed As Boolean

            '''<Summary>
            '''The ring queue that the call is currently in
            '''</Summary>
            <ApiMember(Description:="The ring queue that the call is currently in")>
            Public Overridable Property RingQueueId As String
        End Class
    End Namespace
End Namespace