Required role: | SystemAdministrator |
POST | /accounts |
---|
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using Voice.Api.Accounts;
using Voice.Api;
namespace Voice.Api
{
public partial class EntityInfo
{
///<summary>
///The ID of the object
///</summary>
[ApiMember(Description="The ID of the object")]
public virtual string Id { get; set; }
///<summary>
///The date the object was created
///</summary>
[ApiMember(Description="The date the object was created")]
public virtual string DateCreated { get; set; }
///<summary>
///The date the object was last modified
///</summary>
[ApiMember(Description="The date the object was last modified")]
public virtual string DateLastModified { get; set; }
///<summary>
///The user that created this object
///</summary>
[ApiMember(Description="The user that created this object")]
public virtual string CreatedBy { get; set; }
///<summary>
///The user that last modified this object
///</summary>
[ApiMember(Description="The user that last modified this object")]
public virtual string LastModifiedBy { get; set; }
}
}
namespace Voice.Api.Accounts
{
public partial class AccountInfo
: EntityInfo
{
///<summary>
///The name of this account
///</summary>
[ApiMember(Description="The name of this account")]
public virtual string Name { get; set; }
///<summary>
///The ID of this account's parent
///</summary>
[ApiMember(Description="The ID of this account's parent")]
public virtual string ParentAccountId { get; set; }
///<summary>
///The twilio account SID
///</summary>
[ApiMember(Description="The twilio account SID")]
public virtual string TwilioAccountSid { get; set; }
///<summary>
///The ancestors of this account. Useful for breadcrumbs
///</summary>
[ApiMember(Description="The ancestors of this account. Useful for breadcrumbs")]
public virtual List<string> AncestorIds { 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")]
public virtual int MaxPhoneNumbers { get; set; }
///<summary>
///This account is BYOA
///</summary>
[ApiMember(Description="This account is BYOA")]
public virtual bool IsBYOA { get; set; }
///<summary>
///TrustHub Profile Sid
///</summary>
[ApiMember(Description="TrustHub Profile Sid")]
public virtual string TrustHubProfileSid { get; set; }
///<summary>
///The ID of the logo file
///</summary>
[ApiMember(Description="The ID of the logo file")]
public virtual string LogoId { get; set; }
///<summary>
///The URI of the logo file
///</summary>
[ApiMember(Description="The URI of the logo file")]
public virtual string LogoUri { get; set; }
///<summary>
///The billing settings for this account
///</summary>
[ApiMember(Description="The billing settings for this account")]
public virtual BillingSettings BillingSettings { get; set; }
}
public partial class BillingItem
{
public virtual double BaseCost { get; set; }
public virtual double RawUnitMultiplier { get; set; }
public virtual double UnitCost { get; set; }
public virtual int Allowance { get; set; }
}
public partial class BillingSettings
{
public virtual BillingItem Base { get; set; }
public virtual BillingItem LocalNumbers { get; set; }
public virtual BillingItem TollFreeNumbers { get; set; }
public virtual BillingItem InboundVoiceCalls { get; set; }
public virtual BillingItem OutboundVoiceCalls { get; set; }
public virtual BillingItem InboundFaxes { get; set; }
public virtual BillingItem OutboundFaxes { get; set; }
public virtual BillingItem InboundSmsMessages { get; set; }
public virtual BillingItem OutboundSmsMessages { get; set; }
public virtual BillingItem AIInsights { get; set; }
public virtual BillingItem AILiveMinutes { get; set; }
}
///<summary>
///Creates a new account
///</summary>
[Api(Description="Creates a new account")]
public partial class NewAccount
: IPost
{
///<summary>
///The name of the new account
///</summary>
[ApiMember(Description="The name of the new account")]
public virtual string Name { get; set; }
///<summary>
///The Twilio Account SID (for BYOA)
///</summary>
[ApiMember(Description="The Twilio Account SID (for BYOA)")]
public virtual string TwilioAccountSid { get; set; }
///<summary>
///The Twilio Auth Token (for BYOA)
///</summary>
[ApiMember(Description="The Twilio Auth Token (for BYOA)")]
public virtual string TwilioAuthToken { get; set; }
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /accounts HTTP/1.1
Host: team.evovoice.io
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
name: String,
twilioAccountSid: String,
twilioAuthToken: String
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { name: String, parentAccountId: String, twilioAccountSid: String, ancestorIds: [ String ], maxPhoneNumbers: 0, isBYOA: False, trustHubProfileSid: String, logoId: String, logoUri: String, billingSettings: { base: { baseCost: 0, rawUnitMultiplier: 0, unitCost: 0, allowance: 0 }, localNumbers: { baseCost: 0, rawUnitMultiplier: 0, unitCost: 0, allowance: 0 }, tollFreeNumbers: { baseCost: 0, rawUnitMultiplier: 0, unitCost: 0, allowance: 0 }, inboundVoiceCalls: { baseCost: 0, rawUnitMultiplier: 0, unitCost: 0, allowance: 0 }, outboundVoiceCalls: { baseCost: 0, rawUnitMultiplier: 0, unitCost: 0, allowance: 0 }, inboundFaxes: { baseCost: 0, rawUnitMultiplier: 0, unitCost: 0, allowance: 0 }, outboundFaxes: { baseCost: 0, rawUnitMultiplier: 0, unitCost: 0, allowance: 0 }, inboundSmsMessages: { baseCost: 0, rawUnitMultiplier: 0, unitCost: 0, allowance: 0 }, outboundSmsMessages: { baseCost: 0, rawUnitMultiplier: 0, unitCost: 0, allowance: 0 }, aiInsights: { baseCost: 0, rawUnitMultiplier: 0, unitCost: 0, allowance: 0 }, aiLiveMinutes: { baseCost: 0, rawUnitMultiplier: 0, unitCost: 0, allowance: 0 } }, id: String, dateCreated: String, dateLastModified: String, createdBy: String, lastModifiedBy: String }