Evo Voice

<back to all web services

CustomMetricReport

Requires Authentication
Requires any of the roles:SystemAdministrator, Manager, Customer
The following routes are available for this service:
All Verbs/reports/metric
"use strict";
export class ReportRequest {
    /** @param {{accountId?:string,emailAddressToNotify?:string,webhookUrl?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /**
     * @type {string}
     * @description The account ID this report should be run for */
    accountId;
    /**
     * @type {string}
     * @description The email address to notify after the report is run */
    emailAddressToNotify;
    /**
     * @type {string}
     * @description The webhook to call after the report is complete with the data from the report */
    webhookUrl;
}
/** @typedef {'Queued'|'Running'|'Completed'|'Error'} */
export var ReportStatuses;
(function (ReportStatuses) {
    ReportStatuses["Queued"] = "Queued"
    ReportStatuses["Running"] = "Running"
    ReportStatuses["Completed"] = "Completed"
    ReportStatuses["Error"] = "Error"
})(ReportStatuses || (ReportStatuses = {}));
export class ReportInfo {
    /** @param {{id?:string,name?:string,status?:ReportStatuses,statusMessage?:string,dateCreated?:string,dateUpdated?:string,downloadLink?:string,jobId?:string,emailAddressToNotify?:string,server?:string}} [init] */
    constructor(init) { Object.assign(this, init) }
    /** @type {string} */
    id;
    /** @type {string} */
    name;
    /** @type {ReportStatuses} */
    status;
    /** @type {string} */
    statusMessage;
    /** @type {string} */
    dateCreated;
    /** @type {string} */
    dateUpdated;
    /** @type {string} */
    downloadLink;
    /** @type {string} */
    jobId;
    /** @type {string} */
    emailAddressToNotify;
    /** @type {string} */
    server;
}
export class CustomMetricReport extends ReportRequest {
    /** @param {{startDate?:string,endDate?:string,metricName?:string,timeZoneId?:string,accountId?:string,emailAddressToNotify?:string,webhookUrl?:string}} [init] */
    constructor(init) { super(init); Object.assign(this, init) }
    /** @type {string} */
    startDate;
    /** @type {string} */
    endDate;
    /** @type {string} */
    metricName;
    /** @type {string} */
    timeZoneId;
}

JavaScript CustomMetricReport DTOs

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

HTTP + JSV

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

POST /reports/metric HTTP/1.1 
Host: team.evovoice.io 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	startDate: String,
	endDate: String,
	metricName: String,
	timeZoneId: String,
	accountId: String,
	emailAddressToNotify: String,
	webhookUrl: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	id: String,
	name: String,
	status: Queued,
	statusMessage: String,
	dateCreated: String,
	dateUpdated: String,
	downloadLink: String,
	jobId: String,
	emailAddressToNotify: String,
	server: String
}