Requires any of the roles: | SystemAdministrator, Manager, Customer |
PATCH | /customers/{customerId} |
---|
export class NodeParameterMap
{
[key:string] : NodeParameter;
public constructor(init?: Partial<NodeParameterMap>) { (Object as any).assign(this, init); }
}
export class EntityInfo
{
/** @description The ID of the object */
// @ApiMember(Description="The ID of the object")
public id: string;
/** @description The date the object was created */
// @ApiMember(Description="The date the object was created")
public dateCreated: string;
/** @description The date the object was last modified */
// @ApiMember(Description="The date the object was last modified")
public dateLastModified: string;
/** @description The user that created this object */
// @ApiMember(Description="The user that created this object")
public createdBy: string;
/** @description 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 aiInsights: BillingItem;
public aiLiveMinutes: 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 enableAssistants: 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
{
/** @description The ID of the account associated with this customer */
// @ApiMember(Description="The ID of the account associated with this customer")
public accountId: string;
/** @description The parent customer ID for this customer */
// @ApiMember(Description="The parent customer ID for this customer")
public parentCustomerId: string;
/** @description The breadcrumb to this customer */
// @ApiMember(Description="The breadcrumb to this customer")
public breadcrumb: CustomerBreadcrumb[];
/** @description The name of the account associated with this customer */
// @ApiMember(Description="The name of the account associated with this customer")
public accountName: string;
/** @description Is this customer staging or production? */
// @ApiMember(Description="Is this customer staging or production?")
public isStaging: boolean;
/** @description The name of the company */
// @ApiMember(Description="The name of the company")
public name: string;
/** @description The reference ID for this company */
// @ApiMember(Description="The reference ID for this company")
public referenceId: string;
/** @description This customer's data values */
// @ApiMember(Description="This customer's data values")
public data: Struct;
/** @description The list of tags for this customer */
// @ApiMember(Description="The list of tags for this customer")
public tags: Tag[];
/** @description This customer's schedule */
// @ApiMember(Description="This customer's schedule")
public schedule: Schedule;
/** @description Integration data for this customer */
// @ApiMember(Description="Integration data for this customer")
public integrationData: EntityIntegrationData;
/** @description 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;
/** @description Billing settings for this customer */
// @ApiMember(Description="Billing settings for this customer")
public billingSettings: BillingSettings;
/** @description 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;
/** @description 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); }
}
/** @description Update a specific customer */
// @Api(Description="Update a specific customer")
export class PatchCustomer implements IPatch
{
/** @description The ID of the customer you want to update */
// @ApiMember(Description="The ID of the customer you want to update")
public customerId: string;
/** @description The name for the customer */
// @ApiMember(Description="The name for the customer")
public name: string;
/** @description The parent customer for this customer */
// @ApiMember(Description="The parent customer for this customer")
public parentCustomerId: string;
/** @description 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;
/** @description Data values for this customer */
// @ApiMember(Description="Data values for this customer")
public data: Struct;
/** @description The list of tag IDs for this customer */
// @ApiMember(Description="The list of tag IDs for this customer")
public tagIds: string[];
/** @description This customer's schedule */
// @ApiMember(Description="This customer's schedule")
public schedule: Schedule;
/** @description 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;
/** @description Updated billing settings for this customer */
// @ApiMember(Description="Updated billing settings for this customer")
public billingSettings: BillingSettings;
/** @description 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;
/** @description App / Portal settings for this customer */
// @ApiMember(Description="App / Portal settings for this customer")
public appSettings: AppSettings;
public constructor(init?: Partial<PatchCustomer>) { (Object as any).assign(this, init); }
}
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.
PATCH /customers/{customerId} HTTP/1.1
Host: team.evovoice.io
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
customerId: String,
name: String,
parentCustomerId: String,
referenceId: String,
tagIds:
[
String
],
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,
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
},
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
},
aiInsights:
{
baseCost: 0,
rawUnitMultiplier: 0,
unitCost: 0,
allowance: 0
},
aiLiveMinutes:
{
baseCost: 0,
rawUnitMultiplier: 0,
unitCost: 0,
allowance: 0
}
},
overrideAppSettings: False,
appSettings:
{
enablePhoneNumberManagement: False,
enableDeviceManagement: False,
enableDialer: False,
enableCallHistory: False,
enableAssistants: False,
showFileNameInMessageCenter: False,
chakraTheme: String,
customCss: String,
pageTitle: String,
stringMappings: String,
logoutUrl: String,
portMyNumberUrl: String
}
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { accountId: String, parentCustomerId: String, breadcrumb: [ { id: String, name: String } ], accountName: String, isStaging: False, name: String, referenceId: String, 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, 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 }, aiInsights: { baseCost: 0, rawUnitMultiplier: 0, unitCost: 0, allowance: 0 }, aiLiveMinutes: { baseCost: 0, rawUnitMultiplier: 0, unitCost: 0, allowance: 0 } }, overrideAppSettings: False, appSettings: { enablePhoneNumberManagement: False, enableDeviceManagement: False, enableDialer: False, enableCallHistory: False, enableAssistants: 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 }