(* Options: Date: 2025-05-24 22:35:18 Version: 8.71 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://team.evovoice.io //GlobalNamespace: //MakeDataContractsExtensible: False //AddReturnMarker: True //AddDescriptionAsComments: True //AddDataContractAttributes: False //AddIndexesToDataMembers: False //AddGeneratedCodeAttributes: False //AddResponseStatus: False //AddImplicitVersion: //ExportValueTypes: False IncludeTypes: AppGetCallHistory.* //ExcludeTypes: //InitializeCollections: False //AddNamespaces: *) namespace Voice.Api open System open System.IO open System.Collections open System.Collections.Generic open System.Runtime.Serialization open ServiceStack open ServiceStack.DataAnnotations type SortOrders = | Ascend = 0 | Descend = 1 [<AllowNullLiteral>] type ListRequest<T>() = interface IGet ///<summary> ///The page of data to retrieve ///</summary> [<ApiMember(Description="The page of data to retrieve")>] member val Page:Int32 = new Int32() with get,set ///<summary> ///If you want all objects to be returned. This should be used with care ///</summary> [<ApiMember(Description="If you want all objects to be returned. This should be used with care")>] member val All:Boolean = new Boolean() with get,set ///<summary> ///The number per page to retrieve ///</summary> [<ApiMember(Description="The number per page to retrieve")>] member val CountPerPage:Int32 = new Int32() with get,set ///<summary> ///Specific IDs ///</summary> [<ApiMember(Description="Specific IDs")>] member val SpecificIds:ResizeArray<String> = null with get,set ///<summary> ///Specify a sort field ///</summary> [<ApiMember(Description="Specify a sort field")>] member val SortField:String = null with get,set ///<summary> ///Specify a sort order ///</summary> [<ApiMember(Description="Specify a sort order")>] member val SortOrder:SortOrders = new SortOrders() with get,set ///<summary> ///Disables total / page counts - improves performance. Returns only data. If there is no more data, Items will be empty array ///</summary> [<ApiMember(Description="Disables total / page counts - improves performance. Returns only data. If there is no more data, Items will be empty array")>] member val SimplifiedPaging:Boolean = new Boolean() with get,set type FlowChannels = | Voice = 0 | Chat = 1 | Fax = 2 type SessionDirections = | Incoming = 0 | Outgoing = 1 type SessionCallState = | Disconnected = 0 | Ringing = 1 | Connected = 2 | Hold = 3 | Passive = 4 type SessionHoldReasons = | None = 0 | Transferring = 1 type SessionQueueStates = | None = 0 | Queued = 1 | Ringing = 2 | Connected = 3 | Hold = 4 | Disconnected = 5 [<AllowNullLiteral>] type EntityInfo() = ///<summary> ///The ID of the object ///</summary> [<ApiMember(Description="The ID of the object")>] member val Id:String = null with get,set ///<summary> ///The date the object was created ///</summary> [<ApiMember(Description="The date the object was created")>] member val DateCreated:String = null with get,set ///<summary> ///The date the object was last modified ///</summary> [<ApiMember(Description="The date the object was last modified")>] member val DateLastModified:String = null with get,set ///<summary> ///The user that created this object ///</summary> [<ApiMember(Description="The user that created this object")>] member val CreatedBy:String = null with get,set ///<summary> ///The user that last modified this object ///</summary> [<ApiMember(Description="The user that last modified this object")>] member val LastModifiedBy:String = null with get,set type SessionDialState = | None = 0 | Active = 1 [<AllowNullLiteral>] type CustomerBreadcrumb() = member val Id:String = null with get,set member val Name:String = null with get,set [<AllowNullLiteral>] type SessionLogInfo() = member val Date:String = null with get,set member val Message:String = null with get,set type SessionMemberCallState = | None = 0 | Ringing = 1 | Connected = 2 | Hold = 3 type SessionMemberRoles = | None = 0 | Caller = 1 | Agent = 2 | Transfer = 3 [<AllowNullLiteral>] type SessionMemberInfo() = member val Identity:String = null with get,set member val EndpointId:String = null with get,set member val DisplayName:String = null with get,set member val IsOriginalMember:Boolean = new Boolean() with get,set member val AvatarUrl:String = null with get,set member val ApplicationData:Dictionary<String, String> = null with get,set member val CallState:SessionMemberCallState = new SessionMemberCallState() with get,set member val Role:SessionMemberRoles = new SessionMemberRoles() with get,set member val CallSid:String = null with get,set member val Muted:Boolean = new Boolean() with get,set [<AllowNullLiteral>] type SessionInfo() = inherit EntityInfo() ///<summary> ///The state of the session ///</summary> [<ApiMember(Description="The state of the session")>] member val DialState:SessionDialState = new SessionDialState() with get,set ///<summary> ///The call state of the session ///</summary> [<ApiMember(Description="The call state of the session")>] member val CallState:SessionCallState = new SessionCallState() with get,set ///<summary> ///The queue state of the session ///</summary> [<ApiMember(Description="The queue state of the session")>] member val QueueState:SessionQueueStates = new SessionQueueStates() with get,set ///<summary> ///The ID of the account associated with the flow ///</summary> [<ApiMember(Description="The ID of the account associated with the flow")>] member val AccountId:String = null with get,set ///<summary> ///The name of the account associated with the session ///</summary> [<ApiMember(Description="The name of the account associated with the session")>] member val AccountName:String = null with get,set ///<summary> ///The ID of the customer this session is associated with ///</summary> [<ApiMember(Description="The ID of the customer this session is associated with")>] member val CustomerId:String = null with get,set ///<summary> ///The customer breadcrumb this session is associated with ///</summary> [<ApiMember(Description="The customer breadcrumb this session is associated with")>] member val CustomerBreadcrumb:ResizeArray<CustomerBreadcrumb> = null with get,set ///<summary> ///The name of the customer this session is associated with ///</summary> [<ApiMember(Description="The name of the customer this session is associated with")>] member val CustomerName:String = null with get,set ///<summary> ///The ID of the endpoint associated with this session ///</summary> [<ApiMember(Description="The ID of the endpoint associated with this session")>] member val EndpointId:String = null with get,set ///<summary> ///The name of the endpoint associated with this session ///</summary> [<ApiMember(Description="The name of the endpoint associated with this session")>] member val EndpointName:String = null with get,set ///<summary> ///The date the call completed ///</summary> [<ApiMember(Description="The date the call completed")>] member val DateCompleted:String = null with get,set ///<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)")>] member val Destination:String = null with get,set ///<summary> ///The to address if any ///</summary> [<ApiMember(Description="The to address if any")>] member val ToAddress:String = null with get,set ///<summary> ///The from address if any ///</summary> [<ApiMember(Description="The from address if any")>] member val FromAddress:String = null with get,set ///<summary> ///The from name if any ///</summary> [<ApiMember(Description="The from name if any")>] member val FromName:String = null with get,set ///<summary> ///Answered by name (if any) ///</summary> [<ApiMember(Description="Answered by name (if any)")>] member val AnsweredByName:String = null with get,set ///<summary> ///The ID of the queue member assigned to this call ///</summary> [<ApiMember(Description="The ID of the queue member assigned to this call")>] member val QueueMemberId:String = null with get,set ///<summary> ///The flow channel ///</summary> [<ApiMember(Description="The flow channel")>] member val Channel:FlowChannels = new FlowChannels() with get,set ///<summary> ///Has the session ended ///</summary> [<ApiMember(Description="Has the session ended")>] member val Ended:Boolean = new Boolean() with get,set ///<summary> ///The outcome of the call ///</summary> [<ApiMember(Description="The outcome of the call")>] member val Outcome:String = null with get,set ///<summary> ///The twilio Call SID of this session ///</summary> [<ApiMember(Description="The twilio Call SID of this session")>] member val CallSid:String = null with get,set ///<summary> ///Any console data for this session ///</summary> [<ApiMember(Description="Any console data for this session")>] member val ConsoleData:String = null with get,set ///<summary> ///The name of the hold queue for this call ///</summary> [<ApiMember(Description="The name of the hold queue for this call")>] member val HoldQueueName:String = null with get,set ///<summary> ///The user ID who put this call on hold ///</summary> [<ApiMember(Description="The user ID who put this call on hold")>] member val HeldByUserId:String = null with get,set ///<summary> ///The reason for the hold ///</summary> [<ApiMember(Description="The reason for the hold")>] member val HoldReason:SessionHoldReasons = new SessionHoldReasons() with get,set ///<summary> ///The SID of the conference if in a conference call ///</summary> [<ApiMember(Description="The SID of the conference if in a conference call")>] member val ConferenceSid:String = null with get,set ///<summary> ///The display name for this session ///</summary> [<ApiMember(Description="The display name for this session")>] member val DisplayName:String = null with get,set ///<summary> ///The log entries for this session ///</summary> [<ApiMember(Description="The log entries for this session")>] member val Log:ResizeArray<SessionLogInfo> = null with get,set ///<summary> ///The members of this session ///</summary> [<ApiMember(Description="The members of this session")>] member val Members:ResizeArray<SessionMemberInfo> = null with get,set ///<summary> ///The callback number (typically used for SIP to User calls) ///</summary> [<ApiMember(Description="The callback number (typically used for SIP to User calls)")>] member val CallbackNumber:String = null with get,set ///<summary> ///The ID of the endpoint that answered ///</summary> [<ApiMember(Description="The ID of the endpoint that answered")>] member val AnsweredById:String = null with get,set ///<summary> ///Is this session incoming or outgoing? ///</summary> [<ApiMember(Description="Is this session incoming or outgoing?")>] member val Direction:SessionDirections = new SessionDirections() with get,set ///<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)")>] member val FromPhoneNumber:String = null with get,set ///<summary> ///The Call SID of the most recently added conference participant ///</summary> [<ApiMember(Description="The Call SID of the most recently added conference participant")>] member val MostRecentParticipantCallSid:String = null with get,set ///<summary> ///Was this session missed? ///</summary> [<ApiMember(Description="Was this session missed?")>] member val WasMissed:Boolean = new Boolean() with get,set ///<summary> ///The ring queue that the call is currently in ///</summary> [<ApiMember(Description="The ring queue that the call is currently in")>] member val RingQueueId:String = null with get,set [<AllowNullLiteral>] type ListResponse<T>() = ///<summary> ///The items ///</summary> [<ApiMember(Description="The items")>] member val Items:ResizeArray<T> = null with get,set ///<summary> ///The total number of items ///</summary> [<ApiMember(Description="The total number of items")>] member val TotalCount:Int32 = new Int32() with get,set ///<summary> ///The total number of pages ///</summary> [<ApiMember(Description="The total number of pages")>] member val TotalPages:Int32 = new Int32() with get,set ///<summary> ///Are there more pages of items? Used with simplified paging ///</summary> [<ApiMember(Description="Are there more pages of items? Used with simplified paging")>] member val HasMorePages:Boolean = new Boolean() with get,set [<Route("/portal/call-history", "GET")>] [<AllowNullLiteral>] type AppGetCallHistory() = inherit ListRequest<SessionInfo>() interface IReturn<ListResponse<SessionInfo>> member val AccountId:String = null with get,set member val CustomerId:String = null with get,set