Evo Voice

<back to all web services

TestSchedule

Test the customer's schedule

Requires Authentication
Requires any of the roles:SystemAdministrator, Manager, Customer
The following routes are available for this service:
POST/customers/{customerId}/test-schedule
POST/endpoints/{endpointId}/test-schedule
"use strict";
/** @typedef {'Always'|'CustomerState'|'Time'} */
export var SimpleSchedulingRuleTypes;
(function (SimpleSchedulingRuleTypes) {
    SimpleSchedulingRuleTypes["Always"] = "Always"
    SimpleSchedulingRuleTypes["CustomerState"] = "CustomerState"
    SimpleSchedulingRuleTypes["Time"] = "Time"
})(SimpleSchedulingRuleTypes || (SimpleSchedulingRuleTypes = {}));
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) }
}
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 TestSchedule {
    /** @param {{customerId?:string,endpointId?:string,schedule?:Schedule,dateTime?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The ID of the customer whose schedule you want to test */
    customerId;
    /**
     * @type {string}
     * @description The ID of the endpoint whose schedule you want to test. */
    endpointId;
    /**
     * @type {Schedule}
     * @description The schedule to use (leave null to use the current saved schedule) */
    schedule;
    /**
     * @type {string}
     * @description The ISO string of the date and time you want to test */
    dateTime;
}
export class TestScheduleResponse {
    /** @param {{stateName?:string,timeZoneId?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    stateName;
    /** @type {string} */
    timeZoneId;
}

JavaScript TestSchedule DTOs

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

HTTP + CSV

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

POST /customers/{customerId}/test-schedule HTTP/1.1 
Host: team.evovoice.io 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"customerId":"String","endpointId":"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"},"dateTime":"String"}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"stateName":"String","timeZoneId":"String"}