Evo Voice

<back to all web services

ListFiles

Query for files

Requires Authentication
Requires any of the roles:SystemAdministrator, Manager, Customer
The following routes are available for this service:
GET/files
namespace Voice.Api

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<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 FileTypes =
        | Upload = 0
        | VoiceMessage = 1
        | CallRecording = 2
        | Fax = 3
        | Attachment = 4
        | FaxOutgoing = 5

    [<AllowNullLiteral>]
    type CustomerBreadcrumb() = 
        member val Id:String = null with get,set
        member val Name:String = null with get,set

    [<AllowNullLiteral>]
    type FileInfo() = 
        inherit EntityInfo()
        ///<summary>
        ///The type of file this is
        ///</summary>
        [<ApiMember(Description="The type of file this is")>]
        member val Type:FileTypes = new FileTypes() with get,set

        ///<summary>
        ///The account ID this file is associated with
        ///</summary>
        [<ApiMember(Description="The account ID this file is associated with")>]
        member val AccountId:String = null with get,set

        ///<summary>
        ///The name of the account this file is associated with
        ///</summary>
        [<ApiMember(Description="The name of the account this file is associated with")>]
        member val AccountName:String = null with get,set

        ///<summary>
        ///The ID of the customer this file is associated with
        ///</summary>
        [<ApiMember(Description="The ID of the customer this file is associated with")>]
        member val CustomerId:String = null with get,set

        ///<summary>
        ///The name of the customer this file is associated with
        ///</summary>
        [<ApiMember(Description="The name of the customer this file is associated with")>]
        member val CustomerName:String = null with get,set

        ///<summary>
        ///The breadcrumb to the customer for this file
        ///</summary>
        [<ApiMember(Description="The breadcrumb to the customer for this file")>]
        member val CustomerBreadcrumb:ResizeArray<CustomerBreadcrumb> = new ResizeArray<CustomerBreadcrumb>() with get,set

        ///<summary>
        ///The ID of the user this file is assocaited with
        ///</summary>
        [<ApiMember(Description="The ID of the user this file is assocaited with")>]
        member val UserId:String = null with get,set

        ///<summary>
        ///The name of the user this file is associated with
        ///</summary>
        [<ApiMember(Description="The name of the user this file is associated with")>]
        member val UserName:String = null with get,set

        ///<summary>
        ///The original file name for the file
        ///</summary>
        [<ApiMember(Description="The original file name for the file")>]
        member val FileName:String = null with get,set

        ///<summary>
        ///The URI of the file
        ///</summary>
        [<ApiMember(Description="The URI of the file")>]
        member val Uri:String = null with get,set

        ///<summary>
        ///The Content type of the file
        ///</summary>
        [<ApiMember(Description="The Content type of the file")>]
        member val ContentType:String = null with get,set

        ///<summary>
        ///The size of the file
        ///</summary>
        [<ApiMember(Description="The size of the file")>]
        member val ContentLength:Int64 = new Int64() with get,set

        ///<summary>
        ///The Twilio ID of the recording
        ///</summary>
        [<ApiMember(Description="The Twilio ID of the recording")>]
        member val RecordingSid:String = null with get,set

        ///<summary>
        ///The duration of the recording in seconds
        ///</summary>
        [<ApiMember(Description="The duration of the recording in seconds")>]
        member val RecordingDuration:Int32 = new Int32() with get,set

        ///<summary>
        ///Who is the recording from?
        ///</summary>
        [<ApiMember(Description="Who is the recording from?")>]
        member val RecordingFrom:String = null with get,set

        ///<summary>
        ///Transcription (if available)
        ///</summary>
        [<ApiMember(Description="Transcription (if available)")>]
        member val Transcription:String = null with get,set

        ///<summary>
        ///From Address (e.g. caller ID) for incoming calls
        ///</summary>
        [<ApiMember(Description="From Address (e.g. caller ID) for incoming calls")>]
        member val FromAddress:String = null with get,set

        ///<summary>
        ///To Address (e.g. dialed number) for outgoing calls
        ///</summary>
        [<ApiMember(Description="To Address (e.g. dialed number) for outgoing calls")>]
        member val ToAddress:String = null with get,set

    ///<summary>
    ///Query for files
    ///</summary>
    [<Api(Description="Query for files")>]
    [<AllowNullLiteral>]
    type ListFiles() = 
        inherit ListRequest<FileInfo>()
        ///<summary>
        ///Filter by account id
        ///</summary>
        [<ApiMember(Description="Filter by account id")>]
        member val AccountIds:ResizeArray<String> = new ResizeArray<String>() with get,set

        ///<summary>
        ///Filter by customer id
        ///</summary>
        [<ApiMember(Description="Filter by customer id")>]
        member val CustomerIds:ResizeArray<String> = new ResizeArray<String>() with get,set

        ///<summary>
        ///Filter by specific session
        ///</summary>
        [<ApiMember(Description="Filter by specific session")>]
        member val SessionId:String = null with get,set

        ///<summary>
        ///Filter by file name (contains filter)
        ///</summary>
        [<ApiMember(Description="Filter by file name (contains filter)")>]
        member val FileName:String = null with get,set

        ///<summary>
        ///Filter by content type (contains filter)
        ///</summary>
        [<ApiMember(Description="Filter by content type (contains filter)")>]
        member val ContentType:String = null with get,set

        ///<summary>
        ///Filter by type
        ///</summary>
        [<ApiMember(Description="Filter by type")>]
        member val Type:Nullable<FileTypes> = new Nullable<FileTypes>() with get,set

        ///<summary>
        ///Filter by date created (start of range)
        ///</summary>
        [<ApiMember(Description="Filter by date created (start of range)")>]
        member val DateCreatedStart:String = null with get,set

        ///<summary>
        ///Filter by date created (end of range)
        ///</summary>
        [<ApiMember(Description="Filter by date created (end of range)")>]
        member val DateCreatedEnd:String = null with get,set

        ///<summary>
        ///Filter by agent ID
        ///</summary>
        [<ApiMember(Description="Filter by agent ID")>]
        member val UserId:String = null with get,set

        ///<summary>
        ///Search transcription
        ///</summary>
        [<ApiMember(Description="Search transcription")>]
        member val TranscriptionContains:String = null with get,set

    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> = new ResizeArray<String>() 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

    [<AllowNullLiteral>]
    type BillingItem() = 
        member val BaseCost:Double = new Double() with get,set
        member val RawUnitMultiplier:Double = new Double() with get,set
        member val UnitCost:Double = new Double() with get,set
        member val Allowance:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type BillingSettings() = 
        member val Base:BillingItem = null with get,set
        member val LocalNumbers:BillingItem = null with get,set
        member val TollFreeNumbers:BillingItem = null with get,set
        member val InboundVoiceCalls:BillingItem = null with get,set
        member val OutboundVoiceCalls:BillingItem = null with get,set
        member val InboundFaxes:BillingItem = null with get,set
        member val OutboundFaxes:BillingItem = null with get,set
        member val InboundSmsMessages:BillingItem = null with get,set
        member val OutboundSmsMessages:BillingItem = null with get,set

    [<AllowNullLiteral>]
    type AccountInfo() = 
        inherit EntityInfo()
        ///<summary>
        ///The name of this account
        ///</summary>
        [<ApiMember(Description="The name of this account")>]
        member val Name:String = null with get,set

        ///<summary>
        ///The ID of this account's parent
        ///</summary>
        [<ApiMember(Description="The ID of this account's parent")>]
        member val ParentAccountId:String = null with get,set

        ///<summary>
        ///The twilio account SID
        ///</summary>
        [<ApiMember(Description="The twilio account SID")>]
        member val TwilioAccountSid:String = null with get,set

        ///<summary>
        ///The ancestors of this account. Useful for breadcrumbs
        ///</summary>
        [<ApiMember(Description="The ancestors of this account. Useful for breadcrumbs")>]
        member val AncestorIds:ResizeArray<String> = new ResizeArray<String>() with get,set

        ///<summary>
        ///The max number of phone numbers this account can have
        ///</summary>
        [<ApiMember(Description="The max number of phone numbers this account can have")>]
        member val MaxPhoneNumbers:Int32 = new Int32() with get,set

        ///<summary>
        ///This account is BYOA
        ///</summary>
        [<ApiMember(Description="This account is BYOA")>]
        member val IsBYOA:Boolean = new Boolean() with get,set

        ///<summary>
        ///TrustHub Profile Sid
        ///</summary>
        [<ApiMember(Description="TrustHub Profile Sid")>]
        member val TrustHubProfileSid:String = null with get,set

        ///<summary>
        ///The ID of the logo file
        ///</summary>
        [<ApiMember(Description="The ID of the logo file")>]
        member val LogoId:String = null with get,set

        ///<summary>
        ///The URI of the logo file
        ///</summary>
        [<ApiMember(Description="The URI of the logo file")>]
        member val LogoUri:String = null with get,set

        ///<summary>
        ///The billing settings for this account
        ///</summary>
        [<ApiMember(Description="The billing settings for this account")>]
        member val BillingSettings:BillingSettings = null with get,set

    [<AllowNullLiteral>]
    type ListResponse<AccountInfo>() = 
        ///<summary>
        ///The items
        ///</summary>
        [<ApiMember(Description="The items")>]
        member val Items:ResizeArray<AccountInfo> = new ResizeArray<AccountInfo>() 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

F# ListFiles DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /files HTTP/1.1 
Host: evovoice.io 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<ListResponseOfFileInfoS8MZGchS xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Voice.Api">
  <HasMorePages>false</HasMorePages>
  <Items xmlns:d2p1="http://schemas.datacontract.org/2004/07/Voice.Api.Files">
    <d2p1:FileInfo>
      <CreatedBy>String</CreatedBy>
      <DateCreated>String</DateCreated>
      <DateLastModified>String</DateLastModified>
      <Id>String</Id>
      <LastModifiedBy>String</LastModifiedBy>
      <d2p1:AccountId>String</d2p1:AccountId>
      <d2p1:AccountName>String</d2p1:AccountName>
      <d2p1:ContentLength>0</d2p1:ContentLength>
      <d2p1:ContentType>String</d2p1:ContentType>
      <d2p1:CustomerBreadcrumb xmlns:d4p1="http://schemas.datacontract.org/2004/07/Voice.Api.Customers">
        <d4p1:CustomerBreadcrumb>
          <d4p1:Id>String</d4p1:Id>
          <d4p1:Name>String</d4p1:Name>
        </d4p1:CustomerBreadcrumb>
      </d2p1:CustomerBreadcrumb>
      <d2p1:CustomerId>String</d2p1:CustomerId>
      <d2p1:CustomerName>String</d2p1:CustomerName>
      <d2p1:FileName>String</d2p1:FileName>
      <d2p1:FromAddress>String</d2p1:FromAddress>
      <d2p1:RecordingDuration>0</d2p1:RecordingDuration>
      <d2p1:RecordingFrom>String</d2p1:RecordingFrom>
      <d2p1:RecordingSid>String</d2p1:RecordingSid>
      <d2p1:ToAddress>String</d2p1:ToAddress>
      <d2p1:Transcription>String</d2p1:Transcription>
      <d2p1:Type>Upload</d2p1:Type>
      <d2p1:Uri>String</d2p1:Uri>
      <d2p1:UserId>String</d2p1:UserId>
      <d2p1:UserName>String</d2p1:UserName>
    </d2p1:FileInfo>
  </Items>
  <TotalCount>0</TotalCount>
  <TotalPages>0</TotalPages>
</ListResponseOfFileInfoS8MZGchS>