| Required role: | SystemAdministrator |
| POST | /accounts |
|---|
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class EntityInfo:
# @ApiMember(Description="The ID of the object")
id: Optional[str] = None
"""
The ID of the object
"""
# @ApiMember(Description="The date the object was created")
date_created: Optional[str] = None
"""
The date the object was created
"""
# @ApiMember(Description="The date the object was last modified")
date_last_modified: Optional[str] = None
"""
The date the object was last modified
"""
# @ApiMember(Description="The user that created this object")
created_by: Optional[str] = None
"""
The user that created this object
"""
# @ApiMember(Description="The user that last modified this object")
last_modified_by: Optional[str] = None
"""
The user that last modified this object
"""
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BillingItem:
base_cost: float = 0.0
raw_unit_multiplier: float = 0.0
unit_cost: float = 0.0
allowance: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BillingSettings:
base: Optional[BillingItem] = None
local_numbers: Optional[BillingItem] = None
toll_free_numbers: Optional[BillingItem] = None
inbound_voice_calls: Optional[BillingItem] = None
outbound_voice_calls: Optional[BillingItem] = None
inbound_faxes: Optional[BillingItem] = None
outbound_faxes: Optional[BillingItem] = None
inbound_sms_messages: Optional[BillingItem] = None
outbound_sms_messages: Optional[BillingItem] = None
ai_insights: Optional[BillingItem] = None
ai_live_minutes: Optional[BillingItem] = None
ai_messages: Optional[BillingItem] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AccountInfo(EntityInfo):
# @ApiMember(Description="The name of this account")
name: Optional[str] = None
"""
The name of this account
"""
# @ApiMember(Description="The ID of this account's parent")
parent_account_id: Optional[str] = None
"""
The ID of this account's parent
"""
# @ApiMember(Description="The twilio account SID")
twilio_account_sid: Optional[str] = None
"""
The twilio account SID
"""
# @ApiMember(Description="The ancestors of this account. Useful for breadcrumbs")
ancestor_ids: Optional[List[str]] = None
"""
The ancestors of this account. Useful for breadcrumbs
"""
# @ApiMember(Description="The max number of phone numbers this account can have")
max_phone_numbers: int = 0
"""
The max number of phone numbers this account can have
"""
# @ApiMember(Description="This account is BYOA")
is_b_y_o_a: bool = False
"""
This account is BYOA
"""
# @ApiMember(Description="TrustHub Profile Sid")
trust_hub_profile_sid: Optional[str] = None
"""
TrustHub Profile Sid
"""
# @ApiMember(Description="The ID of the logo file")
logo_id: Optional[str] = None
"""
The ID of the logo file
"""
# @ApiMember(Description="The URI of the logo file")
logo_uri: Optional[str] = None
"""
The URI of the logo file
"""
# @ApiMember(Description="The billing settings for this account")
billing_settings: Optional[BillingSettings] = None
"""
The billing settings for this account
"""
# @Api(Description="Creates a new account")
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NewAccount(IPost):
"""
Creates a new account
"""
# @ApiMember(Description="The name of the new account")
name: Optional[str] = None
"""
The name of the new account
"""
# @ApiMember(Description="The Twilio Account SID (for BYOA)")
twilio_account_sid: Optional[str] = None
"""
The Twilio Account SID (for BYOA)
"""
# @ApiMember(Description="The Twilio Auth Token (for BYOA)")
twilio_auth_token: Optional[str] = None
"""
The Twilio Auth Token (for BYOA)
"""
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
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: application/xml
Content-Type: application/xml
Content-Length: length
<NewAccount xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Voice.Api.Accounts">
<Name>String</Name>
<TwilioAccountSid>String</TwilioAccountSid>
<TwilioAuthToken>String</TwilioAuthToken>
</NewAccount>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<AccountInfo xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Voice.Api.Accounts">
<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>
<AncestorIds xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d2p1:string>String</d2p1:string>
</AncestorIds>
<BillingSettings>
<AIInsights>
<Allowance>0</Allowance>
<BaseCost>0</BaseCost>
<RawUnitMultiplier>0</RawUnitMultiplier>
<UnitCost>0</UnitCost>
</AIInsights>
<AILiveMinutes>
<Allowance>0</Allowance>
<BaseCost>0</BaseCost>
<RawUnitMultiplier>0</RawUnitMultiplier>
<UnitCost>0</UnitCost>
</AILiveMinutes>
<AIMessages>
<Allowance>0</Allowance>
<BaseCost>0</BaseCost>
<RawUnitMultiplier>0</RawUnitMultiplier>
<UnitCost>0</UnitCost>
</AIMessages>
<Base>
<Allowance>0</Allowance>
<BaseCost>0</BaseCost>
<RawUnitMultiplier>0</RawUnitMultiplier>
<UnitCost>0</UnitCost>
</Base>
<InboundFaxes>
<Allowance>0</Allowance>
<BaseCost>0</BaseCost>
<RawUnitMultiplier>0</RawUnitMultiplier>
<UnitCost>0</UnitCost>
</InboundFaxes>
<InboundSmsMessages>
<Allowance>0</Allowance>
<BaseCost>0</BaseCost>
<RawUnitMultiplier>0</RawUnitMultiplier>
<UnitCost>0</UnitCost>
</InboundSmsMessages>
<InboundVoiceCalls>
<Allowance>0</Allowance>
<BaseCost>0</BaseCost>
<RawUnitMultiplier>0</RawUnitMultiplier>
<UnitCost>0</UnitCost>
</InboundVoiceCalls>
<LocalNumbers>
<Allowance>0</Allowance>
<BaseCost>0</BaseCost>
<RawUnitMultiplier>0</RawUnitMultiplier>
<UnitCost>0</UnitCost>
</LocalNumbers>
<OutboundFaxes>
<Allowance>0</Allowance>
<BaseCost>0</BaseCost>
<RawUnitMultiplier>0</RawUnitMultiplier>
<UnitCost>0</UnitCost>
</OutboundFaxes>
<OutboundSmsMessages>
<Allowance>0</Allowance>
<BaseCost>0</BaseCost>
<RawUnitMultiplier>0</RawUnitMultiplier>
<UnitCost>0</UnitCost>
</OutboundSmsMessages>
<OutboundVoiceCalls>
<Allowance>0</Allowance>
<BaseCost>0</BaseCost>
<RawUnitMultiplier>0</RawUnitMultiplier>
<UnitCost>0</UnitCost>
</OutboundVoiceCalls>
<TollFreeNumbers>
<Allowance>0</Allowance>
<BaseCost>0</BaseCost>
<RawUnitMultiplier>0</RawUnitMultiplier>
<UnitCost>0</UnitCost>
</TollFreeNumbers>
</BillingSettings>
<IsBYOA>false</IsBYOA>
<LogoId>String</LogoId>
<LogoUri>String</LogoUri>
<MaxPhoneNumbers>0</MaxPhoneNumbers>
<Name>String</Name>
<ParentAccountId>String</ParentAccountId>
<TrustHubProfileSid>String</TrustHubProfileSid>
<TwilioAccountSid>String</TwilioAccountSid>
</AccountInfo>