Evo Voice

<back to all web services

NewFile

Creates a new file. You can either upload directly or via form files multipart

Requires Authentication
Requires any of the roles:SystemAdministrator, Manager, Customer
The following routes are available for this service:
POST/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>
    ///Creates a new file. You can either upload directly or via form files multipart
    ///</summary>
    [<Api(Description="Creates a new file. You can either upload directly or via form files multipart")>]
    [<AllowNullLiteral>]
    type NewFile() = 
        ///<summary>
        ///The name of the file
        ///</summary>
        [<ApiMember(Description="The name of the file")>]
        member val FileName:String = null with get,set

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

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

F# NewFile 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.

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

<NewFile xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Voice.Api.Files">
  <AccountId>String</AccountId>
  <CustomerId>String</CustomerId>
  <FileName>String</FileName>
</NewFile>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

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