Evo Voice

<back to all web services

NewCustomer

Creates a new customer

Requires Authentication
Requires any of the roles:SystemAdministrator, Manager, Customer
The following routes are available for this service:
POST/customers


export class NodeParameterMap
{
    [key:string] : NodeParameter;

    public constructor(init?: Partial<NodeParameterMap>) { (Object as any).assign(this, init); }
}


export class EntityInfo
{
    /**
    * The ID of the object
    */
    // @ApiMember(Description="The ID of the object")
    public id?: string;

    /**
    * The date the object was created
    */
    // @ApiMember(Description="The date the object was created")
    public dateCreated?: string;

    /**
    * The date the object was last modified
    */
    // @ApiMember(Description="The date the object was last modified")
    public dateLastModified?: string;

    /**
    * The user that created this object
    */
    // @ApiMember(Description="The user that created this object")
    public createdBy?: string;

    /**
    * The user that last modified this object
    */
    // @ApiMember(Description="The user that last modified this object")
    public lastModifiedBy?: string;

    public constructor(init?: Partial<EntityInfo>) { (Object as any).assign(this, init); }
}

export class CustomerBreadcrumb
{
    public id?: string;
    public name?: string;

    public constructor(init?: Partial<CustomerBreadcrumb>) { (Object as any).assign(this, init); }
}

export class Value
{
    public boolValue?: boolean;
    public stringValue?: string;
    public numberValue?: number;
    public listValue?: Struct[];
    public structValue?: Struct;

    public constructor(init?: Partial<Value>) { (Object as any).assign(this, init); }
}

export class Struct
{

    public constructor(init?: Partial<Struct>) { (Object as any).assign(this, init); }
}

export enum TagColors
{
    Magenta = 'Magenta',
    Red = 'Red',
    Volcano = 'Volcano',
    Orange = 'Orange',
    Gold = 'Gold',
    Lime = 'Lime',
    Green = 'Green',
    Cyan = 'Cyan',
    Blue = 'Blue',
    GeekBlue = 'GeekBlue',
    Purple = 'Purple',
}

export class Tag
{
    public id?: string;
    public name?: string;
    public color?: TagColors;

    public constructor(init?: Partial<Tag>) { (Object as any).assign(this, init); }
}

export enum SimpleSchedulingRuleTypes
{
    Always = 'Always',
    CustomerState = 'CustomerState',
    Time = 'Time',
}

export class ScheduleDay
{
    public offset?: number;
    public dayOfWeek?: DayOfWeek;

    public constructor(init?: Partial<ScheduleDay>) { (Object as any).assign(this, init); }
}

export enum SchedulingRuleFrequency
{
    None = 'None',
    Secondly = 'Secondly',
    Minutely = 'Minutely',
    Hourly = 'Hourly',
    Daily = 'Daily',
    Weekly = 'Weekly',
    Monthly = 'Monthly',
    Yearly = 'Yearly',
}

export class SchedulingRule
{
    public id?: string;
    public name?: string;
    public priority?: number;
    public state?: string;
    public source?: string;
    public condition?: string;
    public simpleRuleType?: SimpleSchedulingRuleTypes;
    public customerState?: string;
    public flowId?: string;
    public flowParams?: Struct;
    public isAllDay?: boolean;
    public startDate?: string;
    public startTime?: string;
    public endTime?: string;
    public bySetPosition?: number[];
    public byMonth?: number[];
    public byWeekNo?: number[];
    public byYearDay?: number[];
    public byMonthDay?: number[];
    public byDay?: ScheduleDay[];
    public byHour?: number[];
    public byMinute?: number[];
    public interval?: number;
    public count?: number;
    public untilDate?: string;
    public frequency?: SchedulingRuleFrequency;

    public constructor(init?: Partial<SchedulingRule>) { (Object as any).assign(this, init); }
}

export class Schedule
{
    public timeZoneId?: string;
    public inherit?: boolean;
    public forceClosed?: boolean;
    public rules?: SchedulingRule[];
    public defaultState?: string;

    public constructor(init?: Partial<Schedule>) { (Object as any).assign(this, init); }
}

export class IntegrationData
{
    public thirdPartyId?: string;

    public constructor(init?: Partial<IntegrationData>) { (Object as any).assign(this, init); }
}

export class Dictionary<T> { [Key: string]: T; }

export class EntityIntegrationData extends Dictionary<IntegrationData>
{

    public constructor(init?: Partial<EntityIntegrationData>) { super(); (Object as any).assign(this, init); }
}

export class BillingItem
{
    public baseCost?: number;
    public rawUnitMultiplier?: number;
    public unitCost?: number;
    public allowance?: number;

    public constructor(init?: Partial<BillingItem>) { (Object as any).assign(this, init); }
}

export class BillingSettings
{
    public base?: BillingItem;
    public localNumbers?: BillingItem;
    public tollFreeNumbers?: BillingItem;
    public inboundVoiceCalls?: BillingItem;
    public outboundVoiceCalls?: BillingItem;
    public inboundFaxes?: BillingItem;
    public outboundFaxes?: BillingItem;
    public inboundSmsMessages?: BillingItem;
    public outboundSmsMessages?: BillingItem;

    public constructor(init?: Partial<BillingSettings>) { (Object as any).assign(this, init); }
}

export class AppSettings
{
    public enablePhoneNumberManagement?: boolean;
    public enableDeviceManagement?: boolean;
    public enableDialer?: boolean;
    public enableCallHistory?: boolean;
    public showFileNameInMessageCenter?: boolean;
    public chakraTheme?: string;
    public customCss?: string;
    public pageTitle?: string;
    public stringMappings?: string;
    public logoutUrl?: string;
    public portMyNumberUrl?: string;

    public constructor(init?: Partial<AppSettings>) { (Object as any).assign(this, init); }
}

export class CustomerInfo extends EntityInfo
{
    /**
    * The ID of the account associated with this customer
    */
    // @ApiMember(Description="The ID of the account associated with this customer")
    public accountId?: string;

    /**
    * The parent customer ID for this customer
    */
    // @ApiMember(Description="The parent customer ID for this customer")
    public parentCustomerId?: string;

    /**
    * The breadcrumb to this customer
    */
    // @ApiMember(Description="The breadcrumb to this customer")
    public breadcrumb?: CustomerBreadcrumb[];

    /**
    * The name of the account associated with this customer
    */
    // @ApiMember(Description="The name of the account associated with this customer")
    public accountName?: string;

    /**
    * Is this customer staging or production?
    */
    // @ApiMember(Description="Is this customer staging or production?")
    public isStaging?: boolean;

    /**
    * The name of the company
    */
    // @ApiMember(Description="The name of the company")
    public name?: string;

    /**
    * The reference ID for this company
    */
    // @ApiMember(Description="The reference ID for this company")
    public referenceId?: string;

    /**
    * This customer's data values
    */
    // @ApiMember(Description="This customer's data values")
    public data?: Struct;

    /**
    * The list of tags for this customer
    */
    // @ApiMember(Description="The list of tags for this customer")
    public tags?: Tag[];

    /**
    * This customer's schedule
    */
    // @ApiMember(Description="This customer's schedule")
    public schedule?: Schedule;

    /**
    * Integration data for this customer
    */
    // @ApiMember(Description="Integration data for this customer")
    public integrationData?: EntityIntegrationData;

    /**
    * Override this customer's billing settings? Otherwise inherits from parent
    */
    // @ApiMember(Description="Override this customer's billing settings? Otherwise inherits from parent")
    public overrideBillingSettings?: boolean;

    /**
    * Billing settings for this customer
    */
    // @ApiMember(Description="Billing settings for this customer")
    public billingSettings?: BillingSettings;

    /**
    * Should this customer override the parent customer's app settings
    */
    // @ApiMember(Description="Should this customer override the parent customer's app settings")
    public overrideAppSettings?: boolean;

    /**
    * App / Portal settings for this customer
    */
    // @ApiMember(Description="App / Portal settings for this customer")
    public appSettings?: AppSettings;

    public constructor(init?: Partial<CustomerInfo>) { super(init); (Object as any).assign(this, init); }
}

/**
* Creates a new customer
*/
// @Api(Description="Creates a new customer")
export class NewCustomer implements IPost
{
    /**
    * The account ID to associate this customer with
    */
    // @ApiMember(Description="The account ID to associate this customer with")
    public accountId?: string;

    /**
    * The name of the customer
    */
    // @ApiMember(Description="The name of the customer")
    public name?: string;

    /**
    * The parent customer for this customer
    */
    // @ApiMember(Description="The parent customer for this customer")
    public parentCustomerId?: string;

    /**
    * The reference ID for this customer (e.g. in a third party system)
    */
    // @ApiMember(Description="The reference ID for this customer (e.g. in a third party system)")
    public referenceId?: string;

    /**
    * Data values for this customer
    */
    // @ApiMember(Description="Data values for this customer")
    public data?: Struct;

    public constructor(init?: Partial<NewCustomer>) { (Object as any).assign(this, init); }
}

TypeScript NewCustomer DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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

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

{"accountId":"String","name":"String","parentCustomerId":"String","referenceId":"String","data":{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[null]}}],"structValue":{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[null]}}}}],"structValue":{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[null]}}],"structValue":{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[null]}}}}}}}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"accountId":"String","parentCustomerId":"String","breadcrumb":[{"id":"String","name":"String"}],"accountName":"String","isStaging":false,"name":"String","referenceId":"String","data":{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[null]}}],"structValue":{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[null]}}}}],"structValue":{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[null]}}],"structValue":{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[null]}}}}}},"tags":[{"id":"String","name":"String","color":"Magenta"}],"schedule":{"timeZoneId":"String","inherit":false,"forceClosed":false,"rules":[{"id":"String","name":"String","priority":0,"state":"String","source":"String","condition":"String","simpleRuleType":"Always","customerState":"String","flowId":"String","flowParams":{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[null]}}],"structValue":{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[null]}}}}],"structValue":{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[null]}}],"structValue":{"String":{"boolValue":false,"stringValue":"String","numberValue":0,"listValue":[null]}}}}}},"isAllDay":false,"startDate":"String","startTime":"String","endTime":"String","bySetPosition":[0],"byMonth":[0],"byWeekNo":[0],"byYearDay":[0],"byMonthDay":[0],"byDay":[{"offset":0,"dayOfWeek":"Sunday"}],"byHour":[0],"byMinute":[0],"interval":0,"count":0,"untilDate":"String","frequency":"None"}],"defaultState":"String"},"integrationData":{"String":{"thirdPartyId":"String"}},"overrideBillingSettings":false,"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}},"overrideAppSettings":false,"appSettings":{"enablePhoneNumberManagement":false,"enableDeviceManagement":false,"enableDialer":false,"enableCallHistory":false,"showFileNameInMessageCenter":false,"chakraTheme":"String","customCss":"String","pageTitle":"String","stringMappings":"String","logoutUrl":"String","portMyNumberUrl":"String"},"id":"String","dateCreated":"String","dateLastModified":"String","createdBy":"String","lastModifiedBy":"String"}