Requires any of the roles: | SystemAdministrator, Manager, Customer |
POST | /customers/{customerId}/staging |
---|
"use strict";
export class EntityInfo {
/** @param {{id?:string,dateCreated?:string,dateLastModified?:string,createdBy?:string,lastModifiedBy?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {string}
* @description The ID of the object */
id;
/**
* @type {string}
* @description The date the object was created */
dateCreated;
/**
* @type {string}
* @description The date the object was last modified */
dateLastModified;
/**
* @type {string}
* @description The user that created this object */
createdBy;
/**
* @type {string}
* @description The user that last modified this object */
lastModifiedBy;
}
export class CustomerBreadcrumb {
/** @param {{id?:string,name?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
id;
/** @type {string} */
name;
}
export class Value {
/** @param {{boolValue?:boolean,stringValue?:string,numberValue?:number,listValue?:Struct[],structValue?:Struct}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {?boolean} */
boolValue;
/** @type {string} */
stringValue;
/** @type {?number} */
numberValue;
/** @type {Struct[]} */
listValue;
/** @type {Struct} */
structValue;
}
class Dictionary {}
export class Struct extends Dictionary {
constructor(init) { super(init); Object.assign(this, init) }
}
/** @typedef {'Magenta'|'Red'|'Volcano'|'Orange'|'Gold'|'Lime'|'Green'|'Cyan'|'Blue'|'GeekBlue'|'Purple'} */
export var TagColors;
(function (TagColors) {
TagColors["Magenta"] = "Magenta"
TagColors["Red"] = "Red"
TagColors["Volcano"] = "Volcano"
TagColors["Orange"] = "Orange"
TagColors["Gold"] = "Gold"
TagColors["Lime"] = "Lime"
TagColors["Green"] = "Green"
TagColors["Cyan"] = "Cyan"
TagColors["Blue"] = "Blue"
TagColors["GeekBlue"] = "GeekBlue"
TagColors["Purple"] = "Purple"
})(TagColors || (TagColors = {}));
export class Tag {
/** @param {{id?:string,name?:string,color?:TagColors}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
id;
/** @type {string} */
name;
/** @type {TagColors} */
color;
}
/** @typedef {'Always'|'CustomerState'|'Time'} */
export var SimpleSchedulingRuleTypes;
(function (SimpleSchedulingRuleTypes) {
SimpleSchedulingRuleTypes["Always"] = "Always"
SimpleSchedulingRuleTypes["CustomerState"] = "CustomerState"
SimpleSchedulingRuleTypes["Time"] = "Time"
})(SimpleSchedulingRuleTypes || (SimpleSchedulingRuleTypes = {}));
export class ScheduleDay {
/** @param {{offset?:number,dayOfWeek?:DayOfWeek}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
offset;
/** @type {DayOfWeek} */
dayOfWeek;
}
/** @typedef {'None'|'Secondly'|'Minutely'|'Hourly'|'Daily'|'Weekly'|'Monthly'|'Yearly'} */
export var SchedulingRuleFrequency;
(function (SchedulingRuleFrequency) {
SchedulingRuleFrequency["None"] = "None"
SchedulingRuleFrequency["Secondly"] = "Secondly"
SchedulingRuleFrequency["Minutely"] = "Minutely"
SchedulingRuleFrequency["Hourly"] = "Hourly"
SchedulingRuleFrequency["Daily"] = "Daily"
SchedulingRuleFrequency["Weekly"] = "Weekly"
SchedulingRuleFrequency["Monthly"] = "Monthly"
SchedulingRuleFrequency["Yearly"] = "Yearly"
})(SchedulingRuleFrequency || (SchedulingRuleFrequency = {}));
export class SchedulingRule {
/** @param {{id?:string,name?:string,priority?:number,state?:string,source?:string,condition?:string,simpleRuleType?:SimpleSchedulingRuleTypes,customerState?:string,flowId?:string,flowParams?:Struct,isAllDay?:boolean,startDate?:string,startTime?:string,endTime?:string,bySetPosition?:number[],byMonth?:number[],byWeekNo?:number[],byYearDay?:number[],byMonthDay?:number[],byDay?:ScheduleDay[],byHour?:number[],byMinute?:number[],interval?:number,count?:number,untilDate?:string,frequency?:SchedulingRuleFrequency}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
id;
/** @type {string} */
name;
/** @type {number} */
priority;
/** @type {string} */
state;
/** @type {string} */
source;
/** @type {string} */
condition;
/** @type {SimpleSchedulingRuleTypes} */
simpleRuleType;
/** @type {string} */
customerState;
/** @type {string} */
flowId;
/** @type {Struct} */
flowParams;
/** @type {boolean} */
isAllDay;
/** @type {string} */
startDate;
/** @type {string} */
startTime;
/** @type {string} */
endTime;
/** @type {number[]} */
bySetPosition;
/** @type {number[]} */
byMonth;
/** @type {number[]} */
byWeekNo;
/** @type {number[]} */
byYearDay;
/** @type {number[]} */
byMonthDay;
/** @type {ScheduleDay[]} */
byDay;
/** @type {number[]} */
byHour;
/** @type {number[]} */
byMinute;
/** @type {number} */
interval;
/** @type {number} */
count;
/** @type {string} */
untilDate;
/** @type {SchedulingRuleFrequency} */
frequency;
}
export class Schedule {
/** @param {{timeZoneId?:string,inherit?:boolean,forceClosed?:boolean,rules?:SchedulingRule[],defaultState?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
timeZoneId;
/** @type {boolean} */
inherit;
/** @type {boolean} */
forceClosed;
/** @type {SchedulingRule[]} */
rules;
/** @type {string} */
defaultState;
}
export class IntegrationData {
/** @param {{thirdPartyId?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
thirdPartyId;
}
export class EntityIntegrationData extends Dictionary {
constructor(init) { super(init); Object.assign(this, init) }
}
export class BillingItem {
/** @param {{baseCost?:number,rawUnitMultiplier?:number,unitCost?:number,allowance?:number}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
baseCost;
/** @type {number} */
rawUnitMultiplier;
/** @type {number} */
unitCost;
/** @type {number} */
allowance;
}
export class BillingSettings {
/** @param {{base?:BillingItem,localNumbers?:BillingItem,tollFreeNumbers?:BillingItem,inboundVoiceCalls?:BillingItem,outboundVoiceCalls?:BillingItem,inboundFaxes?:BillingItem,outboundFaxes?:BillingItem,inboundSmsMessages?:BillingItem,outboundSmsMessages?:BillingItem,aiInsights?:BillingItem,aiLiveMinutes?:BillingItem}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {BillingItem} */
base;
/** @type {BillingItem} */
localNumbers;
/** @type {BillingItem} */
tollFreeNumbers;
/** @type {BillingItem} */
inboundVoiceCalls;
/** @type {BillingItem} */
outboundVoiceCalls;
/** @type {BillingItem} */
inboundFaxes;
/** @type {BillingItem} */
outboundFaxes;
/** @type {BillingItem} */
inboundSmsMessages;
/** @type {BillingItem} */
outboundSmsMessages;
/** @type {BillingItem} */
aiInsights;
/** @type {BillingItem} */
aiLiveMinutes;
}
export class AppSettings {
/** @param {{enablePhoneNumberManagement?:boolean,enableDeviceManagement?:boolean,enableDialer?:boolean,enableCallHistory?:boolean,enableAssistants?:boolean,showFileNameInMessageCenter?:boolean,chakraTheme?:string,customCss?:string,pageTitle?:string,stringMappings?:string,logoutUrl?:string,portMyNumberUrl?:string}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {boolean} */
enablePhoneNumberManagement;
/** @type {boolean} */
enableDeviceManagement;
/** @type {boolean} */
enableDialer;
/** @type {boolean} */
enableCallHistory;
/** @type {boolean} */
enableAssistants;
/** @type {boolean} */
showFileNameInMessageCenter;
/** @type {string} */
chakraTheme;
/** @type {string} */
customCss;
/** @type {string} */
pageTitle;
/** @type {string} */
stringMappings;
/** @type {string} */
logoutUrl;
/** @type {string} */
portMyNumberUrl;
}
export class CustomerInfo extends EntityInfo {
/** @param {{accountId?:string,parentCustomerId?:string,breadcrumb?:CustomerBreadcrumb[],accountName?:string,isStaging?:boolean,name?:string,referenceId?:string,data?:Struct,tags?:Tag[],schedule?:Schedule,integrationData?:EntityIntegrationData,overrideBillingSettings?:boolean,billingSettings?:BillingSettings,overrideAppSettings?:boolean,appSettings?:AppSettings,id?:string,dateCreated?:string,dateLastModified?:string,createdBy?:string,lastModifiedBy?:string}} [init] */
constructor(init) { super(init); Object.assign(this, init) }
/**
* @type {string}
* @description The ID of the account associated with this customer */
accountId;
/**
* @type {string}
* @description The parent customer ID for this customer */
parentCustomerId;
/**
* @type {CustomerBreadcrumb[]}
* @description The breadcrumb to this customer */
breadcrumb;
/**
* @type {string}
* @description The name of the account associated with this customer */
accountName;
/**
* @type {boolean}
* @description Is this customer staging or production? */
isStaging;
/**
* @type {string}
* @description The name of the company */
name;
/**
* @type {string}
* @description The reference ID for this company */
referenceId;
/**
* @type {Struct}
* @description This customer's data values */
data;
/**
* @type {Tag[]}
* @description The list of tags for this customer */
tags;
/**
* @type {Schedule}
* @description This customer's schedule */
schedule;
/**
* @type {EntityIntegrationData}
* @description Integration data for this customer */
integrationData;
/**
* @type {boolean}
* @description Override this customer's billing settings? Otherwise inherits from parent */
overrideBillingSettings;
/**
* @type {BillingSettings}
* @description Billing settings for this customer */
billingSettings;
/**
* @type {boolean}
* @description Should this customer override the parent customer's app settings */
overrideAppSettings;
/**
* @type {AppSettings}
* @description App / Portal settings for this customer */
appSettings;
}
export class SetCustomerStagingMode {
/** @param {{customerId?:string,isStaging?:boolean}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {string}
* @description The ID of the customer you want to update */
customerId;
/**
* @type {boolean}
* @description Should this customer's phone numbers route to the staging server */
isStaging;
}
JavaScript SetCustomerStagingMode DTOs
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 /customers/{customerId}/staging HTTP/1.1
Host: team.evovoice.io
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<SetCustomerStagingMode xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Voice.Api.Customers">
<CustomerId>String</CustomerId>
<IsStaging>false</IsStaging>
</SetCustomerStagingMode>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <CustomerInfo xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Voice.Api.Customers"> <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> <AppSettings> <ChakraTheme>String</ChakraTheme> <CustomCss>String</CustomCss> <EnableAssistants>false</EnableAssistants> <EnableCallHistory>false</EnableCallHistory> <EnableDeviceManagement>false</EnableDeviceManagement> <EnableDialer>false</EnableDialer> <EnablePhoneNumberManagement>false</EnablePhoneNumberManagement> <LogoutUrl>String</LogoutUrl> <PageTitle>String</PageTitle> <PortMyNumberUrl>String</PortMyNumberUrl> <ShowFileNameInMessageCenter>false</ShowFileNameInMessageCenter> <StringMappings>String</StringMappings> </AppSettings> <BillingSettings xmlns:d2p1="http://schemas.datacontract.org/2004/07/Voice.Api.Accounts"> <d2p1:AIInsights> <d2p1:Allowance>0</d2p1:Allowance> <d2p1:BaseCost>0</d2p1:BaseCost> <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier> <d2p1:UnitCost>0</d2p1:UnitCost> </d2p1:AIInsights> <d2p1:AILiveMinutes> <d2p1:Allowance>0</d2p1:Allowance> <d2p1:BaseCost>0</d2p1:BaseCost> <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier> <d2p1:UnitCost>0</d2p1:UnitCost> </d2p1:AILiveMinutes> <d2p1:Base> <d2p1:Allowance>0</d2p1:Allowance> <d2p1:BaseCost>0</d2p1:BaseCost> <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier> <d2p1:UnitCost>0</d2p1:UnitCost> </d2p1:Base> <d2p1:InboundFaxes> <d2p1:Allowance>0</d2p1:Allowance> <d2p1:BaseCost>0</d2p1:BaseCost> <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier> <d2p1:UnitCost>0</d2p1:UnitCost> </d2p1:InboundFaxes> <d2p1:InboundSmsMessages> <d2p1:Allowance>0</d2p1:Allowance> <d2p1:BaseCost>0</d2p1:BaseCost> <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier> <d2p1:UnitCost>0</d2p1:UnitCost> </d2p1:InboundSmsMessages> <d2p1:InboundVoiceCalls> <d2p1:Allowance>0</d2p1:Allowance> <d2p1:BaseCost>0</d2p1:BaseCost> <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier> <d2p1:UnitCost>0</d2p1:UnitCost> </d2p1:InboundVoiceCalls> <d2p1:LocalNumbers> <d2p1:Allowance>0</d2p1:Allowance> <d2p1:BaseCost>0</d2p1:BaseCost> <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier> <d2p1:UnitCost>0</d2p1:UnitCost> </d2p1:LocalNumbers> <d2p1:OutboundFaxes> <d2p1:Allowance>0</d2p1:Allowance> <d2p1:BaseCost>0</d2p1:BaseCost> <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier> <d2p1:UnitCost>0</d2p1:UnitCost> </d2p1:OutboundFaxes> <d2p1:OutboundSmsMessages> <d2p1:Allowance>0</d2p1:Allowance> <d2p1:BaseCost>0</d2p1:BaseCost> <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier> <d2p1:UnitCost>0</d2p1:UnitCost> </d2p1:OutboundSmsMessages> <d2p1:OutboundVoiceCalls> <d2p1:Allowance>0</d2p1:Allowance> <d2p1:BaseCost>0</d2p1:BaseCost> <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier> <d2p1:UnitCost>0</d2p1:UnitCost> </d2p1:OutboundVoiceCalls> <d2p1:TollFreeNumbers> <d2p1:Allowance>0</d2p1:Allowance> <d2p1:BaseCost>0</d2p1:BaseCost> <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier> <d2p1:UnitCost>0</d2p1:UnitCost> </d2p1:TollFreeNumbers> </BillingSettings> <Breadcrumb> <CustomerBreadcrumb> <Id>String</Id> <Name>String</Name> </CustomerBreadcrumb> </Breadcrumb> <Data xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" /> <IntegrationData xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d2p1:KeyValueOfstringIntegrationDataY_SkqLnhh> <d2p1:Key>String</d2p1:Key> <d2p1:Value xmlns:d4p1="http://schemas.datacontract.org/2004/07/Voice.Api.Integrations"> <d4p1:ThirdPartyId>String</d4p1:ThirdPartyId> </d2p1:Value> </d2p1:KeyValueOfstringIntegrationDataY_SkqLnhh> </IntegrationData> <IsStaging>false</IsStaging> <Name>String</Name> <OverrideAppSettings>false</OverrideAppSettings> <OverrideBillingSettings>false</OverrideBillingSettings> <ParentCustomerId>String</ParentCustomerId> <ReferenceId>String</ReferenceId> <Schedule xmlns:d2p1="http://schemas.datacontract.org/2004/07/Voice.Api.Scheduling"> <d2p1:DefaultState>String</d2p1:DefaultState> <d2p1:ForceClosed>false</d2p1:ForceClosed> <d2p1:Inherit>false</d2p1:Inherit> <d2p1:Rules> <d2p1:SchedulingRule> <d2p1:ByDay> <d2p1:ScheduleDay> <d2p1:DayOfWeek>Sunday</d2p1:DayOfWeek> <d2p1:Offset>0</d2p1:Offset> </d2p1:ScheduleDay> </d2p1:ByDay> <d2p1:ByHour xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d5p1:int>0</d5p1:int> </d2p1:ByHour> <d2p1:ByMinute xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d5p1:int>0</d5p1:int> </d2p1:ByMinute> <d2p1:ByMonth xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d5p1:int>0</d5p1:int> </d2p1:ByMonth> <d2p1:ByMonthDay xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d5p1:int>0</d5p1:int> </d2p1:ByMonthDay> <d2p1:BySetPosition xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d5p1:int>0</d5p1:int> </d2p1:BySetPosition> <d2p1:ByWeekNo xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d5p1:int>0</d5p1:int> </d2p1:ByWeekNo> <d2p1:ByYearDay xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d5p1:int>0</d5p1:int> </d2p1:ByYearDay> <d2p1:Condition>String</d2p1:Condition> <d2p1:Count>0</d2p1:Count> <d2p1:CustomerState>String</d2p1:CustomerState> <d2p1:EndTime>String</d2p1:EndTime> <d2p1:FlowId>String</d2p1:FlowId> <d2p1:FlowParams xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" i:nil="true" /> <d2p1:Frequency>None</d2p1:Frequency> <d2p1:Id>String</d2p1:Id> <d2p1:Interval>0</d2p1:Interval> <d2p1:IsAllDay>false</d2p1:IsAllDay> <d2p1:Name>String</d2p1:Name> <d2p1:Priority>0</d2p1:Priority> <d2p1:SimpleRuleType>Always</d2p1:SimpleRuleType> <d2p1:Source>String</d2p1:Source> <d2p1:StartDate>String</d2p1:StartDate> <d2p1:StartTime>String</d2p1:StartTime> <d2p1:State>String</d2p1:State> <d2p1:UntilDate>String</d2p1:UntilDate> </d2p1:SchedulingRule> </d2p1:Rules> <d2p1:TimeZoneId>String</d2p1:TimeZoneId> </Schedule> <Tags xmlns:d2p1="http://schemas.datacontract.org/2004/07/Voice.Api.Settings"> <d2p1:Tag> <d2p1:Color>Magenta</d2p1:Color> <d2p1:Id>String</d2p1:Id> <d2p1:Name>String</d2p1:Name> </d2p1:Tag> </Tags> </CustomerInfo>